Monday, August 28, 2017

Fedora @ FOSSCON 2017 Wrap-Up




FOSSCON is an annual open source conference held in Philadelphia. It also focuses on amateur radio and open education. It drew over 300 attendees this year.

Louis Wust (my friend who is a Fedora user, but not an ambassador) and I attended.

The event went well. Some highlights were:
  • 2 Fedora contributors came to the table.
  • About 8 or so additional people who came to the table currently use Fedora. Another 15 or so have used it in the past.
  • Flatpak support (as built into GNOME Software) was an awesome selling point. You can just download the .flatpakref files from http://flatpak.org/apps.html and GNOME Software will offer to install them, along with screenshots.
  • The fact that Fedora has Flatpak support integrated, even into GNOME Software, was a way of differentiating Fedora from other distros.
  • For server admins, Fedora modularity/Boltron sparked people's interest.
  • Multiple developers were interested in Builder.
  • I brought along my Raspberry Pi and Motorola Lapdock that I am gifting. People were happy to see that such a small computer can run Fedora 26 with MATE and GNOME, even the latter with Wayland support.
  • christel, who is the head of the freenode project, stopped by. She mentioned an event in the UK, and that she would like Fedora to attend. I referred her to FamEMEA and #fedora-ambassadors.
  • The swag was extremely popular, as always.
  • The OLPC XO-1 may be 10 years old, but it still does an excellent job of drawing people to the table.
  • The Ubuntu US PA loco and Arch Linux ARM were there, and were friendly neighbors.
Some downsides though:
  • I tried to show someone DevAssistant. Unfortunately, it looks like it was removed as of Fedora 26.
  • It Motorola Lapdock blocked the view of the Raspberry Pi. Many people thought the Motorola Lapdock was simply a regular laptop.
  • Early on, someone pointed out that I should show off Fedora's amateur radio software. Unfortunately, I wasn't prepared to do this.
  • There were 2 issues with flatpaks. One is that it seemed to cause the live DVD ramdisk to run out of space. The other is that some apps on the website do not have screenshots.

I would like to thank Louis for attending, even though he is not an ambassador. Frequently I would be showing off Fedora to attendees and answering their questions, while Louis would be talking to the Linux users that come to the table and want to talk about their favorite text editor for 20 minutes.

Mike DePaulo (left) and Louis Wust (right)

Front of the Motorola Lapdock + Raspberry Pi
Rear of the Motorola Lapdock + Raspberry Pi

Thursday, May 25, 2017

Having rpmbuild to put its output in the current directory

Mikolaj Izdebski showed me how to do this.

To have rpmbuild put its outputted RPM and/or SRPM in the current directory, add the following lines to your ~/.rpmmacros :
%_topdir %{lua:print(posix.getcwd())}
%_builddir %{_topdir}/builddir
%_rpmdir %{_topdir}
%_sourcedir %{_topdir}
%_specdir %{_topdir}
%_srcrpmdir %{_topdir}
%_buildroot %{_topdir}/root

You can then run a command like `rpmbuild -ba foo.spec`

Thursday, April 13, 2017

Fedora @ Bitcamp 2017 Wrap-Up

Bitcamp is an college hackathon (programming competition) held annually at the University of Maryland. With roughly 1,000 attendees, it is a major one.

Corey Sheldon and I attended it this year as Fedora project ambassadors.



Overall, the event went well. Some highlights were:
  • Numerous people had used Fedora. Some hadn't, but had used CentOS or RHEL.
  • One person came up and said that he had been using Fedora heavily, and would like to contribute to it. We referred him to #fedora-join on FreeNode and to whatcanidoforfedora.org.
  • 2 people came up and wanted to see Wayland. One was particularly delighted to see it on Fedora 25. I showed off the smooth animation in GNOME Shell, and the fact that apps resize perfectly smoothly ("Every frame is perfect.")
  • Ubuntu's recent announcement that they will migrate to GNOME made it easier to sell Fedora Workstation.
  • The OLPC XO-1 drew lots of attention, as always.
  • A user came along who loved Linux Mint. I showed him that Cinnamon is available in Fedora, and he was pleasantly surprised.
  • A user came up and asked about running Fedora under VMware. I was able to tell him that Fedora includes the VMware drivers (and the guest tools.)
We received some interesting questions:
  • 1 user asked if there were any benefits to using Fedora when other are using it (a network effect.) He used the example of iMessage (on iOS) only working properly with other iMessage users. This was a perfect opportunity to explain how open source does things differently. We prefer to implement open protocols, and often multiple protocols, as in the example of Pidgin. And we do not limit apps to running on our Linux distro; we create upstream open source projects that can be packaged for other distros, and often ported to other operating systems.
