Thursday, June 24, 2010

dvtm - dynamic virtual terminal manager

Not too long ago I found myself in need of organizing my terminal sessions, I had too many windows open and it was cluttering my work space and bloating my alt+tab layout. I poked around the internet and found the likes of Terminator[0] and it was nice but not my personal preference so I did a little more poking and I found my way to dvtm[1]. dvtm is a dynamic virtual terminal manager that will essentially perform tiling window management from within a terminal window. It was originally a port of dwm to ncurses and has made my life eponentially easier since I found it. I wanted to show off some screenshots in hopes that others might find it fits their needs!

The package was already available in Fedora but since I spend a large amount of my time on RHEL machines for my day job I went through the processes to get it into EPEL, so everyone can have dvtm! :)

Here's some screenshot awesomeness (same apps, just different layouts within dvtm):





Hope people want to give it a shot! Also, be sure to read the man page, all the questions I could imagine were answered there. Happy hacking! :)


[0] http://www.tenshu.net/terminator/
[1] http://www.brain-dump.org/projects/dvtm/

Friday, June 18, 2010

Big Fedora Logo For Fedora Planet!


Here's a big Fedora Logo (or at least as big as blogger.com will let me post) for those who were upset with the Ubuntu Logo that found its way on the planet.fedoraproject.org today. Enjoy and long live FOSS software!

Monday, June 07, 2010

Getting CyanogenMod on your Motorola Droid (Android 2.1 OTA) from Linux.

Step 1: Download sbf_flash[0], and follow his directions with 1 modification, shutdown your phone and hold "UP" on the directional pad before "just plugging it in" (note, the screen will be blank/black and have some white text on it in a very primitive font, if that's what you got you're good) and I believe the application must be run as root. Also, the sbf image you will need is SPRecovery[1]

[0] http://blog.opticaldelusion.org/2010/05/sbfflash.html
[1] http://www.mediafire.com/?jgt1gjgx5gv

Step 2: Download CyanogenMod's latest release (at time of this writing it was 5.0.7) and copy it to the root of your SDCard and rename it "update.zip"

http://koush.tandtgaming.com//motorola/sholes/update-cm-5.0.7.1-Droid-signed.zip

Step 3: Shutdown your phone and reboot into SPRecovery by holding the 'x' key on your keyboard while it powers on (be holding 'x' before you hit the power button just to be sure). This should boot you into SPRecovery.

Step 4: Make a backup!!! You are going to want to make a backup here just in case something goes wrong. Use the volume up/down buttons on the side of your phone to move the selection up and down and the camera button on the side of your phone (power button takes you back to the previous menu).

Step 5: Flash the update, select "install" and in the next menu tell it to allow update.zip, then select "Install /sdcard/update.zip"

Step 6: Install the Google Apps, first copy the gapps file over to the root of your SDCard, rename it "update.zip" overwritting the old one. And repeat Step 5 remembering to hold 'x' while booting to get to SPRecovery.

http://www.mediafire.com/file/mnzmk1nytt2/gapps-passion-EPE54B-signed.zip

Step 7: Reboot and enjoy

NOTE: If your phone goes into what appears to be an infinite reboot loop, pull the battery and then hold 'x' again when you power back up to get back to SPRecovery and tell it to do a wipe of user data, its an option in the main menu. This happens but not always so don't be alarmed if it does.

Step 8: (Optional) Download ROMManager from the App Market and buy the extremely reasonably priced Premium version that will monitor new releases of the ROM as well as automate the flashing process.

NOTE: ROMManager is going to require a different Recovery image but it will handle the installation of this and will continue to make life awesome for you .... again, *highly* recommended.

Feel free to come hang out in #koush on irc.freenode.net if you have questions or just want to talk about the awesomeness that is CyanogenMod on the Motorola Droid!

Monday, May 17, 2010

Death to ARM, Long live ARM!

Not all that long ago I wrote a blog post that expressed some frustrations I was having with ARM as a platform but in retrospect I think my statements were a bit hasty and overzealous. I stepped away from the unique aspect of ARM boards that make them so appealing, they are different, they are disjoint, but they are also extremely capable. We live in a world where you can't walk into the middle of a town and throw a rock in any direction without hitting a person carrying an ARM device which is an extremely powerful statement. Its a platform where extremely cool things are happening, it is the reigning champion of consumer embedded devices and as cloud computing (yes, I hate the term too but bear with me) becomes more and more the way of the future, embedded computing really will be a more viable solution for the dawn of tomorrow.

What does this mean? Well, that depends on who you are and where you sit in the world. It means to me that I think we within the Fedora Community need to put more efforts into the Fedora ARM SIG and even though I am an ARM SIG member I probably made my fellow Fedorans(?) a bit upset with my outcry as well as dealt myself a bit of a credibility blow which I have only myself to thank. In an effort to bring myself back from my current state I in the process of gearing up for doing some actual contribution to the Fedora ARM port, I've got a book entitled "Embedded Linux Primer" by Christopher Hallinan that I'm almost half way through and I've got a GuruPlug on order from GlobalScale because even if I hit fits of frustration along they way it would be ignorant of me to claim that embedded computing doesn't power the world, ARM is leading the way in that market, and I feel this is an area that Fedora could be great in. So lets hope that Apple doesn't buy ARM and screw us all. Long live Fedora and long live ARM!

UPDATE: I have cancelled my previous order of the GuruPlug in favor of a SheevaPlug for two reasons. 1) The GuruPlug requires me to buy JTAG board to do dev work and I don't want to shell out the extra cash. 2) I'm hearing reports of GuruPlugs doing random reboots when using the ethernet port. So now I just have to wait for my SheevaPlug in the mail!

Tuesday, May 04, 2010

Vote with your dollars


"Vote with your dollars," a phrase a co-worker said to me when we started discussing smoking vs. non-smoking dining options. It's an idea that has stuck with me ever since and I find myself applying it to anything I do these days. For example, I pay for a Red Hat Enterprise Linux subscription for my house even though I could run CentOS. Why do I do this? Because I want to support Red Hat, I want to vote with my dollars and let them know that I appreciate what they do for the open source software community at large with all of their endeavours.

