Archive for the ‘Fedora’ Category

FUDCon Toronto

Saturday, December 12th, 2009

So FUDCon is over this year and it was great. Finally getting to meet people and discuss the workings of some of the projects Fedora is involved with. Rob Escriva and I left Thursday morning after breakfast and got into Toronto a little before 4pm.

The first night we met up with Steven Parrish and Rex Dieter for some dinner at an Irish pub near the hotel. We heard that there was live music there and indeed there was. Very loud and right next to our table. By the time we had eaten and returned to the hotel, lots of people were gathered in the lobby and were discussing various things. Rex and I talked with David Malcolm about what was happening with Python 3 in Fedora 13 and how it would affect the KDE side of things (more on that below). Seth Vidal also joined up and the topic moved between bdb and sqlite and how it affects rpm and yum, patches to python and rpm itself and other tangents that were all too easy to get off on.

After getting to sleep around 2am or so, we woke up for breakfast to get to the college at 9:30. The bus ride cost was a little crazy ($3.50 for one ride) but there were few viable alternatives. We all gathered in the room deemed to be Room 1 to discuss how things worked at FUDCon with the bar camp style of scheduling. Lots of people lined up to pitch talks for the day including Rob to pitch CHASM (something else which will be explained in more detail below). Everyone then lined up outside in the hall where the pitched topics were taped to the windows to mark which talks were the most interesting to people. CHASM got 22 and we got paired with Matt Domsch’s talk about Mirror Manager.

The first talk that I attended was Steven Parrish’s talk on reporting bugs effectively. I was the one who asked if anyone was logging the talk and in the process volunteered myself for it. The hardest part about logging was keeping up with the slides and the talk and typing things into the IRC channel fast enough but I got better throughout the day and it got a lot smoother. The logging of the talks in IRC and using zodbot to throw the results onto the wiki is a great way to help those who are not able to attend FUDCon to be able to participate as well. The talk itself was great. Even though I get CC’d on lots of bugs due to being a co-maintainer of the entire KDE stack and having to request logs and such for different things. Lunch was next and Rob and I talked with Adam Williamson about netbooks, computer specs and whatnot over the provided meals.

The next session was on MirrorManager and CHASM (a project Rob and I have been working on). Matt Domsch discussed what MirrorManager is and what it offers for Fedora. I never knew that it picked mirrors for me. Goodbye fastest-mirror plugin hackery (manually remove the results for any mirrors I don’t want). After that, Rob and I (well, mostly Rob) presented on CHASM, the Cryptographic-Hash-Algorithm-Secured Mirroring solution. It aims to ease mirroring large collections of software that change over time (such as distributions’ repositories). It was well received and we got good feedback from Seth Vidal and Matt. Some ideas that we had about what actually goes on with the mirroring of Fedora and what CHASM needs to do were updated and we have rethought some of the assumptions we had before FUDCon.

After that, I attended the GDB talk and learned how to make pretty-printers to get usable output when displaying values of the running program. There were also tips on debugging threaded applications that I wasn’t aware of before and should help with debugging some KDE applications that make use of threading.

The most interesting talk (other than CHASM) that I attended was Jesse Keating’s talk on how Fedora will be ditching dist-cvs for git. I am very excited about some of the ideas that were being discussed such as the automatic patch management (just some macros in the actual spec file), exploding source tarballs into a git repository to create patches with git format-patch, actual tools rather than hackish make targets, and actual support for branching (I’m looking at it being able to do snapshots of upstream outside of rawhide so that if things go really awry with release times, an epoch isn’t needed to fix things up when rawhide gets branched for a new release). Between this and KDE’s conversion to git, there should be plenty of documentation on how to convert repositories of huge scale and hackery over to git.

The last presentation I attended was on trademarks and how they affect Fedora. It was a great discussion between how lawyers see trademarks, how hackers see trademarks, and what needs to be done to make things clear on both sides of the discussion. After learning about the basics of the legal web of things that affect Free Software in general (copyrights, trademarks, patents, etc.) in the Open Source Software Practices class here, getting some input on how lawyers look at things was a great insight.

After the BarCamp was over (great format by the way), everyone headed back to the hotel to drop off laptops and such before heading over to Dave & Busters for FUDPub where I talked with Ian Weller, J5, Brennan, David Malcolm, Luke Macken, and others (many of whose names escape me) about various things related to Fedora, Python, and other technical topics. Towards the end, J5, Brennan, and I went to the game room to roam around and see what was going on (I watched since I prefer watching games than playing them). We ran into Spot, Jesse Keating, and others as well. Spot had a bunch of tickets and everyone donated what they had which, with a total of 670 or so tickets, got Spot a set of poker chips.

