Showing posts with label fedora. Show all posts
Showing posts with label fedora. Show all posts

Monday, December 19, 2016

Fedora @ LISA 2016 Wrap-Up


LISA is a conference that stands for "Large Installation System Administration." Corey Sheldon told me how awesome it was last year, and that is one reason why I went this year. I was one of one of the Fedora ambassadors along with:
  • Matthew Miller (it's the only event he serves as an ambassador at each year)
  • Corey Sheldon
  • Nick Bebout
  • Beth Eicher
  • Some Red Hatters involved in Fedora (like Steve Gallagher.)
    • Note: There was a Red Hat booth right next to us.

Mike DePaulo showing off X2Go to Matthew Miller

Overall, the event went very well. Perhaps it felt that way due to the technical nature of the crowed. The reasons why it went well are:
  • Many people had heard of Fedora
  • Of those that had not heard of Fedora, almost everyone had heard of RHEL or CentOS, and were pleased to hear about Fedora's relationship to them.
    • In addition to the usual explanations about the relationship, I like to say "Red Hat sells its past, and gives away its future."
  • A Microsoft employee expressed his opinion that that Fedora should be on the Azure cloud.
    • Disclaimer: This was his personal opinion.
  • A few people reported that they were using Fedora in production environments consisting of dozens or hundreds of machines.
  • At least 1 person expressed interest in using the Fedora 24 Workstation DVDs that we had, specifically to try out Fedora via the live mode.
  • At least 1 person was delighted to hear that he could use either GNOME boxes or virt-manager on his CentOS system to run Fedora easily.
    • After all, Fedora includes the drivers and guest agents to run on these KVM-based virtualization solutions.
  • Steve Gallagher gave a presentation on Fedora Modularity. Of particular note was his Voltron analogy!
Some downsides though:
  • We only had Fedora 24 DVD's rather than Fedora 25 DVD's. Of course, Fedora 25 was only released 2 weeks prior, so it was unreasonable to have hundreds of DVD's printed & delivered by then.
  • We had Cockpit on a big display. Although it generally worked, the SELinux feature did not at all. Even when we went out of our way to generate an SELinux error that was logged, it did not show up in the Cockpit GUI.
I personally had a great time. I look forward to next year!

Thursday, March 10, 2016

Fedora @ RIT BrickHack 2016 wrap-up

Along with several other ambassadors, I attended BrickHack 2016 at RIT over the weekend. It is a hackfest for college students sponsored by MLH.

(Technically I am not an ambassador yet. But I've been told that I should feel like I'm one already.)

Shouldn't the short guy (your's truly) be in the front?
The event went very well from both the event's perspective and from Fedora's perspective.

I went as a coding mentor in addition to a sponsor, but there were very few requests for mentoring (and they were very brief.) Instead, most people who came up to the booth wanted to know about Fedora!

(And they wanted stickers and case badges.)

I remember one person who had an interesting reason for wanting to try out Linux: She liked Bash after having used Git Bash on Windows.

Many student develops were particularly interested in DevAssistant. They loved its concept of easily setting up a development environment / project.

DevAssistant drew a lot of interest

There were a total of 16 projects submitted to the FOSS category, and were thus eligible for the prizes. Considering that Microsoft received 24 project submissions, and they were giving away a far more lucrative set of prizes (~$1,000 Surface Pro 4 tablets,) I'd say that people were pretty self-motivated to release their project as FOSS.

Although the FOSS category winner (an online card game in HTML5) was worthy of the prize it received, I would like to give an honorable mention to another project. They implemented an email client and server with end-to-end PGP encryption. The client is in HTML5.

There was one student, Mikhael, who completed his project early and wanted help installing Fedora to dual-boot along side OS X on his Early 2015 11" Macbook Air. Although we had to resort to using the broadcom wireless driver from RPMFusion, which involved transferring RPMs via USB key, by the time we were done he was very pleased. He also wanted basic instructions on using Fedora, so I made sure to show him how to use gnome-shell, GNOME Software and gedit with developer plugins.

I would also like to thank Ben Williams for his work on the updated live media; we used it to install Fedora Workstation for Mikhael. Also I would like to thank the liveusb-creator team; DVD drives are a rarity nowadays.

-Mike

edit: Added info on DevAssistant

Monday, August 24, 2015

Why I gave up on the Linux Desktop repeatedly, and why I migrated back to it

Quitting smoking is easy, I've done it hundreds of times.

2001 to 2003: Discovery and Failure

At age 15 (2001), I became an IT intern at my high school.

I wasn't initially accepted as an intern via the application process. But the 2 IT staff saw me helping a teacher with his laptop, and reconsidered my application on the spot.

My high school was, and still is, a strong partner with Microsoft.

For example, Windows XP didn't officially reach GA until 2001-10-25. When I started high school on 2001-09-10, we already had Windows XP installed everywhere.

Microsoft helps them educate their students in technology, and education was (and still is) their #1 value. Not software freedom.

