Forthcoming: MRI Ruby 1.9 in Fedora
Submitted by mmorsi on Tue, 2012-01-03 23:00
The Fedora Ruby SIG is in the process of updating the main Ruby package in Fedora to Ruby 1.9. We hope to get it in by Fedora 17, while shipping a Ruby 1.8 compatability package for those who wish to continue using the older version (though more and more upstream projects are phasing this out). Alternatively, since JRuby is now in Fedora, end-users may opt to utilize that interpreter for both Ruby 1.8 and 1.9 support.
The Ruby 1.9 effort is being led by Vit Ondruch who has done alot of the packaging work and submitted the initial guidelines draft, which we are currently discussing/revising on the mailing lists. They are largely an extension of the existing guidelines to better nail things down and cover various issues that have come up over the years, but all are welcome to join the discussion and share their comments / opinions on the best way to move forward.
A Ruby 1.9.3 testing repository has been setup for those who wish to try the new packages out. Feel free to share any feedback or issues on list.
- mmorsi's blog
- Login to post comments
- Read more
Book Review: Altered Carbon
Submitted by mmorsi on Sun, 2012-01-01 14:35
Having finished my long trek through Anathem a little while back, I was left craving for another epic sci-fi tale. Living up to his previous classic, Snow Crash, Neal Stephenson's Anathem is an amazing thrill-ride, full of intense action, profound philosophy (drawing on thousands of years of mathematics, science, and metaphysics), and overall an unbelievable story. Stephenson is truly a remarkable author, and while he deals with very-deep topics, there is a good chance that anyone will be able to find at least one of his worlds that draws them in. Surprisingly I couldn't get into Cryptonomicon when I tried not too long ago, but admittedly I didn't get terribly far into it before I gave up and might have to give it another go. There are plenty of reviews of Anathem online, so I will leave it up to my readers to read more about it through those, but needless to say I highly recommend the novel.
I ordered two books with relatively good reviews off of Amazon, Hyperion (a space opera) and the second being Altered Carbon by Richard K Morgan, a nitty gritty cyberpunk tale similar to Snow Crash. I tried the former first, but again try as I might I could not get into it, so I decided to give Altered Carbon a go, and was very pleasantly surprised.
Altered Carbon is the tale of Takeshi Kovacs as he investigates the 'murder' of Laurens Bancroft, a very rich and powerful business magnate in futuristic San Francisco, now called Bay City. By this point in time, actual real deaths are fairly uncommon, as it is a widespread practice to store one's identity, memories, and conscience 'on stack', which is able to be downloaded into temporary bodies known as 'sleeves' at any point in time after. Morgan's vivid and rich imagery paints a world that lives up to any cyberpunk setting portrayed to date, including perhaps the ultimate cyberpunk novel, Neuromancer by William Gibson. Chalk full of concepts such as virtual-realities, technology based augmentations, drug induced psychological and physiological alterations, interstellar travel, conspiring artificial intelligences, oriental philosophy, intense martial arts action, and much more, Kovacs' investigation keeps the reader glued to the edge of his/her seat and makes it hard to put the book down even for a second.
The novel is a good read, not so challenging that it will be lost on anyone (unlike Anathem and Snow Crash which are complete mind-benders), but also not too simplistic that it will bore. The chapters are fairly short and to the point, making for a good airplane or subway read, while the overall story fits together and flows nicely. Without spoiling any more, I highly suggest it to anyone that is into the genre, it won't disappoint!
- mmorsi's blog
- Login to post comments
- Read more
Messing around w/ HTML5: drag-n-drop
Submitted by mmorsi on Fri, 2011-12-23 00:25In my last html5 blog post we explored using the canvas to recreate a simple version of pong. This time around we'll be using the drag-and-drop features of HTML5 for a simple example. Note I'm pulling in the JQuery UI library to take care of alot of the details and provide a easy-to-use interface to use drag-and-drop.
In this example, we have a list of images which we'd like to pull into a common area. The thing is, the original list should be preserved, once dragged-in, an image should not disappear from its original location.
This is accomplished by using jquery to set the images in the list to being draggable (this registers the necessary event handlers), and to make the common area droppable, eg able to receive draggable objects. JQuery allows us to set the 'helper' attribute, which defines the element being dragged around, to the predefined 'clone' value which makes a copy of the original element. From there we expand the container div to accept only the elements we want to drag in, and override the 'drop' method to set various properties allowing us to position and style the dropped element any way we would like.
All in all the effect is the following:
And the source producing this:
<div id="jquery_drag_drop_example_container"
style="width: 300px; height: 300px; background: #C0C0C0; float:left;">
</div>
<div style="background: #FFFF99; float:left; width: 20%; margin-left: 10px;">
<ul style="list-style-type: none; list-style-position: inside;">
<li><img class="jquery_drag_drop_example_img" src="example_0.png" /></li>
<li><img class="jquery_drag_drop_example_img" src="example_1.png" /></li>
<li><img class="jquery_drag_drop_example_img" src="example_2.png" /></li>
<li><img class="jquery_drag_drop_example_img" src="example_3.png" /></li>
<li><img class="jquery_drag_drop_example_img" src="example_4.png" /></li>
</ul>
</div>
<div style="clear: both;"></div><script type="text/javascript"> $(function(){ $('.jquery_drag_drop_example_img').draggable({ helper: 'clone', }); $('#jquery_drag_drop_example_container').droppable({ accept: '.jquery_drag_drop_example_img', drop: function(event, ui){ var newitem = $(ui.draggable).clone(); $(this).append(newitem); $(newitem).addClass("jquery_drag_drop_example_img_clone"); $(newitem).removeClass("ui-draggable jquery_drag_drop_example_img"); $(newitem).draggable({containment: 'parent'}); $(newitem).css('position', 'absolute'); $(newitem).css('top', ui.position.top ); $(newitem).css('left', ui.position.left); //alert(event.dataTransfer.getData('text')); } }); }); </script>
Thats it until next time. Hope everyone enjoys the holidays!
- mmorsi's blog
- Login to post comments
- Read more
Snap! Updates
Submitted by mmorsi on Tue, 2011-12-20 01:51
Alot of great development on Snap! recently. Here are some updates (see the commit log for the full list):
- incorporated full test harness
- many documentation improvements / fixes
- many code cleanups / optimizations
- starting adding ability to migrate snapshots between OS's (for example Ubuntu to Fedora and vice-versa)
- pushed snap into Fedora! (simply install via 'yum install snap' on Fedora15+ and RHEL6, should be pushed into Debian / Ubuntu soon)
Stay tuned for more updates!
- mmorsi's blog
- Login to post comments
- Read more
Various Quick Tips
Submitted by mmorsi on Mon, 2011-12-19 14:47
Just a bunch of random quick tips, posted together for conciseness
---------------------------
Passwordless SSH'ing as root
When writing the test harness for Snap I needed to setup a few vms which I could ssh into as root automatically, without being prompted for a password. True, I could've setup a ssh key and install that on the vms, but instead for simplicity I wanted to be able to ssh in w/out requiring any credentials (yes insecure, but these VMs are isolated and the test harness makes sure they are shutdown post-invocation).
On Fedora/Ubuntu this is accomplished by:
- editing /etc/ssh/sshd_config an setting 'PermitEmptyPasswords yes'
- Ubuntu requires one additional config change, to /etc/pam.d/sshd, namely comment out '@include common-auth' and replace with 'auth required pam_unix.so nullok'
- restarting ssh: 'sudo service sshd restart'
- setting sshd to come up automatically 'sudo chkconfig --levels 35 sshd on'
- finally delete the root user's password 'sudo passwd -d root'
Now you can ssh root@<ip_address> to login as root w/out a password (obviously use with caution).
Incidentally this is also a means to get a root shell on Ubuntu, which by default does not allow this, requiring the user to run all privileged commands through 'sudo'
---------------------------
xbacklight
I've run into a problem w/ the backlight not resuming normal operation after my laptop has been dock'd. This seems to be a common issue, even on the Linux friendly Lenovo Thinkpad laptops.
After some debugging I was able to resolve this by installing the 'xbacklight' package and running 'xbacklight -set 100'.
---------------------------
C Data Structure Visibility Practices
I've been getting back into C programming (more on this soon). Of course w/ a lower-level language (C is actually a high level language, though usually considered low-level, but I digress) there are many approaches / ways to do things, especially concerning data visibility. Studying the libvirt library header file, I found one useful standard is to:
- define public data structures, eg structures which can be manually instantiated by the user, as you normally would, eg
typedef struct _myData{ ...fields... } myData; typedef myDataPtr *myData;
- define private data structures, or data which can only be instantiated by calling one of your methods, w/ forward declerations in the public header, with the private definitions residing in an internal-only header/implementation file, eg
typedef struct _privateData privateData; typedef privateDataPtr *privateData; privateDataPtr createPrivateData(...params...);
- define public data structures refering to data managed / manipulated by an external entity, as 'info' structures, (these will often be associated w/ private data in some way) eg
typedef struct _externalDataInfo { ...fields about data managed elsewhere... } externalDataInfo; typedef externalDataInfoPtr *externalDataInfo; externalDataInfoPtr getExternalDataInfo(privateDataPtr private_data);
---------------------------
Per Host SSH Key
Many thanks to jkeating for this pro-tip. To set which ssh key to use on a per-host basis, simply create a ~/.ssh/config file (chmod'd to 600) containing the following contents:
Host <hostname>
IdentityFile <path-to-ssh-key>
Also optionally specify 'User <username>' to not have to prefix your remote username to the hostname when logging in w/ a username different than your local one.
---------------------------
- mmorsi's blog
- Login to post comments
- Read more
libvirtd default network on a vm
Submitted by mmorsi on Mon, 2011-12-05 16:12
$ sudo virsh net-destroy default
This is because otherwise the addresses of the libvirt created networks running on the vm and your host machine will clash and cause conflicts / routing errors.
Hope this helps!
- mmorsi's blog
- Login to post comments
- Read more
Aeolus Screencasts
Submitted by mmorsi on Wed, 2011-11-30 16:55For those who missed it, be sure to checkout the Aeolus Project youtube channel which contains several screencasts around current usage of Aeolus including topics such as:
- mmorsi's blog
- Login to post comments
- Read more
Messing around w/ HTML5: the canvas
Submitted by mmorsi on Tue, 2011-11-29 15:06Like it or not HTML5 is coming (or is here depending on who you ask). After playing around with it a bit, I've found more of the same, if you're familiar w/ the underlying concepts in different contexts, it should be really easy to pick up.
Regardless, I've installed the Drupal HTML5 Tools plugin to be able to use HTML5 themes in my blog's CMS, and decided to mess around w/ a few underlying concepts to see the nuances of how they work. The first of these is the canvas, which can be used to easily draw in-browser graphics.
For example checkout this simple version of pong that I just quickly whipped up. (edge cases not included :-p)
See the code after the jump
- mmorsi's blog
- Login to post comments
- Read more
Submitted two Hackfests to FUDCon
Submitted by mmorsi on Mon, 2011-11-28 12:11
I had such a great time at the last FUDCon I attended, Toronto '09 that I decided to return for Blacksburg '12 this upcoming January 13th-15th in Blacksburg, Virgina. Some of you may recall, during the last FUDCon, I gave a presentation on deltacloud, the core component of Aeolus the Open Source Cloud Computing API.
Alot of great work has went into the project over the last couple of years, and I've decided to submit a few hackfest proposals around using some of the tooling in unique ways. With the first proposal, I aim to go over the various projects that exist under the Aeolus umbrella, and use them to build some simple tools to deploy and monitor cloud provider instances in interesting ways. With my second proposal, I intend to take my subproject Snap (the modular system snapshotter for Fedora/Ubuntu/Windows/etc) and expand it with more custom snapshot targets. I have a bunch in mind, but I'm more than eager to help anyone write a plugin to take a snapshot of their own custom software (these are very easy to write and integrate into the project).
In any case, the conference should be a really fun time as always, and I'm really looking forward to it! Hope to see you all there!
- mmorsi's blog
- Login to post comments
- Read more
Migrating Windows Instances Across Clouds / Virtualization Hypervisors
Submitted by mmorsi on Tue, 2011-11-22 11:48
I've added Windows support to Snap, now making it possible to take snapshots of a Windows machine using the same simple tooling as with Linux. Thus it is now possible to move both Windows and Linux instances across disparate VM hypervisors and cloud providers. You may download the windows installer here
Snap not only permits moving an instance between any two generic hypervisors and/or cloud providers, but between any physical or virtual machines as well as well as taking and restoring generic system snapshots.
I've submitted Snap to Fedora and Ubuntu, package reviewers would be more than appreciated.
Stay tuned for more updates!
- mmorsi's blog
- Login to post comments
- Read more