After FUDPub, I headed to the hackroom on the third floor and was told by Seth Vidal that if Rob and I can’t sell CHASM to John Hawley, the system administrator of kernel.org, we need to rethink everything. After hanging around and listening to some of the discussion, I headed to bed so that I could get up in the morning for the hackfests the next day. Rob says he lost the pool game, but I sunk the 8 ball in the wrong pocket, so to be pedantic, he won ;) .

The next morning, after waking up, eating breakfast, and talking with…well I can’t remember exactly who I talked to, so many people. I’m sure it was interesting and productive :) . After that and the bus ride to the university, various pitches for things to work on throughout the day were done. I pitched the CHASM hackfest and invited anyone who would like to do GPG keysigning to somewhere in the room that was labeled as ‘E’ on the board. At the hackfest, I talked with David Malcolm about the Python3 happenings and how it affects the KDE side of things. He discussed what needs to be done to spec files to get them ready for the Python3 fun that Fedora 13 will sport. Adding PyQt4 and sip to the list of packages that need attention for the large majority of packages in KDE land to be ready for it. We went through the sip spec file and did preliminary work to get sip working with python3. Other than some of the black magic that it does, it went well and python3 on the KDE side of things should be done once sip, PyQt4, and the ever inimitable kdebindings support python3 parallel installation (other than the normal work of splitting the users and dependencies of these packages). John Hawley then showed up and Rob and I discussed what CHASM was, what kernel.org does, what it would need from CHASM to consider it, and other related things. He liked it, so it means that CHASM is on the right track.

Later, after some pizza got ordered, I hunted down Máirín Duffy to discuss a logo for CHASM. I had an idea in my head of what it would look like, but Mo was able to improve upon it and is capable of bringing it to fruition unlike myself. We also talked about some of the things about RPI since she is an alumni.

Towards the end of the night, a bunch of us gathered in room ‘A’ to work on different things. I didn’t get much work done there other than some fiddling with xmonad (rather than ratpoison) on the netbook. Haskell is very interesting and monads make my head hurt. Towards dinner time, those that were still at the university headed over to a mall to get some food to eat. I talked with one of the XFCE maintainers (sorry, can’t remember your name) about what CHASM was, differences between GNOME, KDE, and XFCE and the different use cases they fill.

After dinner, things such as “It’s a trap”, nethack, and “The Website is Down” were displayed on the projector. Not much work was done on my part after dinner, but it was fun in any case.

That night I went to the hackroom again and talked with Adam Williamson some more, debugged an issue where some kernel upgrade botched up the initrd creation for the new kernel making it fail to boot with Dennis Gilmore and John Hawley, and more.

The next day at the hackfest, Rex, Jaroslav, Steven, and I discussed KDE related things from what needs to happen with kpackagekit, the Network Manager frontend, updates, and other details. Rob and I did some documentation for CHASM, thought up of being aware of preferred files due to cache status for CHASM, and overall was a more productive day. Rob and I talked with Mo about coming to RPI to talk about the Fedora Project when Red Hat visits for the career fair in the spring.

Upon returning to the hackroom, we attempted to debug the network and determined that it was most likely due to the gateway overheating and shutting itself off once it hit its limit. Stephen Smoogen, David Malcolm, Spot, Mel Chua, and I went to play some Dungeons & Dragons. I first played this past summer, it was the first time Mel was playing, and the others have played much more. We got to the first fight, beat the tentacled arm thing and then called it a night.

The next morning was the last morning of FUDCon. The FUDBus left around 9:30, and Rob and I headed out around 10:15. We caught up with the FUDBus on 90 on the way back, but made a stop to stretch and lost it. I would like to thank Red Hat for my funding to go, Chis Tyler for getting the space at Seneca, Mel Chua, Paul Frields, and all the others who made this FUDCon possible. I’m looking forward to seeing everyone at the next one I can attend.

KDE packages for Fedora

Sunday, September 27th, 2009

Recently, I compiled a list of apps from kde-apps.org that I thought would be useful in Fedora. In addition, I recently edited the wiki to move the table of requested packages to a page of its own. Ryan Rix is now taking that list and putting it into that table. If anyone sees any applications there that they would like, please add your name to the table and keep it up to date. If you need any help with a package or would like to know how to get started with packaging for Fedora, feel free to join #fedora-kde on irc.freenode.net (webchat link is here).

I’m not sure how long the table will take to propogate and I am only up to page 60 or so of the things on the kde-apps website, so keep an eye out for any applications or libraries you use or would like to maintain.

Wiki and packaging