This past weekend I found myself at a store, I won't say which one because I need not endorse them and they certainly don't need or want a mention in my measly little blog. At this store I was on a mission to purchase a portable mouse to go along with my new Asus EeePC 1001P (which I recently blogged about). The netbook is wonderful but when I've got it sitting on a desk I'd rather have a real mouse. As I was cruising for a perfect selection I found myself with two mice to decide between, both were capable and according to their boxes they had almost identical feature sets but one was cheaper. If I were a regular consumer, I would have grabbed the cheaper one and gone on with my life and not thought anything of it, but I am not a regular consumer. I'm a voter. There was another difference between these two devices and that was that the more expensive one had an image of Tux on the side and a listing for "Linux kernel 2.6+" in the system requirements field. I was sold. I voted with my dollars and gave my money to Logitech as they took the time and money to verify functionality on a Linux machine and to print the information on their labels. So kudos to you Logitech and I thank you for your help in the struggle to push the Linux movement. While many might find this victory small and meaningless, I think this is a big statement to the world. We came, we dominated, and now your peripherals wear our insignia. I happily paid the extra money to the company that was willing to give me some peace of mind that when I plugged that mouse in to my Fedora 13 Beta powered netbook that it would work and it did and I'm happy.

Thursday, April 22, 2010

Why I hope Intel breaks ARM in half

I've been a growing fan of the ARM platform for a while now but as time goes on my frustrations with the extremely drastic differences between ARM boards has begun to get under my skin. I've often thought to myself, "Why can't we just take an x86 machine and shrink its components to make an embedded system on a chip that walks, talks, and acts like the same old systems we're used to?"

In walks Intel to slaps me in the face with a big fat, "oh yeah ... we're totally doing that" and I love it. Its an amazing concept because I can take this SoC that will give me potentially days of battery life and run software that I've been running on my laptops, desktops, and netbooks since I've owned a computer. You know, software like the entire Fedora Distribution and all packages that might entail.

Intel recently demoed tablets and cellular telephones running on Moorestown CPUs that are claiming to be twice as fast as the current Pineview line of Atom processors as well as sporting a two to three times longer battery life. I'm a proud owner of an Asus EeePC 1001P and I'm getting about 8.5 hours of battery life on that thing with casual wifi browsing and a couple ssh sessions opened and this is all powered by an Intel Atom N450 which is a Pineview core running Fedora 13 Beta (full Gnome, etc. and it runs like a champ). With these claims of two to three times battery life, we really are approaching literally days of computing on a single charge from a processor that I can just fire up Fedora on. I like where this is going.

Lets go on a tangent for a moment, Apple has put a bid out to purchase ARM and I honestly hope they win it so they can absorb another platform just to kill it off. My hope is that Apple will win ARM, developers and distributors will not want to pay Apple/ARM prices or deal with their unreasonable developer agreements and will find comfort in Intel's Moorestown. Android and MeeGo are already supporting the Intel Moorestown line thanks to thier Linux roots and I like to think its just a matter of time before the mobile market abandons ARM all together. With the trend of tablet computers and smartbooks starting to gain some speed I think to myself, why divide ourselves as developers among multiple different ARM specs instead of having a standard target archticture that's been around for decades? But I digress.

Back on topic but keeping in mind the content of the tangent, lets think for a moment what this would mean for mobile platforms. Now, I want to start with the disclaimer that I love Free and Open Source Software but lets face it, half the internet runs on Adobe Flash. So while Adobe is beating its head against the wall trying to reinvent Flash for mobile platforms using several different abstraction models to keep the insanity of supporting all flavors of ARM from killing them entirely, Intel is quietly about to unleash the answer to their problem. To be honest, I don't care about Adobe in this respect (sorry Adobe, I just don't) but what I do care about are end users. If the end user can get a brand new Moorestown powered netbook with a day or two of battery life, double the performance of the current Intel Atom processors, and slap Fedora on there with out of the box support for everything they need as well as the option to add third party repositories for things such as Flash then I'm on board. Because in reality, the only reason x86 hasn't made it to cellular phones yet is because Intel hadn't found a way to pull off the battery life needed to do it. Now that they have, and I say we break an ARM or two.

Sunday, April 18, 2010

Fedora 13 Beta - Asus EeePC 1001P

It's tax season again and I got money back, not a very large amount but enough to cover a new budget netbook. With the budget in mind and the goal of long battery life I did my research and it was clear that the Asus EeePC 1001P (160gb version) was going to be top notch for the price. This little netbook (that I'm making this blog post from) is powered by the latest Intel N450 Pineview processor which offers some attractive bits in terms of battery life and form factor since it allows for a 6 cell battery that is almost entirely flush with the body of the netbook. For under $300 (USD) it is advertised to get up to 11 hours of battery life and is showing between 8 and 9 hours of battery life in real world usage.

I ordered it off Amazon.com and it arrived via FedEx on my doorstep yesterday afternoon and as per the included documentation it needed to charge for 8 hours before its first use. While I don't entirely trust or believe the battery needs that much time sitting on a charger I decided to play it safe. Once that horrible waiting period was over I was finally able to get it powered up and get Fedora 13 Beta installed. I was lucky enough to guess the right BIOS key so that I could get this little guy to boot from the USB stick with Fedora 13 Beta on it before Windows 7 (that came pre-loaded on this) ever got the chance to infect my CPU and other components.

Fedora 13 Beta installation went fine, but upon reboot the wireless card was not detected at all which was discouraging as all I could find on the internet were sources of needing to use ndiswrapper to make it function. Now, Fedora being notorious for leading the way and keeping in mind that I'm running a development build I had the bright idea to plug it into an ethernet port in order to download updates that have been rolling out as the bug squashing ninjas (Read: Fedora Contributors) find and fix problems in preparation for stable release.

Downloads done, presto rebuilds done, package installs done, reboot, wifi!!!