To emphasize my school's commitment to education, consider this story:

I did a community service program between my high school and Penn. At that time, it was called TechServ, not TechServe. And it did not involve other high schools yet.

So during that program, there was a lesson about Jean-Baptiste De La Salle, the founder of the order of our schools (the Christian Brothers.) I read this pamphlet about him, and it is resting on my Macbook now. Afterwards, I asked the Christian Brother what the difference was between the Christian Brothers and the Jesuits, who already existed. He replied:

The Christian Brothers focus exclusively on education, especially for the poor.
So clearly open source, if they cared about it at all, was a means, not a value, for my high school.

My high school's values.
Free tablets from Microsoft are merely a means to this end.

Yet irony abounded. The Christian Brothers repeatedly had action taken against them by the "writingmasters guild" and the "schoolmasters guild". By educating the poor, without charging money (or being inept at it), it was said that they were "upsetting the applecart." 

The analogy to open source is obvious.

I wonder if a company nowadays will patent "novel" ways to write Wikis and then found a "WikiWriters guild."

(Note that the existence of those guilds contributed to the French Revolution.)

Anyway, needless to say, Linux was forbidden fruit.

The famous prank that a rogue Linux-loving-intern pulled was to boot the Microsoft-fanboy head-IT-employee's laptop with Knoppix.

Despite all this, in early 2002, I first tried Mandrake (the "Distro of the Day") on my home desktop. I tried a couple of other distros too, on and off, through early 2003.

However, I would try to download and install my existing Windows applications (like AIM for Linux, seriously) and fail to install them.

As a point of reference, my high school lended me a Microsoft Windows CE 10" "Intel StrongARM" tablet. (They evaluated them, but did not deploy them. So IT interns got to borrow them as perks. 12 years later, they finally gave a Surface tablet to every student.)

To install AIM on it, I went to AIM's website, downloaded the .exe installer file (which was compiled for ARMvSomething and Windows CE, not for x86 and win32) and then installed it. After installation, I launched it from the start menu and it ran successfully. Of course, resistive-screen-tapping of keys was a very slow way to type. And on AIM culture in the early 2000's, responding slowly was a serious breach of etiquette. But I didn't realize that at the time. I simply was annoyed by being slow to type.

The point is, I was still subject to the mental model of "go to the application's website and download" to install an application.

Maybe I forgot to set the executable bit on the binary blob installer before double-clicking it in the file browser. Or maybe I made some other mistake. I did not know very much about Linux or Mandrake, so I gave up on it.

At that time, I was willing to switch from proprietary applications to open source applications. But it was my inability to install and use arbitrary applications, open source or proprietary, that frustrated me.

After all, installing and trying out lots of different applications was how I was developing my IT skills so rapidly in my free time. I was learning about as much in my free time than I was at the internship. But Linux was not conductive to this approach.

So I 1st gave up on the Linux desktop in 2003.

2004 to 2006: Lizards in the Closet

In spring 2003, 1 of the 2 IT employees told me that I would become one of the head IT interns next year.

I thought I had a did a good job over the summer. However, I made mistakes that I later cringed at.

In fall 2003, other IT interns were already designated by by that IT employee as head IT interns. And I was told by that employee to go through the application process again; something that they did not have to do. Bureaucracy is often a polite way of saying "No."