Thursday, July 30th, 2009

I did some more packaging work this week. Serna is a mess for a spec file right now and its dependencies aren’t looking all that much better. I’ve reviewed Mailody, Plastik colorscheme, and KMess in Fedora. The daisy plasmoid is under review now as well. Kobby has been pushed to the repositories too.

I also did some wiki work for the KDE SIG. Seeing as my motivation for coding is still low, I figured I’d do some more mundane stuff to help. I’ll get around to cleaning up the other pages in the coming week.

Luckily (and unluckily), the laptop started having performance issues and VNC was utterly unbearable, so now I’m on the desktop where I did all of the work anyways (plus being able to type ‘<’ again is nice), so now there’s one less layer between working and what I’m seeing (keyboard shortcuts are eaten locally if possible before VNC gets them, so the mouse was being used more…which is not really my thing). Now I’m using synergy between the two and it works well, though I’m finding that it’s hard to use both. About the most I can do is fire off a mock or rpmbuild on the laptop and then get back to IRC or whatever.

Packaging work

Sunday, July 26th, 2009

So I’ve started work on packaging some new applications for Fedora. Today I took a look at a new application I found in the search for a decent DocBook editor. I found Serna by Syntext. It’s a Qt4-based application that was released under the GPLv3 earlier this month. The build system is a little lacking (uses tmake and expects that its build system builds and installs the dependencies from Python to Qt) which makes packaging a pain. In the mean time, I’ll work on the dependencies which are not in Fedora yet which includes tmake, a Qt tool, and a Java XML…thing. I have off tomorrow, so I should get at least some work done on the Qt tool and maybe some headway on tmake.

The company seems to be working to get out of the binds of being proprietary. Supporting system copies of dependencies is apparently one of the top priorities, but changing from “python is here” to “run python” isn’t all that easy (there’s $(THIRD_DIR) all over the place in the .t files and the patch would be…monstrous). The mailing list does not have an nntp access point (such as GMane) and I was unable to find any public archives, but that should come in time I imagine. I’ve joined the ML for developers in the meantime to try and help with the system dependency stuff.

I also put Bilbo Blogger (which I am using to write this post) up for review today (I’ll swap reviews). The post previewer is great as well as the support for editing older posts and their details.

Kobby packaged

Saturday, June 20th, 2009

I got Kobby packaged tonight. There are a few things to clean up yet, but they’re minor. I should have it up for review on Sunday as I’m away tomorrow. Now just to sleep fast so that I’m not tired tomorrow.

Miscellany

Saturday, June 20th, 2009

Well, I’ve been fairly active on identi.ca, getting the hang of it. I don’t like to just throw tags onto the message, so getting them to fit in is a fun little exercise.

I also started to learn the Colemak keyboard layout. It’s proving to be interesting and I like it better since the home row is more useful than QWERTY’s.

I’ve started to package Kobby for Fedora. Should be up for review by the end of the weekend (with dependencies libinfinity and libqinfinity). I’ll have it in my personal repo until Fedora proper has it.

Much-needed update

Wednesday, May 27th, 2009

Okay, so I lost the old post half-way through the second paragraph, let’s see how much I can remember.

It’s been over a month since I’ve paid attention to this nook of the Internet. Another year of school ended, got my wisdom teeth removed, gotten into playing some Dungeons & Dragons, hacked a bit on Sigen, building KDE 4.3 beta 1, finally getting VNC working, and some other miscellaneous stuff.

I was able to replace 10,000 lines of code with about 1,500 lines in the tree widget in Sigmodr. It now no longer needs right clicking to add and delete items in a game. It has lost drag’n'drop and copy/paste support for now, but the maintainability of the new code is well worth the loss.

The map editor has had a few bugs squashed as well, though I may have to switch over to a new way of doing it since there’s a test case I hadn’t thought of that the current algorithm is choking on. To visualize the case, imagine a π and then placing that on a platform. There is now an outline and an internal area. The current algorithm screws up the internal outline since it doesn’t know that the other leg (on the same polygon) is the target; it only looks at the other polygon for a target point. So it’s broken and fixing it would take a lot of time. I’ve been trying to think of a data structure scheme which will nicely accomodate the vector idea I was tossing around even while making the current algorithm. A map would work, but I don’t want to have to fiddle with pairs and whatnot.

I’ve also built KDE 4.3 beta 1 for Fedora 11 (i586 and x86_64). I don’t know when they’ll hit the kde-unstable repo at kde-redhat. I have a list of bugs to submit, which I’ll work on submitting in the next few days.

