Morsi dot Org

Navigation

  • Projects / Presentations
  • Gallery
  • About Me
  • About This Site
  • Login

Tags

site links ohio linuxfest pidgin Ruby on Rails website crypto libvirt QPID git cny rome engineering expo backups vim fedora gobject cloud computing vcs miscellaneous hackerspace book gems Drupal workarounds koji puppet technical brno youtube entertainment FPS migration isitfedoraruby aikido presentation backlight oVirt screencasts academic ssh vatican camping rxsd ancient QMF encyclopedia personal phusion passenger howto jruby south park Deltacloud http nethack design patterns gnome thinkpad vm rpm rjr review c distros screencast android mycloud california xml adirondacks blacksburg threads olpc RPC google drag and drop web libvirtd cloud hardware gsoc rake snap rpmbuild projects python ActiveRecord Simrpc yum cape cod europe games mercurial Ruby email conference virtualization redhat syrlug vnc aeolus music fosscon redmine fudcon polisher html5 gnome-shell work notacon jsonrpc x3d gtk

Networks

I have 517 bookmarks

View my profile on LinkedIn

Aikidoka at aikidoofcny

Red Hat Employee

fedora

fedora


Monthly archive

  • January 2007 (5)
  • February 2007 (5)
  • March 2007 (4)
  • May 2007 (1)
  • June 2007 (1)
  • October 2007 (3)
  • November 2007 (2)
  • December 2007 (2)
  • January 2008 (1)
  • March 2008 (3)
  • April 2008 (3)
  • May 2008 (3)
  • June 2008 (5)
  • July 2008 (2)
  • August 2008 (1)
  • September 2008 (3)
  • October 2008 (3)
  • November 2008 (7)
  • December 2008 (3)
  • March 2009 (1)
  • May 2009 (1)
  • June 2009 (3)
  • July 2009 (6)
  • August 2009 (14)
  • September 2009 (8)
  • October 2009 (8)
  • November 2009 (3)
  • December 2009 (4)
  • January 2010 (1)
  • February 2010 (2)
  • March 2010 (1)
  • April 2010 (3)
  • May 2010 (2)
  • June 2010 (6)
  • July 2010 (3)
  • August 2010 (1)
  • September 2010 (3)
  • October 2010 (2)
  • December 2010 (1)
  • February 2011 (1)
  • April 2011 (2)
  • May 2011 (2)
  • June 2011 (1)
  • July 2011 (2)
  • August 2011 (6)
  • September 2011 (1)
  • November 2011 (7)
  • December 2011 (4)
  • January 2012 (3)
  • February 2012 (1)
  • March 2012 (2)
  • April 2012 (1)
  • May 2012 (3)
  • July 2012 (1)
  • August 2012 (2)
  • September 2012 (5)
  • October 2012 (2)
  • December 2012 (2)

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
  • 1 attachment

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
  • 1 attachment

Messing around w/ HTML5: drag-n-drop

Submitted by mmorsi on Fri, 2011-12-23 00:25

In 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
  • 5 attachments

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
  • 1 attachment

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.

---------------------------

Thats all folks!

  • mmorsi's blog
  • Login to post comments
  • Read more
  • 1 attachment

libvirtd default network on a vm

Submitted by mmorsi on Mon, 2011-12-05 16:12
I've run into this issue so many times that I figure I'd share the solution incase anyone else has a similar problem. If you are running libvirtd on a vm which was in itself started by libvirt, make sure you change the network address of the default libvirt network on the vm. Or alternatively simply run the following command to shut it down:

$ 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
  • 1 attachment

Aeolus Screencasts

Submitted by mmorsi on Wed, 2011-11-30 16:55

For 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:

Building cross-cloud images
Deploying instances to various clouds
And Managing workloads across clouds
As we ramp up to work on Aeolus at FUDCon we will be throwing more of these together and uploading them to youtube, so stay tuned for updates!
  • mmorsi's blog
  • Login to post comments
  • Read more

Messing around w/ HTML5: the canvas

Submitted by mmorsi on Tue, 2011-11-29 15:06

Like 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
  • 1 attachment

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
  • 1 attachment
  • « first
  • ‹ previous
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • …
  • next ›
  • last »