There were some interesting requests for help with projects:
  • 1 user was trying to setup a web application written in node.js. He was using http-server and Chrome, but Chrome limited the usage of certain features (specifically, accessing the webcam) to https. So I helped him generate  an ssl certificate and have http-server use it.
Some things that did not go well:
  • Starting with Fedora 24, DevAssistant was removed from the workstation DVD. This was a major selling point at hackathons last year, since it makes it easy for hackers to get started on their projects. It was also a clear demonstration of Workstation's emphasis on developers.
  • The live DVD sometimes ran out of ramdisk space as we were installing software.
  • The Wi-Fi became painfully slow once attendees pored in. Fortunately, we got a switch later on.
  • We ran out of pens and the stickers that say "fedora."
Since this was a college hackathon, I would like to end with a quote from a computer science professor:
I wish students would stay up for 36 hours working on my programming assignments.

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

Friday, September 4, 2015

This neat trick lets you win more LoL matches

TARGET AUDIENCES: LoL Players, MMO/MOBA players, and my family & friends

Wow.

I have recently changed my approach to games/work/open-source. Including playing fewer video games.

OK, that wasn't a neat trick. (See: clickbait, and some parodies of it.) It was a hard 14-year lesson.

But I decided to play just 1 match of League of Legends (5v5 ARAM mode as the randomly-chosen character Zyra) last night. On my secondary desktop.

The entire match, I was distracted by work, open source ideas (Bureaucrax IMS on JBOSS BPM), and potential convos/presentations. Yet I did amazing!

KDA: 19/9/39
Massive Damage!