(In 2005 the principle apologized for the IT employee's actions, including her false promises, to me and other former/current students. That IT employee later left the school.)

So until I graduated from high school in 2005, I continued to hang out with my friends in the IT internship program. I continued to do volunteer IT work for the school on and off, even though I wasn't officially an intern. But I did other activities in my free time (like LD debate,) which made me more well-rounded. And I continued to develop my IT skills in my free time.

One of things I did in 2003 was setup my old desktop as a server running Windows Server.

While I was on Windows, I would use primarily open source apps: Firefox, OpenOffice, MediaPortal, gaim, ClamWin, etc. In 2005, I even heard from a former IT intern, who was working at Microsoft, that almost every Microsoft developer was using Firefox.

I still feel like open source Windows apps are a great way to help  people migrate to Linux. There even used to be open source Windows apps on Ubuntu CDs.

In 2004, I felt like I would finally give Linux another shot. So I installed SUSE on my server.

And I did successfully stick with SUSE on my server.

However, the server was in my closet. So I named it "conclave" ("A secret or confidential meeting", also an entity in Starcraft.)

The monitor, keyboard, and trackball were outside of the closet, but generally on the floor, so interacting with the server (and thus the KDE desktop) physically was awkward. I primarily interacted with it over the various VNC solutions. I would edit config files in my home from my Windows desktop via samba, before copying them back to their location under /etc/. By doing this, I learned what line breaks are the hard way. ("The daemon says there is invalid syntax foo on line X, but it syntax foo is actually on line Y.")

I gained a good understanding of package management, executable bits, etc while using SUSE on my server.

And I put my server to good use. I used Apache to host a PHPBB forum for my friends from the IT intership; which was bragging rights, for both myself and for Linux. I made it the firewall/router for my home LAN. I put multiple hard drives in it and shared them out over Samba. Etc.

Since my server was running SUSE, and installers were getting better, I figured I would try dual-booting my desktop again.

It was true that on SUSE, most open source apps I needed were available in the distro. However, I had to wait for a new release of the distro before I could install the latest version.

Open source news sites would announce that a new version of gaim, or other open source apps, were released. Often I wanted to try out the latest version for that reason alone. Often I actually needed the latest version.

When a new version came out, I could install the latest version on Windows and use it. There was never any hassle in installing the latest version of an open source app on Windows.

But on Linux, I tried and often failed to install the latest version from source.

Sometimes I would try out obscure open source Windows apps. Installing and running them was never a problem. (Vista wasn't out yet.)

Yet trying out obscure open source Linux apps usually ended in failure. Often they simply used "./configure; make; make install", but the dependencies were an issue. It was hard to figure out how to resolve the dependencies on my distro rather than the maintainer's distro; they were usually listed in a text file with the names for that other distro. Or they were listed in a very generic format that I did not know how to translate into SUSE packages names. I never tried to package them; I simply tried to compile and run from the tarball. And there was actually a GNU tool for that.

Honestly, when I could not compile an open source app, I felt less free than on Windows. I felt like I did not have "freedom 0."


The freedom to run the program as you wish, for any purpose.
I no longer feel that way. But that was how I felt at the time.

And I am not just making this up. There is proof on an open-source version controlled wiki, last updated on April 12, 2007.

I have a friend who has since come to embrace Linux and work as a CentOS guy at Facebook. But at the time, he loved Windows and hated Linux. He said:
setup.exe owns .rpm and .deb
There were attempts to make "portable" Linux "apps" that bundled their dependencies. I read that they used very generic compilation options too. The one I tried most was klik. Others included PortableLinuxApps, Glick and Glick2. However, from my perspective, few apps were available for them. They simply failed to catch on. Perhaps there were also technical limitations that limited which apps could be packaged with them.

Over time, I tried to switch my desktop entirely to Linux. I still remember my aunt asking me if I had any intention of switching to Mac OS X. I told her that I was switching to Linux. However, it was difficult to explain Linux to her.

To switch my desktop entirely to Linux, I needed to get all the proprietary games I play to run on Wine (or "cvscedega"), and that usually ended in failure. And even when they did run without errors, they did not run at full-speed. Or I had to disable certain graphics settings. Honestly, I tried so many different versions of Wine, and different graphics settings. I experienced mixed results, that I felt like I was wasting a ton of time.

So I gave up on Wine.

At one point too, I tried to run nothing but open source games. It was very hard to do though. Games like Boson looked promising in their screenshots. But once i managed  to compile them, they were not as good as the screenshots led me to believe. They were slow to improve, and even if they did, the latest version had to be compiled from source. Ultimately, I concluded that open source was not a good model for game development, and resigned myself to playing proprietary games on Windows.

I continued to dual-boot, but it was annoying to switch back-and-forth on my desktop to play games.

Note that in 2005, I graduated from high school and went away to college. To access my server remotely, I had to use VNC. However, I was disappointed with the lack of progress on VNC solutions. This was partially due to RealVNC discontinuing new major versions of their open source version in 2005. I eventually discovered NoMachine NX, before it went 100% proprietary.

Then in August 2006 I bought my new desktop with a Core 2 Duo "conroe" and Intel 965P, ICH8 chipsets, and a Marvell storage controller I tried about 4 different Linux distros but could not boot a single stable release.

I remember asking for an explanation on IRC. I asked a question like "why doesn't Linux write generic drivers like Windows does so that it can handle new hardware?" Someone gave a reply like "because generic drivers are crap."

I became so frustrated with this that I gave up on running Linux on my desktop from that point.

Make no mistake, I still loved Linux. And I loved the concept of open source even more than I loved Linux. I was always fascinated by it from an economics and management perspective. It seemed to the perfect example of non-market economics based on self-interest. Later on, I gave a presentation on open source project management in my management class (although it is full of advise from SVN developers, so I am afraid to show it now.) However, I was pissed at Linux developers over their decision to not develop generic hardware drivers for my brand new desktop. And I was continually frustrated by the binary blobs from Nvidia no longer working.

I understand now that drivers should be open-source and in-tree so that vendors do not slide back into binary blob release mode. Of course, today, management and many engineers at work do not understand this. So I tell them that just as Microsoft enforces WHQL standards on their manufacturer's drivers to prevent BSODs, the Linux kernel project enforces their own quality standard on in-tree drivers. And it is absolutely true that out-of-tree drivers cause kernel panics very often. But from their perspective at work, the Linux kernel updates breaking drivers is just 2 "vendors" bickering with each other. So I try to persuade them with stories about kernel panics, and those stories are true.

I continued to run Linux via dual-boot, or exclusively, on my laptop. And my home server ran nothing but Linux.

But I felt like I needed to focus more of my time and effort on schoolwork; not on developing my IT skills in my dorm room. This was not a very happy time in my life. Just as De La Salle focused entirely on education, I needed to do so also.

However, make no mistake. Although I gave up on running Linux on my desktop a 2nd time in 2006, I did not give up Linux in general, or on open source. (Again, proof is here.)

2006 to 2007: ReactOS on the Desktop

Around this time, I decided to help the ReactOS project. 
ReactOS is an open-source operating system intended to be binary-compatible with computer programs and device drivers made for Windows Server 2003. 
Call it a "Windows clone" if you want. That is what everyone else called it.

Mike DePaulo's ideal Open Source desktop OS in 2007

I joked with my friends that they should adopt a new mission statement:
ReactOS is a open-source project designed to make Steve Ballmer lose sleep at night.
Seriously, that afore-mentioned link is a brain dump from me on their wiki. I helped them with bug triaging, documentation, and all. I learned about open source culture and etiquette. I also learned version control.

Anyway, Running ReactOS on real hardware was always a pain. Which is why we typically used VMware Workstation or Qemu.  Later on, VirtualBox. I also gained an understanding of why VirtualBox was crap compared to VMware and Qemu.

At least ReactOS seemed be working with upstream wine. And their OS installer acknowledged Wine + the other projects they derived from in its "wizard," I learned the value of "stay close to upstream" from ReactOS. Even though they were using SVN.

However, I did not learn C or C++ (or assembly) fast enough to help ReactOS meet its lofty goals. And I feared that ReactOS was developing too slowly to ever compete with Windows or Linux. Although I was helping them with multiple non-programming tasks, and reportedly learning a lot via IRC discussions, I felt like by not contributing code, I was merely a "groupie" on their IRC channel.


ReactOS's development team may have been small, but there was no shortage of talent. Alex Ionescu is a genius. But he was later hired by Microsoft.

Also, Firefox compatibility became increasingly difficult for ReactOS after Firefox 4.0 was released. Frequent "upgrades" (rather than "updates") to Firefox meant freaking breakage under ReactOS. And the web browser is the main application for any OS.

So while ReactOS had raised my hopes for an open source desktop, this was only temporary.

I gave up hope for an open source desktop a 3rd time.


2006 to 2010: Linux on Everything but the Desktop

By mid-2006, I had migrated my laptop to either Ubuntu, or Ubuntu + Windows dual-boot. I was using KDE3.

I got 1 new laptop model after another and continued to run Kubuntu. But my desktop, with its continually upgraded CPUs and graphics cards, continued to run Windows.

There were hardware difficulties on my laptop, but I was willing to work through them. Even if it meant using crap like ndiswrapper.

And Ubuntu even added official support for KDE, in addition to GNOME. 

Mark Shutleworth compared GNOME, KDE and the Server on Ubuntu to 3 "peaks": K2, Kangchenjunga and Lhotse. He said  that they were based on "Debian’s Plateau." This sounded like a good argument, and I bought it.

Then KDE 4.0 came out. Due to the unsuccessful launch, I switched to GNOME2.

At that time, Ubuntu was not yet doing many crazy modifications to GNOME; and each 6 month Ubuntu release was actually timed to co-inside with each GNOME release (like Fedora does now.) So I got to try out the latest version of GNOME, via either Ubuntu betas or stable releases. It also seemed like GNOME was better integrated into Ubuntu than KDE was. Ultimately, I felt like I had the latest and greatest GNOME experience on Ubuntu, although I wondered what the "vanilla" GNOME experience was like.

I tried KDE 4.x multiple times again. But I didn't continue with it because it was slower, and because it was less poorly integrated into the Ubuntu OS.

But why did I switch to Ubuntu in the 1st place?

Over time, Ubuntu became the "de facto" desktop Linux distro. So ubuntu .deb packages of desktop applications became almost always available, such as via the developer's site or the sourceforge page. This was a solution to my original problem of not being able to run open source apps on Linux, even if it was an issue for other distros.   

So I continued throughout college to run Linux on my laptop, whether it ran Windows or not. My primary reason for using Windows was gaming, but thin-and-light laptops sucked at gaming, so I just gave up at gaming on my laptop. Gaming was what my desktop was for. And I continued to run many open source cross-platform apps.

I still remember when I submitted my resume to my college's job board in .doc format, .docx format and .odt format. I was very proud of myself. I figured I could apply to every type of company (old fashioned, Microsoft loving, or open source loving) with all 3 formats. I even entered descriptions like "Resume in OpenDocument Format." But the career counselor deleted the .odt file. And the company I ultimately joined after college with only cared about .doc or .docx files.

While I was still in college, I interned at a computer camp for kids. I came up with an improvised solution like Spacewalk, but for Windows desktops. In the Windows XP ghost image that went out to each desktop, I had installed Copssh, an easy-to-install-and-use bundle of Cygwin SSH. I also had a public key installed in each desktop's authorized_keys file. From the machine in my office, I could issue arbitrary commands or push updated .msi packages (created with WinInstall LE) via a loop. I am sure there were more elegant solutions. But I was told not to setup a windows domain by my boss. And he told me that there were no free-of-charge or cheap solutions to do the same job. 

Ultimately, this approach was a great success, and it got me very interested in Cygwin.

I even tought workshops at that camp too. I tought Linux workshops, and it was awesome to teach it. Previously, they had used VMware Workstation to run Linux. I suggested using wubi. (Which Ubuntu later discontinued.) It was a great success, and kids loved 3D desktops like Compiz. The performance was also faster than on VMware Workstation.

 

Loop-Mounted Filesystems + 3D Effects == Happy Campers

 

However, when I first started my camp job, I got into an argument with 2 of the head camp employees. I told them I needed to run Linux (Ubuntu + webmin) for a firewall machine (desktop PC with 2 NICs) with the necessary config options to prevent campers from using the internet at night, without restricting counselors' ability to do so.

1 of them insisted that I should not install Linux on it. She stated that she wanted it to be a general-purpose Windows desktop too. She made a statement like "this isn't a computer for messing around with." The other employee confirmed what she said. "I don't know what was installed on it last year. But I know it wasn't Linux."

I was rude in that argument for aforementioned reasons.  And I was afraid that I would lose my job; lose my job for insisting that a firewall machine needs to run Linux. But I knew I was right. My boss, the techhnology director, talked to them. And then he talked to me. The machine was running Linux last year. It was running IPCop. But they didn't know that IPCop was Linux. Just as other distros try to hide the fact that they are "Linux."


And no one at camp doubted that I loved Linux. I helped campers and counselors install it on their laptops too.

At school, I joined an engineering fraternity. And I became the network admin for my fraternity. I installed 1 distro with a WebGUI, and then another, for our fraternity's firewall machine. It became more of a general-purpose server too; where "downtime" equaled "unhappy fraternity brothers."
I also started to use dd-wrt and other Linux distros on wireless routers, which I could use as APs/switches throughout our fraternity house. Linux could even run on the 2-year-old Microsoft MN-700 wireless router that I bought! I was excited for both Android and Linux on tablets. I bought some really early models of them in 2009-2010. But this blog post isn't about servers, or routers, or tablets. It's about desktop Linux.

I even became president of the LUG at my school. And no one doubted that I loved Linux. I brought my laptop with Linux to all the LUG meetings! 

Around that time, Sun Microsystems started creating their own astroturf competitors to LUGs called OSUM (Open Source University Meetup.) They created an OSUM at Penn State without contacting the existing LUG! This sounds awfully similar to a few other "open source" operating systems nowadays.


And I knew there was something wrong with Sun's approach to open source in general.

Throughout college, I would take notes in class on Linux, and give presentations on OpenOffice in Linux. 

OpenOffice's 3D effects on Linux would wow the class. But the 3D effects  weren't available in OpenOffice.Org for Windows. Why? Because of Sun's policies. 


So I still valued open source, but I was learning about it through bad examples. Sometimes you need bad examples to understand the right way. (Note to self: create lib-unstable-abi and put it in a copr repo.)

But I still wasn't running Linux on my desktop.



2011 to 2015-08-11: Business as Asual and X2Go

In fall 2010, I graduated from college. And I did not need to take my personal laptop into work. So I no longer needed to use my laptop very much. 


I had built multiple spare desktops from spare/on-sale/friend's-old components in my apartment. And they ran Linux occasionally for testing things like Wayland. But they primarily ran Windows, because they were primarily for gaming when my friends came over.

At work there were multiple reasons beyond my control why I needed to run Windows on my desktop. And at home, I started contributing to X2Go, so that I could access the Linux desktop environments from Windows physical desktops. I started to use Cygwin more heavily too, and even became a package maintainer (albeit for a package that I needed for testing Windows X Server performance.) With X2Go, I could access the Linux dekstop remotely. And I have been always running Thunderbird (for encrypted/signed email, not for other email) remotely.

(I do not want to link to any of this, because I do not want to promote my open source contributions in this blog post.)

In terms of servers: I do have multiple physical servers running Linux at my apartment. Only 1 of them is in my closet (the storage server), but that is for physical space reasons. I have only 1 physical server running windows: the physical DC. (The other Windows DC is a VM running on KVM.) The reason I have 2 Windows DCs is because Samba 4 was missing 2 important replication features, and 1 of them is physical for technical reasons that would take a while to explain. 
In terms of my laptop: Currently, I have a ($150) ChromeBook running Fedora 22, and a Macbook Air with a small SSD. The Macbook Air was only running Windows and Mac OS X until shortly before Flock. I replaced Windows with  F22 before I went to Flock to avoid the embarrassment.

But my primary desktop? It was still running Windows. And I had upgraded it to Windows 10 in order to try out the latest version of Windows, with all of Microsoft's latest features.

And this entire time, gaming on Linux had been improving. Even when games are not available for native Linux, steam Windows games are at least streamable.

So Ultimately, Linux was not my primary desktop. Windows still was. And the real reason was not because I needed to run games. It was because I was not trying very hard. And I only realized this just now.

2015-08-11 to 2015-08-22: Flock and FOSSCON


At the X2Go conferences I went to, no one doubted that I loved Linux. And I need to run Windows there because I am the X2Go Client for Windows maintainer. But when I went to Flock, and when I went to FOSSCon, people did doubt that I loved Linux because I ran Windows on my primary desktop. Calling it my "gaming rig" was no excuse. It is a gaming rig, but it is (Update: was) still my primary computer.

Yes, I do need to run League of Legends. It is my "mission-critical" application. And it is a "social network" because all my friends play it.

Seriously, there are 15 machines on my network responding to pings right now; whether they  are servers, VMs, or embedded devices.  And that's not counting the spare desktops; they're in standby. If I have all this hardware at my apartment, I can figure out a solution to switch to the Linux desktop using my existing hardware!

And it was a discussion on IRC, combined with Microsoft pulling crap much worse than they have pulled before, that gave me the final bit of motivation to migrate to the Linux desktop.

2015-08-22 to 2015-08-23: My Migration to the Linux Desktop

You're probably wondering if I have spent hours doing nothing but writing this blog post.

Actually, I have been migrating to the Linux desktop the entire time!  
This one's for me
Progress bars for large file transfers gave me lots of time to type.

I finished typing the last section on my Windows desktop. I started typing this section on my Linux desktop. 
My Linux desktop shortly after migration. monitor 2 is not yet detected.

I need to get to bed soon. I do have a day job. I will blog later with the technical details of my migration, and my hopes for the future.

But in summary, there will be 2 physical desktops on my desk. One running Fedora, and the other running Windows. And that is the physical Xorg server on Fedora, not a remote/virtual X server.

And make no mistake: The Linux desktop is the primary desktop. And I am using it comfortably right now.

I do have 3 closing remarks though.


If you have any doubt over my commitment to open source, my history is on the web/internet, not behind closed doors.
I learned the open source way -- the hard way.
Perhaps the reason why everyone wants to work remotely is so that they do not have to quit smoking.

-Mike

Update: 2015-08-28: Fixed several typos and hopefully the formatting
Update: 2015-08-29: Replaced link for "work remotely"

Sunday, August 23, 2015

Fedora @ FOSSCON 2015 wrap-up

Corey Sheldon and I attended FOSSCON 2015 in Philadelphia yesterday.

Remember that Corey is an experienced Fedora Ambassador, but I was brand new.

The table was indeed very busy.

Dozens of people grabbed F22 workstation DVDs. However:

  • It was awkward explaining that respun media was just released, and that they would need to spend about 30 minutes (Corey's estimate) of updating from the current media, so perhaps they should grab the respun media instead.
  • We only had 64-bit Workstation DVDs for some reason. Several people asked about the lack of 32-bit. Only a few people needed 32-bit though.

In my experience, many Windows users are unwilling to install Linux on their current laptop/desktop that are "working fine." However, they are willing to install Linux on their old laptops/desktops that get slower over time running Windows.


The performance of your cheap Windows laptop will certainly degrade over time. The operating system has massive overhead, combined that with the slow spinning HDD, bloat-ware that typically ships with Windows laptops and all the additional 'essential' software, it's basically a forgone conclusion this is going to happen. In five, or even just three years your cheap Windows laptop is going to be even more annoyingly slow, while the Chromebook will keep working as it did on day one.

I pointed out that many proprietary freeware applications for Windows (such as Adobe Reader and Skype) have mandatory upgrades to new major versions. Both the free and paid anti-virus have mandatory upgrades nowadays. This makes your Windows laptops/desktops run slower over time, even if you never upgrade the OS.

Many people expressed their concern that Fedora is "Red Hat Unstable." So I pointed out the following:

  • Red Hat employs 8 people on the Fedora QA team. (I hope I got that number right.)
  • Fedora QA is working on automated testing with OpenQA.  The OpenSUSE guys helped us set it up!

Those 2 points were very persuasive.

The OLPC running SUGAR was very popular amongst both kids and adults. It certainly drew people to our table.

  • Multiple people asked which exact model it was, but we did not know.
  • The fact that the OLPC originally ran Fedora, and still runs Fedora, was the perfect example of "stay close to upstream."
  • The ACPI power button still worked! I was impressed.

Multiple people asked what the minimum requirements were.


  • Corey and I forgot that the requirements for 64-bit workstation are on the back of the DVD case.
  • 1 person mentioned that they had a system from 2006 with an Intel "dual-core" CPU and 4 GB of RAM. I recommended MATE instead of Workstation/GNOME. 
  • Other people asked about running Fedora on Pentium 4 (2001-2006) systems with 1GB of RAM. We recommended LXDE, but pointed out that Firefox would be the limiting factor no matter what desktop environment they use. I suggested using Midori instead of Firefox.

Other topics from experienced users:

  • The notion of 3 different flavors was well-received. Many experienced users agreed that workstation should have a different installer than server, and that workstation should have a different default partitioning scheme and default filesystem than server. I emphasized that the flavors are not a limitation because all the packages are available after install. They replied that they already assumed that because "they use the same repos."
  • At least 2 Linux Mint users asked for the Cinnamon desktop environment. I remembered that it was already it is packaged, but Corey corrected me that it is not yet official until Fedora 23, so we should not suggest it to people yet as ambassadors.
  • The idea of "Install graphical apps from GNOME Software, but install command-line apps via dnf" was well received.
  • Many experienced users of other distros felt that RPM and Yum were terrible. They were delighted to hear that Yum had been replaced with DNF, and that RPM is continuing to improve. So while the Yum to DNF transition may have been difficult for Fedora users, it is great for marketing Fedora.
  • In particular, a Debian user was delighted to hear about weak dependency support.
  • One user called himself "old school" and said that he uses IceWM on Debian. I quickly installed IceWM on my Macbook Air (running Fedora Workstation with GNOME + MATE) via dnf. However, GDM did not immediately recognize that IceWM was installed after I logged out. So I rebooted my laptop, and he was glad to see IceWM on F22.
  • The fact that numerous desktop environments and lightweight window managers are available, and that they integrate via features such as icewm-xdgmenu, is the perfect example of Fedora's values.
  • rEFInd running on my 13" Macbook Air (mid-2011) was also popular :)
  • A gamer was delighted to hear that a Fedora games spin was available, and it eased his concerns about Fedora being nothing more than what Red Hat wants.
  • The fact that GNOME Software runs on other desktop environments was well-received and highlighted the work of FreeDesktop.org.
  • People were impressed to see GNOME on Wayland. But it was hard to tell apart from GNOME on X11! Ultimately, I used "System Setings", "Details", "Graphics" to show it, or I searched the terminal for running process.



Other topics from novice users:

  • Many novice users (as well as experienced Windows/Mac developers that are new to Linux) used "Ubuntu", but did not know what desktop environment they were using (Unity.) So it was difficult to explain to them that Unity was not available in Fedora. However, once they saw the GNOME 3.16 desktop environment running on my Macbook Air, they felt comfortable trying it.
  • To show how easy GNOME 3.16 is, I showed them that they could press the Windows (Apple Command) key, start typing the name of an application (like "fir"), and hit enter to launch it ("firefox.") This was well-received.
  • "Workstation Edition" was difficult to explain to novice users. So I said "version for desktops and laptops".
  • GNOME Software was very well-received. I loved showing that the install button is now also the progress bar.


I received feedback from an ArchLinux ARM developer. They had numerous ARM devices on display there.

  • He was very grateful for the work that Red Hatters do on hardware enablement.
  • We agreed that Fedora's policy of "stay close to upstream projects" is similar to The Arch Way.
  • He stated that the reason why ArchLinux ARM can support so many devices is by staying close to upstream.
  • He suggested I run ArchLinux ARM on my (2011) EFIKA MX Smarttop.

Overall, I had a great time and look forward to going to more conventions.

-Mike

Saturday, August 22, 2015

Confessions of an Open Source Developer

Forgive me for I have sinned.

I have not been following "the book."

There are many other things that I could list too.

But perhaps worst of all:
  • I merged a PR that was not yet upstreamed, told people I would upstream it, and haven't gotten around to doing so.
Seriously, upstreaming first is everyone's responsibility. Even if it is just a code-cleanup patch to remove support for 1990's hardware (CRAY.)

If a fortune 500 company can accept an upto 50% "performance" reduction towards new feature development by upstreaming 1st, then I can too in my free time.
All told, developing a feature this way may take about twice the time and effort it would just to develop it in private, off a stable release, on a vendor branch.
We are making great progress towards upstreaming nx-libs into X.org, largely by unbundling both modified and unmodified dependencies. 
86MB uncompressed -> 32MB uncompressed :)
However, code cleanup that we make to our (inherited) fork of X.org should be done upstream 1st. We have actually increased our delta against upstream by not doing so.

There are numerous other things I have been doing wrong that I learned at Flock. I am pondering far greater changes to my workflow.

SPARROW: You have taken the first step on a path back to righteousness. In light of this ...
EDIT: That wasn't a good link for CRAY. So I just specified "CRAY" in text. 

Friday, August 21, 2015

Binaries are temporary; But the Source *should* be eternal

All men must die.
Nine (rings) for mortal men, doomed to die.
Everyone knows how to make another human, but the secrets to making a P94 plasma rifle are all but lost.
At the workshops related to release engineering at Flock, there was much discussion over "build artifacts." Build artifacts usually means various types of binaries (RPM packages, QCOW images, etc.)

My paradox is this:
  • As an open source developer, I primarily care about the source code. I do not care about the binaries unless a user reports a bug.
  • As a system administrator at work, I primarily care about the binaries. I do not care about the source code unless I run into a bug.
Perhaps even more paradoxical is this:
That last bullet point means "no patching for decades."

And by "system", they usually mean "multiple computers."

Don't believe me? Read that link. It goes on to explain:
Some organisations (with Industrial Control Systems (ICS)we have spoken to about moving off Windows XP because it is no longer supported by Microsoft have admitted they are still running even earlier versions.
Organisations are often unwilling to update any systems, not only for cost reasons, but also because any change requires them to re-certify the whole system to comply with industry regulations.

I shared that article with my friend who is an open source contributor and business owner. He is familiar with customers needing to run unpatched Windows systems for years due to his business. (We agreed that air gapping is the best security approach for ICS.)

At home, I just finished migrating from Ubuntu to the Red Hat family. I migrated for technical reasons. Red Hat is known for selling its certified binaries. Yet Red Hat follows the model "upstream first," I've heard that argument before; it sounded like fluff. But I learned the value of it at Flock.

Here is what I've concluded:
The value of binaries is temporary.  
The value of the upstream source code is eternal.*
Bugs, especially security bugs, should be fixed promptly. And all the "vendor" testing that is done on binaries is invalidated by those updates. And the testing that a customer does on their systems is often invalidated by those updates. So both have to repeat their tests for each update; security related or not.

In my industry, we operate according to the principle "no change is too small to not re-test the entire system." Thus systems are shipped with known bugs, which are condoned by Review Boards, because they cannot repeat all the tests within cost and schedule.

And the value of the certifications of those binaries is also temporary. Even if "updates" are continually re-certified, the criteria for certification change over time. RHEL5 will never be compliant with LSB 5.0. And the binaries for Fedora 24 will never go through the LSB certification process under Red Hat's current business model.

But the source code changes to make RHEL LSB-compliant is upstreamed 1st in Fedora. Fedora 24 (which may or may not be the basis for RHEL8; I can only speculate) will at least be as close as possible to LSB 5.0 compliant. Perhaps it will be LSB 5.0 compliant in a technical sense, but not in a certification ($$$) sense.

Imagine hypothetically that Red Hat, a (mortal) company, were to fail. The community or another company could continue working on Fedora's source code and get it (or a downstream distro) certified.

* But if the source code is encumbered with a horrible CLA; a CLA that prevents others from contributing, then that will never happen. The value of that source code is temporary, just like the value of the "free" binaries.

Humans are born, live, and die. And before they die, they may become "legacy." These are 2 facts that Buddhism emphasizes. But their DNA, and their culture, lives on. And both our DNA and our culture are free to evolve; to adapt to the future. Even after the "build artifact" returns to the earth.

Speaking of which, I need to write another blog post. It will have a title like "All open source projects are mortal, just like open source companies." My blog, just like open source software, is never finished. But I need to release this piece of "content" now.

-Mike

Wednesday, August 19, 2015

Proposed New Branding for Rawhide: Untested

At flock, mattdm, I and others were discussing the need to replace the message about Rawhide that it kills babies, eats kittens, etc.

I would like to suggest a new name for Rawhide, or at least a new message:

Untested



But why is "Untested" a good name?
  1. It is simple and easy to explain to a non-technical person. (manager)
  2. It highlights the work off the Fedora QA team, whose existence most new users are unaware of (until recently.)
  3. Fedora QA is working on automated testing. Once more automated testing is in place, "Untested" can be changed to something like "Minimally Tested" to reflect this work. Yet the "Rawhide" codename can remain.
  4. It can motivate (or trigger discussions on) writing automated tests.
  5. People love codenames. And the "Rawhide" codename can be kept, without the churn of picking a new codename every 6 months.
Examples:
  1. My dad likes technology, but is not a "power user." If I tell him that "version X of software Y is untested", he won't bother to use it until "they've fixed all the bugs."
  2. My Debian friends are always calling Fedora "Red Hat testing" or "Red Hat unstable". This branding makes it easier to say "Fedora releases and their updates are tested, they have an updates-testing repo, and there is an untested version."

Upgrade Complete

<obvious>I haven't blogged in a long time.</obvious>

After attending Flock 2015, I realized that I need to resume doing so.

I have also changed the title of the blog, the Blogger theme, and the URL. (mikedepaulo.blogspot.com → mikedep333.blogspot.com)

Also, I considered using http://blog.x2go.org/ .However, that blog is no longer updated now that Mike Gabriel is primarily focusing on Arctica, and he has his own blog.