So here I am on my brand new netbook running Fedora 13 Beta + updates with *everything* fully functional and I couldn't be happier. One last piece is to find out why gnome-shell won't run but from what I understand its a graphics card specific bit because there are lots of reports of people having it up and running on other systems which is only a minor set back as gnome-shell is only a tech preview and is under heavy development itself. All in all, I'm extremely satisfied with Fedora 13 Beta + updates as well as with my Asus EeePC 1001P. Only recommendation I'd have to anyone in the market for one of these EeePC 1001P netbooks is to test out the keyboard, its just a preference thing. I like the keyboard on this quite a bit but I know of some who aren't fans so be sure to give it a test run before sinking the cash in.

Final words: Fedora continues to kick hind parts and take names, everything on this brand new netbook is working wonderfully and I couldn't be happier. Many thanks to all those involved in making my computing experience this amazing!

-AdamM

Monday, April 12, 2010

Texas Linux Fest 2010

This past Saturday was the Texas Linux Fest 2010 and Fedora's very own Max Spevack was a featured presenter. The Fedora crew (Max Spevack, David Duncan, Scott Collier, Julio Villareal, and me) arrived at 8am to setup and we transformed a simple and somewhat boring table with a plain white table cloth into an interactive environment for Fedora and the community at large via an impressive event box. The event box contained all the tools needed to make our booth top notch and in my opinion a contender for "best in show."

I would also like to note that there was a Red Hat booth right next to us where Thomas Cameron and a fellow 'Hatter' named Shawn(sp?) (I never caught her last name) were stationed. I want to mention how powerful of a statement I personally felt came as the result of Red Hat and Fedora having separate booths right next to one another at an event like the TXLF because while there is a closely knit relationship between Fedora and Red Hat, the two as entities are separate. While these two are separate they are not necessarily disjoint and I think it is a powerful move to make that distinction to the Linux community who is not aware of that fact and still have the uninformed misconception of Fedora being Red Hat's development playground. I consider it important to show up standing shoulder to shoulder to represent our specific areas to the Linux community.

With that said, on to the starting line! At 9am the doors flew open at the Texas Linux Fest and the line from the registration counter was out to the parking lot. We had prime real estate and as the participants were funnelled through the entrace and were brought in through a walkway that ran right by the Fedora booth. The booth got immediate attention and the day was off with a bang, people everywhere, we were running through media quickly, the tattoos were a great success, ink pens being taken, and all the usual reactions I would expect conference goers to have to swag. The main piece of the "swag grab" that I enjoyed was that the people who would come up to the booth didn't just grab and go, they would walk up, we as Fedora Ambassadors would engage them in conversation and a few minutes would pass (or hours in a couple instances) and they would pick up a couple items from the table and continue on their way.

We had one gentleman who was having issues with his Broadcom wireless card (surprise, surprise), he was a relatively new user and I was happy to help him. We scrambled around for almost an hour trying to find a free network drop to plug his laptop into an ethernet cable to install the appropriate kernel modules from rpmfusion. Once wifi was setup and successful, the gentleman who I had been helping quickly ran to the tables of other distributions who apparently hadn't had as good of luck as I had in getting his wireless to function and said, "The Fedora guy made it work." I'd call it a victory :)

As the day went on, conversations of everything from wacom tablets to ARM Architecture strategy was discussed between Fedora Ambassadors and those in attendance of the Texas Linux Fest. We at the Fedora booth used a convertible tablet laptop that I had from work to have a hand written "running list" of topics to take away from the event as a somewhat informal way of gathering information based on what the community is interested in, what they would like to see from the Fedora Project in the future, and what they love about Fedora now. We had quite a bit of positive feedback and a few requests for the future of Fedora, I'd call this a win as well.

All in all it was a spectacular event and I look forward to next year's TXLF!

I unfortunately lack a high quality camera, but David Duncan is not bound by this limitation and has some amazing photos here.

I went ahead and exported the output of the Xournal document from the tablet writings to a pdf and it can be viewed here.

UPDATE: I got word from Thomas Cameron that Shawn's last name is Briscoe. So thank you to Shawn Briscoe for coming out and kicking hind parts along with Thomas Cameron at the Red Hat booth! (I know this is a Fedora Ambassador's report but if you're this far in my blog post then you know my opinion on the co-existence of the two groups).

Monday, March 29, 2010

Package Management with Fedora

On March 3, 2010 I met with the Sam Houston Association for Computer Scientists in order to give a presentation on Package Management within Fedora. The Sam Houston Association for Computer Scientists (SHACS) is a student chapter of the ACM at Sam Houston State University and is an organization that I have been fortunate enough to be invited back to a number of times to present about Fedora and on this occasion I was fortunate to have around 30 people in attendance.

This Presentation was given about package management. I began covering about the overview of what a package is, describing how packages are groupings of files and metadata about those files in order to be installed unto a functional system. Some of these files may be executable, others will be for configuration of the executable application, documentation, or many other types of content. At this point I asked one of my favorite rhetorical questions, "Why should I care?" I went on to explain about how this concept can be used to break users from the bounds of their commonplace "next, next, finish" installation methods, the constant upgrading of individual applications one at a time, and using yet another utility to upgrade the operating system itself.

Going away from this concept for a moment, RPM makes its way on to the scene of the presentation with a quick overview of the history, what RPM is as a package format including a quick overview of macros and standards they represent, and then moving on with RPM the essential utility that allows us all to survive in a package powered world.

Now that have learned to install packages, what about all the dependencies? How will we be able to handle all of this by hand? Short answer: yum. Long answer: Yum is the YellowDog Updater Modified and it performs a large number of important functions and the most commonly known is that it automatically installs dependencies of packages without any further user intervention. Now we go back to the original rhetorical question, "Why should I care?" Well here we are, lets imagine being able to update, install, and remove any application on your system with a single tool, a single application, a single interface. Now take that and imagine it is also able to update itself along with everything else on your system. That's exactly what we have. None of the old traditional concepts that have snaked their way into proprietary operating systems that plague the planet, but pure open source package management that is your one stop shop.