Here's what I did differently:
(In terms of generic MMO game jargon. To those who think this is all Greek, bear with me, or skip this 1st list.)
  • As I walked backwards for health, I watched the team fight/skirmish rather than my character. 
    • I focused on my surroundings rather than on a progress bar.
  • I'd cast my very powerful "ultimate spell", which has an instantaneous cast time, but has a long delay. During the delay, I did not focus on watching it so that I could ascertain whether it would succeed or not., Instead, I focused on re-positioning my character. After the delay, I observed whether it had any effect.
    • Think "fire and forget"
    • That video describes it as a "short delay". But it normally seems like an eternity! It is long enough for you to get ambushed if you do not reposition properly (which is likely because you have to get close to the enemies to cast it.)
  • I played against a character with an extremely tricky stealth move (Wukong), and the player was very good at faking it! He faked it part of the time, but not always. Yet I quickly recognized some of his patterns, and cast my basic spells in anticipation of what he was likely doing, rather focusing on saving my own hide..
    • I normally HATE playing against Wukong!
    • It was super-effective.
    • LoL Players: Remember that Zyra has AoE rooting & damage. So whether WuKong started faking 1 second ago or is still faking, he is likely without the radius/fat-line of your spells when they land.
  • I was not afraid to use my gap-closer (snowball) to maximize the effect of my ultimate spell. I instantly recognized each opportunity to do so, and acted on it.
    • Zyra's ultimate is extremely powerful, but you need to be close enough when you cast it. And the timing on when to affect the team fight with it  (hard CC + damage) is critical.
  • When we seemed to be deadlocked, I viewed the scoreboard and determined that Lux was the biggest threat. After about a minute of skirmishing, our Thresh hooked (pulled + CC'd) her successfully. I took advantage of the opportunity to kill Lux with the rest of my team. 
    • Lux had the highest KDA on enemy team, and Lux's frequently are the biggest threat.
  • Earlier, our team was flaming Thresh for failing to land hooks. So after that successful hook and subsequent killt, I said something like "gj thresh" and then "Lux had the highest KDA." He replied to the 1st message like "you too."
    • The team chat was more positive the rest of the match.
Also, in general:
  • I was more willing to take risks. These risks didn't always pay off, but they generally did.
    • To determine how much risk there was to a move, I relied on my previous knowledge and my sense of timing. 
    • What do I mean by "sense of timing"? It is very important in LoL. For example, the timing in terms of how long until enemies arrive back on the front-lines after dying and respawning. (The time increases throughout the game, and you have to factor in when each enemy player died.) Similarly how long until spells (powerful/flexible abilities) can be used by the enemies again.
    • Generic MMO Jargon: For example, I gap-closed and cast my basic spell combo on enemy players when they were presumably retreating through the bush (invisibly) after they blew their combo (visibly.) (I can do this because my gap-closer (snowball) also makes them visible.) There was a risk that I would not see all the other enemies when I gap-closed, or that they would arrive in time to help the retreating player, but eyeballed that risk by being observant enough.
  • I noticed opportunities for myself, or mistakes that the enemy players were making. And then I would capitalize on them within a split second.
    • Yet prior to that split-second, I was distracted!
    • Generic MMO Jargon: For example, I noticed when enemies blew all their spells and were on cooldown, and were probably escaping through the bush (where they can hide). Then I would gap-close with snowball (which also makes enemies visible) and cast my combo of basic spells.
  • I focused on surprising the enemy team, and was generally successful. 
    • It is easier to surprise enemies when they're distracted by your teammates. (Obviously)
  • I focused more on the positioning / actions of enemy players than my own positioning and resources (health and mana) throughout the match.
  • I focused on where enemy players (especially a lone Lux) were moving towards, and were likely to change their movement towards, rather than focusing on my position & their position over the next 0.5 seconds.
    • I remember when I first started driving. I learned to focus on the road far ahead of me, rather than the road right in front of me, in order to successfully drive down the center of the road.
  • I did not focus on what other players were presumably thinking of my playstyle, or whether any of them thought I was contributing successfully.
And perhaps best of all:

  • I noticed these changes in my playstyle after I subconsciously made them!

In League of Legends, I feel like The Goddamn Batman, but with s/death/failure/ :



Or perhaps I have Jedi Reflexes.

Of course I don't! Jedi Reflexes aren't real. But Batman is! (See below.)

Yes, the LoL servers were moved closer to my apartment (as well as the political/economic capital of the world.) Thus my ping dropped to 38ms. I noticed this early game after I flashed out of danger at exactly the right time. Yet I think I was more calculated/observant (paying attention to my enemies rather than my own health bar) when I made that decision.

And there were probably a few more changes I could list.

And yes, this post is specifically addressed to one of my friends.
(He screams in anger while playing LoL, and convinces himself that matches are lost, despite still winning afterwards about 1/6 of the time.)

It is also addressed to another friend. He doesn't play LoL. But he taught me that Batman has no super-powers; only super-wealth.

Batman also went on a "retreat" in the Himalayas, just as I went to Flock. It was even more awesome than my senior-year high school retreat!

And WE SUCCESSFULLY WON that match.

Even though 1 match isn't statistically significant, it was sufficient for me personally. Because I reflected on it.

And like usual, I still repeatedly forgot to activate my expensive item for 2.5 seconds of invulnerability when the enemy kitty jumped on me. I guess I'm not a Jedi, or Batman, yet.

And to my family members who often told me that I learned nothing by playing games:
Nah Nah Nah Nah Nah Nah
-Mike

Saturday, August 29, 2015

Why I wrote my last blog post

A lot of people have been asking why I wrote my last blog post, or have been blogging in general.

Here's why:

  1. I failed to adopt the pomodoro method about 2 years ago. If I blog about it, and highlight the important details, I feel like I am more likely to stick with it.
    1. Consider the analogy of learning to program by typing out the code vs merely copying & pasting the code. If you type out the code, you learn it significantly better.
    2. Consider the analogy of learning how to derive an equation vs merely knowing the equation. If you understand the theory behind something, you understand it better, and you value it more highly.
  2. My family has told me that I should use a diary over the years. I've only used it occasionally. I am essentially using a private diary again, but some lessons I feel like I should share with others.
  3. My family has tried to persuade me repeatedly over the years that playing video games is a waste of time. Although they are indeed a less productive use of my time than contributing to open source projects, they are extremely good ways of teaching people lessons about life.
    1. Just as Star Trek is a "morality play set in the future", video games are often great ways of teaching people lessons too.
    2. To a degree, it wasn't that I was playing video games that was a waste of time. It was that I was playing the wrong video games. I played "Prince of Persia: The Sands of Time" in 2003-2004, and that game was all about rewinding time. But I recently played Assassin's Creed III. And the lesson from AC3 is that the past is read-only, the present is read-write, and you have to learn from the past to save the present/future.
  4. I feel like my family/friends (fraternity brothers) will be very happy for me when they read my blog. Some fraternity brothers already have, and they have given me great feedback (although not in the form of comments on my blog.)
  5. Yes, I do feel like I have lessons to share with open-source projects. But I have now learned that I need to persuade them with code rather than with words.
  6. As Scott Adams (Dilibert author) wrote for his "Robots Reads News" comic strip:
Developing it is a system :-) I’m learning as I go.
-Mike

Update 2015-08-30: Added #6 (Robot Reads News) with quote