New Project: Gitosis Web
(by PeEll)2010.02.21Gitosis is a git repository management tool. It has features that make multi-repository, multi-user environments much simpler. The way you access the configuration is through git. You make configuration changes in your working copy, and then push them to the repo. These changes are then processed by git hooks to create/manage the repositories and keys.
One of the downsides of gitosis is that all administrators have equal permissions to add/remove keys, and there is no mechanism for users to manage their own keys. In response to this I have begun building Gitosis Web, a PHP frontend to gitosis that adds some extra capabilities and ease of use.
Many people are comfortable with Gitosis, and that's great. This tool doesn't replace Gitosis or say there are any issues with Gitosis, but simply that some workflows could benefit from an additional frontend.
Check out Gitosis Web on github
Gitosis Web Readme
Gitosis Web
Gitosis Web is designed to is designed to be a layer on top of gitosis. Leveraging PHP and extra properties stored in the gitosis configuration to allow and administrator to control the entire file, and to allow individual users to manage their keys.
Install Instructions
To install, you will need working installations of git, gitosis, php, and mysql. This system has been tested under linux, but might work on windows too (Assuming you have git in your PATH). Once you have this, make sure your apache user (probably www-data) has a checked out copy of gitosis-admin, and that it has a key setup with the gitosis server you want to administrate. You should add a "name = x" row for your adiministrator to the [gitosis] section, and an "x = pass" section to specify the cleartext password.
Once you have it setup, you load the web interface, specify the path of the gitosis-admin working copy, and provide a username and password. From there you can make changes to the gitosis configuration, or add keys to already specified users. Each user should get a group looking like [group user-stephen].
Future Plans
At some point in the future, I hope to add the ability to manage users without tweaking the gitosis.conf file, or allow users to manage their own keys. Allowing project owners might be a cool idea, but might make the interface too complex.
comments | permalink
AutoPano Pro and Giga Font Problems
(by PeEll)2010.02.06I recently installed copies of AutoPano Pro and AutoPano Giga, which are some great panorama stitching programs that I would highly recommend, as they work on Linux, Mac, and Windows. After installing these programs, there was a horrible font problem that made all of the text in the application illegible.
The solution I believe was to install qt4-config, run qtconfig, change the font size up to 9, and then back down to the default of 8. When you launch the program again, all of the fonts and text should be fixed and legible. Have fun using this awesome program!
comments | permalink
Upcoming talk on Linux Browsers
(by PeEll)2010.02.05In March I'm going to be giving a talk on Browsers in Linux, with a lot of specific examples and demos from Ubuntu. Hopefully this talk will cover some of the basic things for beginners who need to know things like "What are the options", and "how to install new browsers in ubuntu", as well as advanced options detailing some of the more unique and advanced features of the available browsers, as well how to get started with development for browsers.
This talk will be at the Penguins Unbound Linux users group in Falcon Heights, Minnesota on the last Saturday of the month. I will post additional details and documents closer tot he date.
comments | permalink
General Improvements to mortalpowers.com
(by PeEll)2010.01.23This week has been an interesting one in regard to the codebase of mortalpowers.com. I have increasingly become interested in the site as a way of helping others with issues, with finding new and interesting information, and exposing my ideas and projects to the world. As a part of this I have increasingly been working on the design, function, and SEO of this site. There have been several components overhauled in an attempt to make things easier to use, and to allow them to be more easily indexable by search engines.
Page titles and Page Descriptions
Using the Google Webmaster tools, I have systematically been following all reports of duplicate page titles and duplicate page descriptions. I started with Page Titles, ensuring that each of the article and content pages included a title related to the article. I also went through some of the more generic navigation pages and added a title that would indicate where the user is. In theory this will not only help SEO, but also make the site easier to navigate and understand for users, especially those with different accessibility needs. Originally going through page titles, I though that perhaps the page descriptions were unimportant, but recently I finished the page titles and began writing content for the descriptions, as I realized these are used by search engines to sometimes show a summary of the page, when specific page content didn't match the user's search.
One of the difficulties I have run into with page descriptions is that I'm not sure what tense/person to write these in. I have tried to keep all of the page descriptions simple and declarative, and I'm sure there is a standard out there I'm supposed to follow, but that will have to come another day.
Page URLs
I had a lot of legacy URLs, for example the imaging system were all under the name "posse", which was the name of the group I originally had photos of. I have been refactoring and redesigning the site so that all of the urls make sense. This means that "posse" is now "photography", which definitely more accurately describes what that section of the site does. Another area I have improved is with the article system. It appears that a few characters have slipped in over the past year that weren't removed from the URL string version of the article, meaning that things like single quotes were included, when they have the potential to mess up spyders or browsers that don't process them well.
404 Errors
The final piece I have been working on is to add a few 404 errors to pages where the user is searching or browsing. The best example of this is the new tagging system. Before with the tagging system, if you entered a tag that didn't yet exist in the site, you would receive a blank page that didn't tell you anything about what happened. This type of user interface leaves the user wondering "what happened? Did I do something wrong?". In response to this, if you try to view a tag that doesn't exist yet, you will get a 404 error, as well as a friendly error message explaining what happened.
comments | permalink
HexSLayer Launch!
(by PeEll)2010.01.09The game I have been working on for a few months has now been packaged and lauched in its first incarnation! The instructions for download, files, etc, are all located on it's new site at hexslayer.com.
New Website
I decided to launch the game at its own URL, as a lot of the things that I put onto mortalpowers.com wouldn't relate to people interested in the game. I have developed my own blog software in the past, and used Wordpress and other options, and read a lot about some of the newer options. For this project, I decided to use Drupal, as my research has revealed it to be an extremely powerful (and albeit complex) system. I'm trying to stick with only the core modules, and major modules for the system (xmlsitemap, images, uploads) for maintainability purposes. If I adopt some unknown module it will be harder to stay up to date with security/other patches, and I might risk losing those modules if/when I upgrade to Drupal 7.
So far, drupal has been a very interesting and decent piece of software. For the type of CMS I was looking for, it is meeting all of my needs. My goal was to be able to create pages, posts, comments, and upload files and images, and to have a decent looking theme. Feel free to take a look at the HexSLayer site and let me know if I have met these goals.
The site is also on Github. One of my goals is to continue doing things in as open a manner as possible so that if someone else wants to contribute back to me, or learn from what I have done, they can.
Debian Packages
I have spent most of the evening re-learning Debian packaging (I use Ubuntu), and figuring out how to include the packaging component with the normal source code in a way that won't make it more difficult to compile/package for other environments. The solution I found was to create a packaging folder with scripts to generate packages/distributions for each of the platforms/environments I support. This seems to be working well, but I only have the Debian .deb file so far. The package includes nice features like menu and .desktop entries, which makes the game easier to launch and remember, rather than having a raw folder of .pyc files somewhere in your home directory.
comments | permalink
New Feature: Latest Commits
(by PeEll)2009.12.22You may notice a new feature to the right side of the home page. This feature, called "Latest commits" intends to share some of the development projects I'm working on, but haven't had a chance to do a writeup on.
The bulk of the work for this feature was done for me in the form of an RSS feed provided by Github. I have been exploring Github for about a month now, as well as experimenting with Git in general as my preferred version control system. In the past I used CVS and SVN, but so far I have been extremely pleased with the quality, speed, and ease-of-use of Git, as well as Github.
What you are seeing now
There are two main projects I'm working on at Github actively. The first is a hex-based game called HexSLayer, written in python. It is a small strategy/puzzle game with a naive AI, and some decently interesting gameplay. Currently it is playable, but the AI isn't very smart, and there is no way to add other human players locally or over the network, hopefully these features will come with time.
The second project you can currently find active commits for is called Youtube-HTML5-Chrome, among other names. The idea of this project is to provide a Google Chrome extension that swaps out the flash videos on youtube for a native HTML5 <video> element, which is faster, more reliable, and demands fewer system resources. You can find the actual extension at the HTML5 youtube page in the extension index.
comments | permalink
Media Servers Aren't Easy - plus Moovida Install Tips
(by PeEll)2009.12.05My long time quest for the perfect media server had me purchase a new motherboard, processor, and memory stick two days ago. Since then, I have been fighting repeatedly with the Linux install that will work with this computer, these hard disks, the TV I want to use, and the streamed media I want.
Install Woes
There were two major problems whenever I tried to run the installer. The first was that the hard disk wouldn't show up in the installer. It showed up in Nautilus and Dolphin just fine, but for some reason Ubiquity couldn't see it. After 6-7 hours of debugging, and several forum posts and responses, I found the answer. I had to run sudo apt-get remove dmraid before launching the installer. I'm not quite sure why this works, but it does.The second major woe was that Kubuntu's detection of my screen size was atrocious. I tried both VGA and HDMI, and neither way was I able to configure the screen to look like a normal computer. Ubuntu faired better, but I still had to do some manual configuration of the resolution. I still haven't been able to determine if it is a problem with the EDID reported by the TV, or something else.
Media Player
This was weeks ago, but I have tried 6 or 7 of my older computers, trying to repurpose them as a media player/server. It seems that the toughest part of decoding 720p video encoded in x264 and wrapped in a Matroska container is CPU speed. Each of the computers I had tried before couldn't play video off of a local disk using VLC or Dragon or Totem without dropping 70-90% of the frames.
Finally having a computer capable, with a kind-of working install, I wanted to try Moovida as the main program on the machine. Moovida is pretty high-level, running on top of everything I had set up. This meant that the video resolution issues I had been having with Kubuntu didn't go away. At this time I was pretty sick of these issues, so I thought "hey, I'll try Mythbuntu. Hopefully that will autodetect my TV properly.". When I booted the installer, it didn't autodetect the best settings, but it at least had them as an option. This combined with the remove dmraid fix allowed me to install Mythbuntu.
The next step was to boot into Mythbuntu and see it's capabilities. All of my media is local to my network and shared via Samba. I spent about 10-15 minutes looking for a Samba share browser in MythTV, and apparently one doesn't exist. The internet suggested I try adding an entry to fstab for the samba share. This fstab entry mounted just fine, but still wasn't listed or parsed anywhere in MythTV. Also, reading the menus revealed to me that the real purpose of having MythTV is to watch live or recorded television, which for now, I am completely uninterested in. There was also the minor problem of the untested audio, and the video resolution now being stuck back at 800x600.
Back to Moovida
Having again given up on a solution, I was back to Moovida. Moovida would be perfect in theory for my setup, because I want to navigate my network media, and the internet video/audio plugins would be nice too. I decided to try out Moovida again on my main desktop, before attempting another wipe/reinstall on the server.
When I launched Moovida, and selected Other Computers, nothing happened. Some plugin updates finished, so I restarted and tried again. This time I received the error no module named coherence.upnp.core. This error made no sense to me because I had the upnp plugin installed. After googling this issue for a minutes, I tried running Moovida at the command line, and found out that Moovida had a missing dependency on Coherence. I found Coherence in apt and installed it and tried again. Now I was missing dependencies for hildon and twisted, which was again weird, but this time because I already had python-twisted-bin, python-twisted-core, python-twisted-conch, python-twisted-web, and python-twisted-web2 installed. The solution this time was to sudo apt-get install python-twisted python-hildon.
Okay, now I started up the other computers browser, it would scan 400 media files (which ones?), and would report I had no media. Checking the command line again reported the upnp was working, but that the smb:// protocol wasn't found. At this point I gave up on an automated SMB browser and would attempt to install a fresh Linux Mint 8 Desktop, install Moovida, and manually setup the mount point for Samba.
comments | permalink
November Projects
(by PeEll)2009.10.31Happy Halloween everyone!
I have been giving a fair amount of thought to the projects on my plate and it appears I have been suffering from a lack of motivation. In order to get past this, my plan is to focus on two specific projects for the next month with a planned completion date of december 1.
thr first project is a game called HexSlayer, a game inspired by the game "Slay". The second is an adaption of the board game robo rally into a multiplayer networked version that relies on each player using a G1 to input and plan moves. Hopefully this focus will allow me to finish these projects, and give me the momentum to get into some new ones.
comments | permalink