"But Adam, I don't want to use the command line! It's scary!!" Don't fret! Here comes PackageKit to save those who are mouse interface inclined! At this point in the presentation I walked through some basic steps of how to navigate through PackageKit which took a very short time since it is so pleasantly straight forward.

Last little bit of the presentation is going over the concept of a repository so that users know where their code and content comes from, the ideas of where it comes from and the flow of developers/packagers that contribute to a repository that once tested and proven stable it released upon the public for installation via tools such as yum.

That's all for now! Apologies for taking so long to write up a report.

-AdamM

Slides from presentation (odp)

Monday, December 07, 2009

FUDCon - Day one : The awesomeness that is.

So Day one has come and gone. Let me put this simply, Fedora User and Developer Conference Toronto 2009 is epic freaking win. We have essentially destroyed the BarCamp style conference because there are too many interesting projects that are talk worthy going on within Fedora. There were so many proposed talks that the entire schedule got pushed back an hour and a half due to the pitch of talks and the voting on topics. The rooms were packed, some talks were pushed out to the back with standing room only if you didn't make it to the room on time and these were not small class rooms, this is quite a large university we're being hosted at.

There was also a lot of very cool efforts being put forth in order to do a "live FUDCon" for those of us Fedorans and all interested parties would be able to participate and get in on the FUDCon action from remote locations. We had irc transcribers for each session as well as audio/video for the rooms in which had the hardware/facilities to do so.

For those of you who were unable to attend, please feel free to check all the logs here: http://fedoraproject.org/wiki/FUDCon:Toronto_2009_BarCamp_Schedule

I attended the "Observing Fedora with SystemTap" session during the first round of sessions which was quite impressive. You are now able to perform in depth analysis of any aspect of your system because there is support in the kernel for observing essentially everything and getting reports back. I loved this both from the systems admin side where I want to try and track down issues and bottlenecks as well as from the developer side because it could potentially make targeting down bugs very easy. I did the irc transcribing for that session so I highly recommend checking out the log http://meetbot.fedoraproject.org/fudcon-room-1/2009-12-05/fudcon-room-1.2009-12-05-17.13.log.html