The Kopete runner I was working on is still at the same position it was before, but after talking with Matt Rogers, it looks as though Kopete’s DBus interface needs to be fixed up and redone for it to work. This means that it will have to wait until KDE 4.4 and I’ll be learning myself some DBus goodness. It doesn’t look all that bad.

I would also like to announce that I have my server up with a public address now.It has HTTP and git services. The important URLs are:

Most of the git repos are there to keep old code in VCS if I ever hack on them again. The older stuff is scary, not really for the faint-at-heart.

Awesome t-shirt

Thursday, April 30th, 2009

In other, more Fedora-related news, I have this sudden urge for a blue t-shirt.

Hello World

Monday, March 2nd, 2009

Well, my first blog post. I need a place where I could post updates to my projects and other things I’m working on. I’ll get it onto the Planet sites tomorrow (as in after I wake up), but I figure I’d get it setup first then get it out there. I had originally planned on writing up my own, but with time being in short supply these days and WordPress seems to do most of what I want anyways, so I’ll just use it while I have nothing else. I guess I should introduce myself here too.

One of my hats I wear is that of a programmer. Currently, I am a sophomore at RPI studying Computer Science, but that’s more of a side job at this point with Sigen. Before that, a little history. I first got introduced to programming on an old VTech laptop (which I can’t find pictures of online, too much plastic toy crap) with a BASIC interpreter (the kind with line numbers) and a 24×8 character screen (or something, I’ll look at it over spring break) in elementary school. I was also using Apple ][ machines at school. In intermediate school, I only remember having some old DOS machine with Lotus and probably WordPerfect on it.

In seventh and eighth grade I had a TI-83+ SE calculator where started messing around with TI-BASIC. Eventually, I made a program that would do all sorts of math for people called MathStuf (where my handle comes from). It did polynomial math, got all n of the nth roots of numbers, did partial fraction decomposition and all sorts of other things that I don’t remember (the menus used a masochistic abbreviation scheme to cut down on size). I think the only other thing I released at the time was a Boggle generator with a timer on it.

In high school I got a TI-89 Titanium and started coding in its (better) flavor of TI-BASIC. I ported MathStuf over, started some other projects of similar nature for other subjects (such as chemistry and physics), which never got too far. I later started using C for it using the TIGCC toolchain to code up some simple games. I got some games made, including a tunnel game (Cobra Command), Towers of Hanoi, Matches (with perfect “AI”), FreeCell, an RPN calculator (not uploaded anywhere), and a Shakespearean insult generator. I also worked on some other projects which aren’t exactly close to completion such as a Sudoku solver (with 3D), a mastermind clone (planned an AI for it, never got around to coding it), connect 4, solitaire, and clones of the Easy Money and Blokus board games. I still have the code for these laying around in git repos (one commit each–initial import–for most). The 68k calculator platform is also where the Sigma Game Engine has its roots, but more on that later.

I also had a (slightly) themable website coded up in PHP with project management for these and other planned games (most of which never even got started). It had rudimentary hooks into the phpBB forum I had setup, a news feature, as well as some other things that I learned from (such as PHP being an ugly language). I played around with Python for some tools, C for boggle and anagram solvers, and probably other stuff I’ve forgotten since then. Since then, I’ve been dabbling all over the place, but mostly I concentrated on what is today Sigen.

I have taken the standard CS courses and I’ve had my likes and dislikes. Data Structures and Algorithms was useful, but not as much as Computer Algorithms has been already. Being a teaching assistant for CS2 has brought me back to realize all the mistakes I made (and still do) as a new programmer. Computer Organization formally introduced me to assembly (x86) rather than just the in-passing custom 68k and z80 assembly I had seen in those times. Models of Computation was…not the most fun, but I did learn lots about the xy package for LaTeX in it (I now wish I had known about PGF and TikZ). I had fun (if frustrating) times learning new languages (Prolog for a parser and solver and Scheme) in Programming Languages assignments. Parallel Programming and Intro to Artificial Intelligence have yet to really get off the ground I think, but I’ve been using Falcon to do AI assignments and having fun there. MPI is another beast that, although not the nicest, is what we have for what it does (to my knowledge). Anyways, back to Sigen.

I had enjoyed the Pokémon games for the Game Boy a lot. I loved adventuring, making teams, and battling with my friends. When I endeavored to create a clone for it on the 68k calculators using TIGCC, it started out as a simple project just to clone it. However, I made tools to help me edit the data so that it would be easier than keying in tile indexes for maps and other stuff. The tool was called PokéModr and it was decent. Crude, but it got the job done. It had a grayscale sprite and tile editor and a map editor for them. I also got some work done on a dialog engine to do simple scripting to control the events that happened during the course of the game, as well as a demo for the PokéDex and the map engine doing its work.

At some point, I started extending the editor to handle arbitrary values and extending it to support the values introduced in the second generation of the games. This continued to allow the engine to do animated intro screens, and other things all controlled by #define statements in a header for the engine. And with PokéModr, people could create their own versions of the games. However, it was not to be true since the editor hit the 64kB limit of the calculators eventually (and the engine by that point, being only the intro screen, a PokéDex, map engine, dialog parser, and a few other chunks of code already a third of the way to that limit), it was not to be on that platform. Someday I may go back and finish up the clone, but it won’t be extensible.

After hitting that limit, I started moving the project to the PC. I started with the editor this time so that the engine could be built on top of the data that the editor modified. I used wxPython with XRCed to create the UI and handle editing. As it grew, it became unmaintainable because (being a naïve programmer), I had only used one file for everything (with the xrc file, 2). Yes, a 7000 line Python file. It worked, but I couldn’t keep going on with it. I then moved to C++ and started using separate files for each class (header and source file for each, I had learned that much). I also started with the data classes first. It started out a little narrow, using hard-coded enumerations for what each event could do, but I eventually broke free of that by using Kross to allow for (nearly) everything to be scripted in any language that it supports.

In getting from there to where it is today, I created an INI class, a rudimentary XML class, custom string classes, using return values and exceptions for failure notification, and all sorts of other things to get the job done instead of using libraries. I don’t have NIH syndrome so much anymore, but it was definitely a good experience to wrote code to do such things. It’s all in the git history now (started as subversion hosted on SourceForge when I moved to C++), so you can go and see the nastiness if you want.

Today, it is split up into libraries so that other apps and tools may easily extend the engine and its tools in the future. Today I tagged version 0.1.0 since the editor (Sigmodr) is in a mostly-usable state for once with its main parts (the editor widgets and the tree to represent each Sigmod) have been ripped out and put into their own libraries so that other editors, if they come along, may use them as well. Work needs to be done on documentation, but it is enough to be considered a “beta” release I think. I haven’t said nearly as much as I can about the project, but it’s already really long, so I’ll hold that off for another time.

Other than that, I write little things using whatever language I feel like writing it in, package software for Fedora, and write patches for software I use and fix.

I guess I’ll also share a little history of the operating systems I’ve used. The first computer I can remember having ran some version of DOS that I don’t remember that well. In 2000, my family got a Compaq with a 667MHz Celeron with 64MB of RAM and Windows 98 SE. The only programing I was doing at this time was on the calculators, so I only used the TIGCC editor. In late 2005, I ordered parts from NewEgg and built a machine. It has an AMD Athlon64 3800+ (dual core) with a gig of RAM and an nVidia 6800 GT Ultra video card. PokéModr compilation times went from a minute to a few seconds which I was thrilled about. I first installed XP on it, but later I installed (a mostly unused) Fedora Core 5. I went back and forth between XP and FC5, probably spending more time in XP before it decided to ignore every ethernet port on the machine and I started using Fedora Core 6. I haven’t been back for any real length of time and I usually move to the next version around the release of the next version of Fedora, but usually a week or two before. The old Compaq is today running an extremely stripped down Fedora 10 and serving up some files over FTP, acting as a temporary yum repository for packaging when needed, and hosting git repositories with gitosis. My laptop (T61 Intel Core 2 Duo 2.2?GHz with 2GB RAM and an nVidia NVS 140 Quattro card) is now running Windows 7 build 7000 and Rawhide now that I have a new desktop that I also ordered off of NewEgg (Intel Core 2 Duo 3.0GHz with 4GB RAM and an Intel GMA X4500HD chipset). It runs Fedora 10.

I also enjoy reading. I haven’t had the time lately, but I may take a break from Sigen for a bit to let more ideas settle before trying to code much more. I enjoy science fiction, dystopic stories, philosophy of science, niche psychological stuff, as well as some other stuff. I recently read Ray Bradbury’s Something Wicked This Way Comes that I had started in high school for a class but never got around to finishing. I’m most of the way through Carl Sagan’s Broca’s Brain and I think I’ll start Aldous Huxley’s Island after I finish that.

Well, that turned out a lot longer than I had expected, but I supposed it’s not worth it to delete it all at this point. Hopefully I’ll be able to post here to get my thoughts put down somewhere instead of being lost to wherever they may go after I forget them.

The answers to the standard questions:
Distro: Fedora
Desktop: KDE 4
Languages: C++/Qt4, Falcon
Editor: Kate, vim
VCS: git
Shell: zsh