Second round of sessions I attended the State of X / State of the Kernel which was a presentation by X and Kernel hackers (respectively) that was quite enlightening to the future plans of kernel and X technologies and it continues to impress on how much is being done and how fast it is happening. The open source support for hardware, including things like USB3.0 (which is already there even though the hardware isn't out and nobody else has support for it), is incredible. I also irc transcribed that one, so I highly recommend checking those out also ;) ... http://meetbot.fedoraproject.org/fudcon-room-1/2009-12-05/fudcon-room-1.2009-12-05-19.06.log.html

Third sessions round I went to the "Designing the future of Free Software Operating System User Experiences - GNOME Shell (Gnome3 UI)" session which honestly got me excited about Gnome again. I actually got so excited that I yesterday got in touch with one of the gnome-shell package maintainers and got myself approved as a co-maintainer and my idea is that since Gnome Shell is currently in Fedora 12 as a tech preview, and since we as Fedora are generally the first for everything I figured "why not push git snapshots of the latest features of the gnome-shell UI out to those who are interested in next generation user interfaces?" Yeah, I thought so too. Gnome3 will be a great advancement in user interaction with a computer, it is the first time (that I can think of) that anyone has ever completely attempted to redesing how a user interacts with their machine. There is no longer just the age old "let me click this button that sits in a panel that gives me a menu listing what applications I have access to". It is a completely new take on the world of desktop computing and its definitely a project to keep your eye on. I irc transcribed this one also ... check it: http://meetbot.fedoraproject.org/fudcon-room-1/2009-12-05/fudcon-room-1.2009-12-05-20.10.log.html

Fourth round is up and I found my way over to Mo's "Designing UI mockups in Inkscape" which was extremely useful in so many ways. I actually used what I learned in her session later that night to throw together some mockups of an idea myself and herlo (irc nick on Freenode) were throwing around of Paul W. Frields pet project called PulseCaster (https://fedorahosted.org/pulsecaster/). So, not only was the session quite good and I almost immediately found a use case for the knowledge and techniques that I learned from the presentation but I also found a bug in Inkscape which I had others verify and we confirmed an already existing bug in bugzilla. I <3 FUDCon.

Last session of the day I walked into a session called "Moksha and Fedora Community -- Real-time web apps with Python and AMQP" which blew my mind. This is Web3.0 (not by definition, but that's what I'm calling it), Luke Macken and J5 completely just stepped over web2.0 and said "pffft, childs play" (well not really but in my mind I assume it went something like that). This session showed off technology that allows real time message passing in a web browser as well as "native" support for standard protocols. The project page is https://fedorahosted.org/moksha/ and I think everyone on the planet should take some time to go there and enjoy the demo, prepare to have your mind blown. Oh, and I also irc transcribed that one as well http://meetbot.fedoraproject.org/fudcon-room-3/2009-12-05/fudcon-room-3.2009-12-05-22.07.log.html ... presentation slides found: http://lmacken.fedorapeople.org/moksha-FUDConToronto-2009.odp

Ok, so sessions are done but we are in now way, shape, or form done. It is time for the "State of Fedora" speach by the Fedora Project Leader, Paul W. Frields. This is where our fearless leader takes the time to look back and look forward, take note and discuss what we've learned and what we can learn. It was a heart felt speach adressing a lot of things that are so great about our community and what makes Fedora so great. Paul also announced the codename of Fedora 13, which is Goddard (I probably mispelled that, sorry). This was a solid way to wrap up an amazing day.

Alright, that was Saturday. Stay tuned, I will report on Sunday (which was also awsome). I will probably report a little on today as well, but today seems to be at least somewhat consumed by attempting to get my blog updated to reflect the awesomeness that is FUDCon.

Monday, November 09, 2009

Community and the Loyalty that follows.

I would like to start with a statement: I eat, sleep, and breath Fedora.

In my time within the Fedora community I've grown to love everything that the project is and stands for. Its offered me opportunities to learn new things and give back to the community as I am able to. I've also grown a large amount of loyalty to the project. There's another aspect of the Fedora world that is disjoint but still very closely related: RedHat.

I am a RedHat Enterprise Linux administrator by day, this is how I pay the bills. Though there is another part of that which I have grown into, the community. The RHEL and Fedora communities definitely merge at some point and its amazing to see. We see projects like EPEL[0] that attempt to broaden RHEL's horizons and past projects like Fedora Legacy[1] that attempted to bring the Fedora world a longer life span much like RHEL's. Disjoint but very much related.

Back to loyalty, I recently made a post[2] about RHEV being a failure becuase it required Windows in order to run the RHEV-M portion of the product and I was promptly chastised for it as you would expect any loyal community to do. I was spoken to by both RedHat community members as well as Fedora community members, including but not exclusive to some of those that bridge the gap, and at first I was defensive.

I had to step back and ask myself though, why be defensive? Have I not faught this fight before? Have I not defended the decisions of those within my community have made, just as these members are doing?

Then it dawned on me, I'm not being flamed or shunned. This is my community, these are my people and as I am theirs and they are simply trying to show me that I'm making a mockery of nothing.

I was upset because RedHat had released a product that required a Windows box in order to use the full feature set, but this is a temporary issue and there was no revert in functionality and nothing was being taken away from me. This was simply another example of the tried and true methods of RedHat purchasing an emerging company and opening their once closed software such that the world of F/OSS may benefit.

As our favorite Hello Kitty touting community member put it: "if Red Hat had never released the product you would not have access to the feature AT ALL. now you can access it with windows, and a little later with linux." She is absolutely correct.

Did I over react? Yeah, probably. Should I have? No, probably not.

This is where I find myself, as a loyal community member to both Fedora and RedHat. Even though I stand within these divides I somehow overlooked the processes I know and understand that must be taken. In my dayjob I know these enterprise decisions well, our vendors paint us the picture of the race to market constantly. So why do I get angry when RedHat does something that every other company does? I sometimes forget RedHat is a company and companies need to make money for themselves, for their shareholders, and just in general to move forward. I forget sometimes RedHat is a company because of their embrace into this community, their shared loyalty with their community, and their epic (yeah, that's right... I said epic) list of contributions to this community.

For sake of my loyalty, I apologize for my oversight towards the process.

In Fedora we trust.

-Adam


[0] https://fedoraproject.org/wiki/EPEL
[1] http://www.fedoralegacy.org/
[2] http://pseudogen.blogspot.com/2009/09/rhve-redhat-failure-not-soon-to-be.html

Get to know a Fedora Ambassador or User


Name: Adam Miller
IRC Nickname: maxamillion
IRC Channels: #yum #linode #centos-devel
#fedora-noc #fedora-mini #fedora-bugzappers
#fedora-qa #fedora-spins #fedora-kde
#fedora-campusamb #fedora-ambassadors
#fedora-admin #fedora-devel #fedora-python
#epel #rhn #rhel #centos #fedora #xfce
#Cyanogenmod #moksha
Location: Huntsville, TX USA (Sam Houston State University)

Friday, September 04, 2009

RHEV - The RedHat failure not soon to be forgotten

Lets take a moment to look at Open Source Virtualization, there's Xen, OpenVZ, UML, KVM, and VirtualBox. Now for the datacenter you're really only looking at Xen or KVM (though OpenVZ seems to have a little bit of a following in the datacenter, its not an "Enterprise" offering from the big companies). Xen is on its way out, lets be honest, it has moved further away from the upstream
kernel as time goes on and Citrix is Microsoft friendly so people will embrace the FUD. What's left? Oh, KVM.

KVM is a really cool concept, I'm a big fan of turning the linux kernel into a hypervisor. That's just a really cool idea and has apparently proven itself to be quite useful and in some reports it is claimed to be faster than Xen so all the better. RedHat buys Qumranet, good move, now what? Lets write an Open Source Virtualization Suite that rivals the likes of VMWare ESX/ESXi + vSphere such that everyone in the world can enjoy the benefits of virtualization without being bound to closed source software from companies like VMWare. Again, good move. So what next? Lets force our Open Source faithful as well as all our customers to run a Windows box in order to use this pleasant administrative interface that front ends our completely Open Source Virtualization Environment. Wait ... what? You're kidding right? Nope.

So the office where I work has a site license for RHEL, lets just say that we weren't a mixed OS environment which would be completely feasible seeing that we have a site license. So you're trying to tell me that my CIO cut a FAT check to your company for a site license of an Operating System (as well as a nice repository full of software) and now I have to go elsewhere for another Operating System (that is closed source no less) in order to run your next generation Virtualization Suite? Kiss my ass.

If I were to roll out Open Source Virtualization tomorrow on RHEL, it would be RHEL 5.4 KVM + Convirture[0] not RHEV because I don't have a Windows box in sight.

I've heard rumors floating around that the plan was "get to market fast, port to Java later for cross platform". That's awesome, but in the mean time you're pissing people off and last time I checked its not good to make those who pay your bills angry. I'm not giving up on RedHat, I still really respect them as a company in many many ways (many thanks for all the sponsoring of Fedora!) but I feel like they really dropped the ball on this one, come on guys:

"We will be the leader in Open Source Virtualization" -
Brian Stevens (CTO & VP, Engineering)

Yes, you will but you need to work on moving the management end to an Open Source platform so your statement doesn't seem loaded.

Thanks.

rant.end()

-Adam

[0](http://www.convirture.com/index.php)

Friday, July 03, 2009

Firefox: The progression of popularity and the stigma of the Geek.

Lets take a moment and look back about 5 years at the state of the GNU/Linux desktop from an emerging web based world. There was really only two web browsers worth mentioning, Mozilla and Netscape (which in hindsight were essentially the same thing). The problem? They were heavy set in terms of the resources they required, so what happened? Mozilla released Phoenix, and it was amazingly fast and nobody could believe how quickly it would fire up and run on their old Pentium II machines that they slapped Linux on in an attempt to breath some life back into them.

At the time only those "in the know" were running the browser but it was quickly gaining steam just in time for a name change to Firebird due to angry people with trademark hooks on the name and for a decent amount of users this caused enough confusion for there to be a riff in its general usage but as time progressed and users were aware of the name change things were back to normal. Forums were booming with the merits of the browser as the popularity gained, it was insane how fast your browser could be. It truly raised the bar for expectations of what users compared all other browsers to. Now that we've gotten some happy users, lets go ahead and change the name again. This time the Firebird database people are upset so Mozilla politely obliged and changed the name again. Thus, Firefox is born and the web browser revolution is under way. Firefox hits the ground running with features no one can compete with, it is wildly extendible, is "secure" (I always use that word with a grain of salt), open source, and its fast. This is truly innovation that will go down in the history of computing.

Lets fast forward to today and walk into a room of GNU/Linux aficionados and ask "What's your opinion of Firefox?" and as we make this inquiry let us remember that this was the same demographic that half a decade ago was singing the praises of the now main stream browser. The responses you will receive are probably going to be something along the lines of "I don't use FirefoxOS", " pwns Firefox in the face", or "Bloatware is annoying". What happened? Geeks are fickle creatures, that's what happened. We love the latest and greatest tech that nobody else is using because its new and shiny, its fast, it shows promise, and because nobody else is using it we are somehow elite for doing so. What about when that new shiny tech reaches maturity and succeeds in a big way? Firefox happens.

Here's the reality of the situation, yes webkit is cool as hell from a geek standpoint because its new and its shiny but Firefox is tried and true, it supports all the latest and greatest web tech, is popular as hell, its well supported, stable, "secure" (remember that grain of salt), cross platform, fast, extendible as ever, open source, and it just flat out works. I'm not saying you should turn your nose up at webkit in any way, shape, or form because it truly is the new shiny tech that shows a lot of promise. But I'm tired of people bitching and moaning about Firefox's "issues" when all the arguments I have heard thus far are simply cases of a Geek stigma haunting what is now too mainstream to be "cool" or "l33t" enough for those of us who pride ourselves on our technological prowess.

Lets try to be Geeks and be happy for that which emerges from our depths as a great mainstream success in the user share market.

Thursday, April 02, 2009

Campus Ambassador Presentation: Introduction to Fedora

I recently gave a presentation over Fedora Infrastructure to the Sam Houston Association for Computer Scientists (Sam Houston State University student organization for the CS department) and I had quite a bit of fun with it (though some of the audience seemed a little overwhelmed as they are college students and this is a bit enterprise level for them, but I think it was very important to introduce such a system to them). I appreciate the Fedora Infrastructure in a big way because being a systems administrator is how I pay the bills and I have an incredible appreciation for what the Fedora Infrastructure team does on a daily basis to keep Fedora as a whole working smoothly.

I started out in a large class room with a big white board and a projector hooked up to my Fedora 10 (Xfce Spin) powered laptop. With dry erase marker in hand I began to boggle the student body's minds. Here is a brief overview of what I covered. (It's not entirely brief, but I covered a LOT of material in the hour I spoke so I tried to sum up where I was able in my Ambassador Report)

Key points:
- What is infrastructure? -> Infrastructure in terms of fedora is a series of integrated tools that drive fedora forward and creating an extremely powerful development environment.
- Why does infrastructure matter? -> Infrastructure matters because without it the development cycle would largely be chaotic, with it we can bring procedure and structure.
- Fedora Infrastructure Team has a motto that is posted in the topic line of their irc channel, it is "We run the servers that run Fedora" and this is largely true because without the infrastructure, not much happens. The infrastructure team, just as the development team, is made up of volunteers who are willing to contribute their time towards the greater good of the project as a whole.
- Core Components of Infrastructure -> FedoraHosted, Koji, Bodhi, BugZilla (I felt this deserved inclusion even though its not managed by Fedora Infrastructure team), Fedora Account System, Package Database, Mirror Manager, Smolt, Planet, Fedora People. (I completely forgot fedora-cvs in my slides but there was a white board on the wall that I was drawing how the entire Infrastructure fit together and was able to add it on the fly.)
- What does it mean to me? -> As a developer, contributor, or even just as a user these are the components that are relied upon to keep everything functioning. We need a build system for new packages, we need an update system, we need a bug tracker, we need a place for new packages to be submitted, we need web space for miscellaneous Fedora work including but not limited to the new package review request procedures. This makes it all possible.
- Fedora Hosted -> What would be considered "upstream", this part of the Infrastructure allows developers to host their project with a ticket tracking system, a version control system, and a wiki. Each piece is extremely useful for a collaborative development environment and offers the developers choice in cvs, bzr, svn, git, or hg.
- Fedora CVS -> I know I don't have a slide on this, many apologies to all, I really can't believe I did it, but I did cover it. This is the place where packagers upload packages for inclusion into Fedora, package patches are stored here, and builds are spawned from here.
- Koji -> If you're a packager then this is an element you will get quite cozy with, it provides a build system to submit packages to. Koji offers a web front end that will allow for yourself and others to monitor the status of your build, the logs, obtain the resulting package or source package, also allows for what are called "chain builds" (I went into a quick overview of this on the board), and offers a grounds for the package to be built on multiple architectures in one wonderfully automated swoop.
- Bodhi -> Provides for an update management interface, integrates with bugzilla, will push based on karma, allows for tagging of update type and can recommend reboot for users who use PackageKit. Also provides statistics on updates. This is the system that pushes out to the mirrors.
- Bugzilla -> Place to file a bug against any component of Fedora, it allows for keeping all related parties up to date on current happenings of a bug.
- Fedora Account System -> Where so much magic happens its amazing, this is truly where the integration of the entire system comes to light. When you create a Fedora Account you are able to be granted privileges to any other component of the Infrastructure. The Account system will keep track of user information, group memberships, permissions, security keys, among other useful information.
- Package Database -> This is not only a user searchable database for those on the web, it is also a web based management interface for access to different packages. It ties in information with fedora-cvs, bodhi, koji, and bugzilla as they pertain to the package. This is a wealth of information that I've never experienced in other development environments.
- Mirror Manager -> Package updates are pushed through here, mirrors are literally managed (name kinda implied that one) and it provides a quite impressive management interface to those who want to run a mirror of their own either public or private and fine grained choice of what "branches" of the repositories to host.
- Smolt -> Statistical accumulation of hardware information. I personally think this is quite unique in the sense that anyone can go and check what hardware is popular and from what vendor which I can only imagine to be valuable information to those who develop kernel and system level components of the GNU/Linux platform and most notably for Fedora.
- Planet Fedora -> Aggregate blog posting, great place to get news on what is currently happening in the Fedora world (or planet if you prefer).
- Fedora People -> This is where contributors can post whatever they need in a web accessible location for current work, no matter if it is documentation, art, a package, or other piece of the grand Fedora puzzle. This is the place for it.
- How is it all developed? In an open source environment, by the community, in a collaborative and innovative manner... just as it should be.
- Technologies used to develop the Infrastructure -> Python, TurboGears, Kid, Genshi, SQLAlchemy and Cheetah.

Slides available here.

Tuesday, February 24, 2009

First ever Fedora Ambassador Tech Talk

Gave my first tech talk as a Fedora Ambassador, I presented to the student organization at the University I attend known as "Sam Houston Association for Computer Scientist" (SHACS for short). I wanted to introduce my fellow classmates to the wonders of open source, Linux, and most notably: Fedora. I was lucky enough to have received an Ambassador Kit from my sponsor so that I was able to hand out free media, buttons, stickers, and a couple t-shirts to those in the audience who were already on the Fedora band wagon and were just interested to hear what I had to say. This was a big hit, I thank inode0 for my kit.

Key Points that were covered:

* What is open source?
- Open source is software such that you can download, modify, and redistribute its source code as per the license it has been released under.
- Open source != freeware, open source is not inherently "free as in beer" that is just a common side effect. (Case and point: Red Hat Enterprise Linux)

* What is Linux?
- Linux is a kernel that is coupled with the GNU userspace along with thousands of open source projects to provide a full featured operating system, and in the end is commonly referred to as "Linux" for short hand.
- Linux is currently the largest open source project of its kind and supports more hardware than any operating system in the history of computing (Thanks to Greg K-H for that zinger of a quote)
- Linus Torvalds wrote and released the first version of Linux as a sophomore in college (this is the time to develop and innovate in an open environment, we are the future)

* What is Fedora?
- Fedora is many things, it is a distribution of Linux, it is a community, it is an infrastructure, it is an outlet for ideas to come to life in ways that did not used to be possible.
- Fedora is a place to jump in and get involved in all stretches the Linux and open source world, it is a place to bring your interests, your talents, and your concepts in order to contribute to the greater good.

* Why should you care?
- Fedora means a lot to me because its a project that makes a point to work with upstream open source projects in an attempt to better the open source world as a whole. Its development process reflects this and if/when you get involved you will see this too.
- We are all computer scientists, we are all college students (or professors), and now is the time to get out there and do something with our knowledge, and do it in an open manner.
- Now is the time to truly innovate and do so out in the open (Notice I keep saying this? Hint, Hint).
- We owe it to ourselves, we owe it to our community of developers and users, and we deserve better than the proprietary wares that have been peddled onto us for so many years.

* Who uses Fedora?
- Linus Torvalds, the creator of Linux. Runs Fedora
- IBM Roadrunner, fastest supercomputer on the planet. Runs Fedora
- NASA and the FBI. Run Fedora.

* How to get involved?
- The wiki covers all sorts of documentation on how to get involved. I am planning another talk on how to get involved covering everything from making a Fedora Account to getting a package accepted by Fedora all the way to pushing it out to the repositories through the wonderful infrastructure that is available.

* How to get/give help?
- Referenced the audience to the wiki page on communications, discussed the different roles each mailing list plays as well as irc channels.

Ended with a QA section.

Special thanks to Max Spevack for his slide show that I based mine off of and also for maintaining the statistics, I covered them in my slides and it was nice to have real world numbers to show. The map was also a big hit, graphical goodness is always fun.

EDIT: Forgot to upload the presentation slides, now available here.

Thursday, January 15, 2009

To Twitter or not to Twitter...

So... I haven't posted in ages and its mostly a time constraint, I'm busy all the time but I hope to post here more often in the near future as a do more concurrent programming research for my professor. I have however started to twitter. I always said that I wouldn't, but I did and I promised myself it would only be for things that don't suck (mainly technical posts). The only reason I did get a twitter account is because I have a T-Mobile G1 with the almighty Android OS and there's a twitter client in the Market. So I can quickly post from where ever, when ever, while I'm doing what ever. Which makes it nice. Hope to post half decent cognitive thoughts in the near future, laters.

Monday, January 28, 2008

Quote to go with current events...

I haven't posted in a while, and this technically isn't really a post but a quote that I had to slap up somewhere because I feel it is all too fitting for what is happening in the world around me.

"Naturally the common people don't want war... but after all it is the leaders of a country who determine the policy, and it is always a simple matter to drag the people along, whether it is a democracy, or a fascist dictatorship, or a parliament, or a communist dictatorship.Voice or no voice, the people can always be brought to the bidding of the leaders. That is easy. All you have to do is tell them they are being attacked, and denounce the pacifists for lack of patriotism and exposing the country to danger. It works the same in every country."
-- Hermann Goering, Nazi and war criminal, 1883-1946

Thursday, September 06, 2007

A Simple Lexical Analyzer .... Enjoy.

I got bored and wrote a simple lexical analyzer and thought about walking through explaining it but in all honesty its rather self explanatory especially with the inclusion of the diagrams I made and the BNF grammar I am supplying to go with the code snippet.

The grammar simply parses words or phrases in a file with white space as a delimiter and requiring that all words or phrases start with a letter and are followed by any combination of letters and digits.

BNF:


G[<Word>]

<Word> ::= <Letter> | <Letter> <LetterDigit>
<LetterDigit> ::= <Letter> | <Digit> | <LetterDigit> <Letter> | <LetterDigit> <Digit>
<Letter> ::= a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z
<Digit> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

A graphical representation of the grammar:


And the finite state automaton:

Finally, the code ... in python of course :)

Note: If you copy and paste this code it will not work because for one reason or another I can't get blogger to format the tabs correctly, please download the code from the link provided at the bottom.


UPDATE: Now featuring code indentation goodness.

###############################

#!/usr/bin/python
import sys

class SimpleLex:
"""@Author: Adam Miller - Simple lexical anyzer"""

#allowed alphabetic characters in grammar
alpha = 'abcdefghijklmnopqrstuvwxyz'

#allowed digits in grammar
digit = '0123456789'

#white space symbolic representation
wSpace = ' \n \t'

#grammar table of relations
table = [
[1,3,0],
[1,1,2],
[2,2,2],
[3,3,3],
]

#relations of type and their state index
relations = {
"alpha":0,
"digit":1,
"wSpace":2
}


def __init__(self, file_name):
"""open a file, extract contents, close file,
initialize character list, and state variable"""
self.f = open(file_name, 'r')
self.lines = self.f.readlines()
self.f.close()
self.chars = []
self.state = 0

def scan(self):
"""process the file's contents one character at a time"""
for line in self.lines:
for c in line:
# 3 is the error state
if self.state == 3:
print "Error"
self.state = 0
self.chars = []
# 2 is the success state
elif self.state == 2:
print ''.join(self.chars)
self.state = 0
self.chars = []

#let table drive state transitions
self.state = self.table[self.state][self.lex(c)]

"""print final character buffer because the loop will end
execution and not let the last success state be checked"""
print ''.join(self.chars)

def lex(self, c):
"""return the correct relational index to the type of c"""
self.chars.append(c)
if c in self.alpha:
return self.relations["alpha"]
elif c in self.digit:
return self.relations["digit"]
elif c in self.wSpace:
return self.relations["wSpace"]
else:
return 0

#use the code i just wrote
if len(sys.argv) < 2 or len(sys.argv) > 2:
sys.stderr.write("Usage: sampleLex \n")
elif len(sys.argv) == 2:
lexer = SimpleLex(sys.argv[1])
lexer.scan()
###############################

For your viewing pleasure, a small example of the "little lexer" in action:


###############################
adam@pseudogen:~$ ./simpleLex.py lexFile.txt
hello
world
from
my
ub3r
l33t
lexical
analyzer

###############################

The code, the diagrams and the file used in this example are all available here.

Wednesday, September 05, 2007

Computer Science: Through the eye of those on the other side of the looking glass

So I sit there in front of my faithful computer hacking away at what I am pretending to be homework so that I think I am actually being scholastically productive. As I sit, I receive and instant message from a good friend of mine who is a Computer Science Major at Rice university and he has a question about some Mac software's auto backup capabilities, and I answer to the best of my knowledge and the conversation comes to a halt. I simply assume he is troubleshooting something for someone and more likely than not it is for his girlfriend for she is the proud owner of an Intel MacBook, but never the less I go back to my procrastination like a good student.

A few more minutes pass by (could have been over an hour for all I know, procrastination isn't really the best time keeping activity) and I get an instant message from my friend's girlfriend stating that she has been given the task of writing an essay about "What Computer Science is" for her introductory computer science course at Rice (we will assume for all practical purposes that this course is for non-comp sci majors). And she exclaimed to me about the daunting tale that was writing said essay along with the irony that went with the fact that the word processing software she was using had crashed and she lost everything, but being the good student she is she trudged on and rewrote it from scratch. Though, this time, with a different attitude and a delightful spin on it all. Her essay was far too priceless not to publish somewhere and I got to it first! So, without further a due I present to you "What is Computer Science?" by Rachel Gittleman:

" Earlier this evening I wrote a short essay on the definition of computer science, a discipline I am familiar with only through the influence of a computer scientist I have been dating for nearly three years. I did not let him read it because I was embarrassed by how little I actually knew about the subject, and as I was in the process of saving and finally being done with the humiliating exercise, my word processor crashed and took my hard-won essay along with it. Even with the help of said computer scientist boy-friend, the essay proved to be irrecoverable.

So what is computer science? A couple of hours ago my answer was as optimistic and technical as possible for someone who really has no idea what she is talking about. I stressed the dichotomy of the discipline as both a study of computation and computational machines--theory and practical programming, math and engineering. I mentioned the relative newness of the discipline compared to others in academia (I even dropped famous names), and conjectured that views on computer science must be very different now than a mere decades ago, but that at its essence, the field is about what programmable machines can do and how to make them do it. Having my word processor crash was disheartening and, after fruitlessly trying to recover the document, I was convinced to rewrite the essay in its current form.

Computer science is new, rapidly evolving, and incredibly broad. It has the power to drastically improve the quality of our lives over incredibly short spans of time, and in the past few decades it has provided us with earth-shatteringly new tools that quickly have become integral parts of the daily routines of even the most computer- illiterate (myself sadly counted among them). Although these qualities make computer science fascinatingly current and applicable in a way that the older sciences and humanities are not, there are also inherent downsides, particularly when it comes to accountability. The constant demand for new programs and applications and the inability of most of the public (again, including myself) to understand what goes into making them naturally results in buggy programs that can crash without notice, taking hard-working students’ single-spaced essays on computer science with them. I think the public would do much more than sigh and send an error report if a mechanical engineer built something so easily broken.

I still think computer science is the study of computation and computational machines, and I still think that it is an exciting new discipline that I want to know more about (that is why I am taking an introductory course after all), but I also want to make sure to express my hope that one day all that theory and engineering and programming will eventually be accountable for making me a word processor that will not crash."