Ubuntu Announces Mobile Phone OS

Ubuntu has announced a mobile phone OS. It will demo at CES January 8-11.

Looks pretty spiffy, but how will it play in this market? At least it’ll keep everyone honest.

<a href=”http://www.ubuntu.com/devices/phone”>Ubuntu for phones</a>.

Backing up Snow Leopard Server with mlbackups

Apple‘s Snow Leopard Server product is one lovely implementation of UNIX.  I’ve thoroughly enjoyed using it for the power and simplicity that it offers.  I’ve loved using Apple’s operating systems thanks to the combination of UNIX power and elegant design.  Snow Leopard server is no exception to this rule.

The barrier to entry with Snow Leopard server was lowered when Apple reduced the price of the product to $499 USD and offered an unlimited client version only.  It was even more palatable when the Mac Mini server version was introduced at $999.  Previously, you could build your own Mac Mini server for about $1300 USD, but this new model allows small developers and workshops to get into the product at a very low price point.

With that in mind, I’m anticipating that there’s a number of people that are checking out Snow Leopard server for the first time.  You might be enthralled with all of its features and niceties.  One of those niceties includes Time Machine.  However, when you look at what Time Machine really backs up, you’ll discover that it doesn’t back up any elements of your server data.

That’s right.  Snow Leopard server is not backing up your mail data, Open Directory data or anything else of that nature.  It’s backing up enough to restore the server to an operational state, but you’ll find yourself rebuilding the Open Directory and mail data from scratch.  The Apple documentation states that they offer a number of other command-line utilities for backing up server data.  These utilities are a number of powerful little guys like “ditto” and “rsync.”  For the uninitiated, this means you’re now plunging into the world of search to discover a backup script that will save your hindquarters.

When I was researching this, I came across SuperDuper! and Carbon Copy Cloner most often.  While these serve the purpose of making a bootable clone of your server drive, the developers recommend that you do not use their products against Snow Leopard server while the services are running.  So, guess what?  Now you’re back to looking into a script to stop all of your services, back up the data, then start them back up again.

One side note here: it’s dreadfully easy to stop services with a terminal command or bash script, but I’m not going to go over that here.  If interested in this information, let me know and I’ll post it in another article.

After more searching, I came upon a little resource at http://maclemon.at – a site where a fellow has created the backup script “mlbackup.”  The site is mainly in German, so it’s not entirely clear what to do with the program.  However, it seemed to fit the bill for what I wanted so I decided to check it out.

mlbackup is provided as an installation package.  After downloading it, double-click on the pkg to install it.  Installation is pretty straightforward but implementation is a different story.

After installing mlbackup, it’s important to know what was placed on your system:

/usr/local/maclemon/* – the binaries for mlbackup and man pages
/etc/maclemon/backup/* – sample configuration file and globalexclusions

Start by copying the sample configuration file to a new file for modification.  In my case, I created a backup configuration file that is named after the volume that contains the data for my server.  My server’s name is “Ramona” and the server data is stored on a volume named “RA Server Data.”  Therefore, I did:

sudo cp demo.mlbackupconf.sample ramona_serverdata.mlbackupconf

This creates a copy of demo.mlbackupconf.sample and names it “ramona_serverdata.mlbackupconf.”  Next, you’ll want to edit that new file and make the necessary changes for your server.

I use “vim” to edit, so I type next:

sudo vim ramona_serverdata.mlbackupconf

Using “vim” is an article in and of itself, so I’m certainly not going to cover its usage here.  If you’re an innocent  newcomer to vim, it can quickly turn you into an innocent bystander of a violent gunfight.  Be careful.

Once you’re in vim, hit “i” for insert mode and make the necessary changes to the file.  Notably, you’ll want to change some of the items listed below.  I’m pasting in the contents of my file and the changes that I made.

# What is the name of this backup set?
MLbackupName=”Ramona_Server_Data”
# What is the name of this backup set?
MLbackupName="Ramona_Server_Data"
...

# What file or directory to Backup. (No trailing Slash for directories)
# Default: $HOME
MLsourcePath="/Volumes/RA Server Data"

...

# Where shall the Backups be stored (local path on the destination machine)
# Default: /Volumes/Backup
MLdestPath="/Volumes/Ramona Backup/mlbackups"

...

# Where to send the eMail notification about the backup to?
# Default: $USER
MLadminEmail="<my email address>"

Hit “esc” to get out of insert mode.  Then hit “:” and type “wq” and enter.  This will save the file.

In case you haven’t deduced it from examining the file, I have two external drives hooked up to this Mac Mini server.  One is a firewire800 drive called “RA Server Data.”  The other is a larger drive on USB called “Ramona Backup.”  My intention is for mlbackup to execute against RA Server Data and back it all up to Ramona Backup.  I intend for it to keep 5 sets of backups.  mlbackup is pretty nice in that it will automatically clean up the prior backup sets so it only keeps the amount of sets you want.  If you’re running this every day, you’ll have 5 days of backups.

One other note here.  There’s a bug in the mlbackup script that if the “MLbackupname” parameter contains a space in the name, mlbackup won’t clean up the old backup sets automatically.  Found this one out the hard way.  If you intend to have a backup set name that contained spaces, replace the spaces with an underscore character to prevent this issue from biting you.

The first half of your mlbackup configuration is complete.  You’ve told mlbackup what to do, but now you need to tell it when to do it.  The old way of setting up scheduled tasks in OS X was to use a cron job, just like a regular UNIX or Linux implementation.  However, Apple has replaced cron with launchd.  Now you need to configure launchd.

Launchd is a complex beast.  I’ll summarize what I learned about it.  Launchd will fire up any tasks on your behalf at any time you define, much like cron used to do.  It uses an XML file to define the job and depending on the parameters in the XML file and where you put it, launchd will do different things.

Since it’s so complex, I’m only going to talk about what I did for this launchd task.  Your ideas and mileage may vary.  I’m interested in hearing what others do with this, so be sure to let me know what you put together.

In my case, I created a new file in /Library/LaunchDaemons.  I put it there because I want mlbackup to be executed as root (spare me the speeches, I’m trying to back up server data here) and I want it to have access to the system.

Here’s the contents of the file I created there in /Library/LaunchDaemons.  The name of the file is at.maclemon.mlbackup.radata.daily.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<dict>
  <key>Label</key>
        <string>at.maclemon.mlbackup.radata.daily</string>
  <key>ServiceDescription</key>
        <string>Back up the disk RA Server Data every day.</string>
  <key>LowPriorityIO</key>
  	<true/>
  <key>ProgramArguments</key>
  <array>
	<string>/usr/local/bin/mlbackup</string>  
	<string>/private/etc/maclemon/backup/ramona_serverdata.mlbackupconf</string>
  </array>
  <key>Debug</key>
  	<true/>
  <key>StartCalendarInterval</key>
  <array>
  	<dict>
    		<key>Hour</key>
    		<integer>4</integer>
    		<key>Minute</key>
    		<integer>0</integer>
  	</dict>
  </array>
  <key>AbandonProcessGroup</key>
	<true/>
</dict>
</plist>

Again I’m not going to go into a whole lot of detail here about what I did, but I will point out a few items of interest.

Note the “ProgramArguments” directive.  There, you see that I’m calling mlbackup and giving it the full path of the config file I created earlier.  This is vitally important, otherwise mlbackup won’t do a thing.

The “StartCalendarInterval” element tells launchd when to start the task.

The “AbandonProcessGroup” item is required if you intend mlbackup to send you email at the completion of the job.  Without this element, mlbackup won’t send an email and may not clean up the backup sets in a way that you intend.

Finally, tell launchd that you created the file and you want the system to load it up and pay attention:

sudo launchctl load -w at.maclemon.mlbackup.radata.daily.plist

Launchctl is the terminal command to force launchd to load up the file.  For some odd reason, without the -w, it won’t load.  Why you have to do this is unclear in the Apple documentation for Snow Leopard.  In the past, -w controlled whether the job was enabled or disabled.  In Snow Leopard it seems, without using -w, launchctl just looks at you funny.

That should do it.  You should receive an email from the root user at the end of the backup task if all goes well.  If you didn’t receive an email, be sure to check your backup volume and verify that something was written there by mlbackup.

One other note that I forgot to include.  mlbackup is mainly just a bash script, but it does contain a newer version of rsync.  mlbackup uses this version of rsync over the one that Apple supplied with OS X because it has some vital optimizations for the backup to take place.

That should do it.  Hope this helps get your server backups running well.

Reblog this post [with Zemanta]

Where Powershell Fails

I’m all about negativity today. Sorry.

Anyway, I’ve had something nagging at me for a while now and I think I’ve just figured it out. Powershell is Microsoft‘s answer to having a dumb command line through the Win95 – Win2003 years and it’s quite powerful, as the name implies. Microsoft likes it so much that they makes most of the Exchange 2007 administration efforts in the Exchange Management Shell, a derivative of Powershell that contains Exchange-specific cmdlets.

I’ve long bemoaned to our internal support personnel… and… well, probably my Microsoft contacts too… about how discombobulated Powershell actually is. It’s like it was designed with no standard in mind for the commands – each developer wrote their own cmdlet with their own switches and methods to do things the way they saw fit.

But it’s actually worse than that. Now I’ve come to realize that the problem with managing Exchange from the shell is not only because of the lack of standardization, but because a great deal of this SHOULDN’T be done in a shell command. I’ve heard that Powershell was designed to attract Linux admins who prefer the command line and that’s fine. But I do not know of a Linux admin who would type a command to set a disclaimer on the entire Exchange organization, but rather he/she would edit a config file of some kind. That way, not only would the disclaimer setting be readily apparent and visible, but it wouldn’t take some obscure command to be executed to show me the meat of the option.

What tripped this realization was this “power tip” when I just went into the Exchange shell on one of our servers:

Tip of the day #58:

Do you want to add a disclaimer to all outbound e-mail messages? Type:

$Condition = Get-TransportRulePredicate FromScope
$Condition.Scope = "InOrganization"
$Condition2 = Get-TransportRulePredicate SentToScope
$Condition2.Scope = "NotInOrganization"
$Action = Get-TransportRuleAction ApplyDisclaimer
$Action.Text = "Sample disclaimer text"
New-TransportRule -Name "Sample disclaimer" -Condition @($Condition, $Condition2) -Action @($Action)

Why am I not looking in a config file for this information? Fail.

Reblog this post [with Zemanta]

“Chrome” set to reignite old tensions

Continuing my recent tradition of expressing what are likely to be fairly unpopular opinions with my peers, tonight I’m going to rag on Google‘s “Chrome” project and tell you why this is a Bad Idea ™.  I’ll try to keep this short (update: I failed).  This is considered to be a discussion starter, not a final statement.  I’ll probably elaborate on these discussion points on the next NO CARRIER, so be sure and give me some feedback here.

Key points:

The Browser War is Pointless

Anyone who still thinks the browser war is anything worth fighting is absolutely delusional.  The whole point of having a web browser is to serve as an open portal to content, not to give your company the biggest tool at the urinal.  The web was created for serving content regardless of what application you used to view that content.  In that spirit, what’s the point of fighting over this?

I understand the key differences between browsers and that some browsers have perceived advantages over others.  I understand that all too well.  One of the things you used to give up when you made a conscious decision to be a Mac or Linux user was the fact that the de facto browser on the net that had no intention whatsoever of conforming to a standard is no longer in your pocket.  Being a Mac or Linux user means you have more than one browser installed and you use the right tool for the job.  The fact is, the right tool for the job shouldn’t matter because HTML…er, XHTML or whatever it is this week is a standard, right?

Companies do not live or die based on whether or not you use their browser.  Well, unless you’re Opera, maybe.  But I digress.

We all know Microsoft is starting to wake up to this fact and has indeed promised to help further this idea.  That’s great.  It only bolsters my argument then.  It used to be that the browser war was about dominating in your interpretation of the standard.  Now that’s less and less important because standards are being followed (well, in general).  So… why bother?  What does it do for Google to compete in this browser market?

I know the answer to this and so do you.  We’ll talk about that later.  But for now, just believe me.  This market share thing is pointless.  I felt the same way when Steve Jobs declared war on IE with Safari on Windows.  That just upset me.  All that does is tie a huge steel ball around Apple’s ankle and toss it in the ocean.  Apply that to Google now too.

Moving on.

Browsers are “planet” apps

Browsers are becoming “planet” applications with lots of satellites (plugins).  For example, I use MobileMe which hooks into Safari or IE for bookmark synchronization… but not Firefox!  Many people I know and love prefer Firefox because of the various plugins that “better” their browser.

The point I’m trying to make here is that the browser is not a monolithic application.  You spend time adding whipped topping and chocolate shavings on top to get it just the way you want to work with it.  You’ve now installed satellite applications that better your experience for you.

Now along comes a new browser with no support for those satellites.  You have a new planet that will support no moon.  Are you going to pack up your cheese and move to it?  What happens when Chrome doesn’t support your favorite plugins?  Okie, fine.  I know they have said they plan to support Firefox plugins.  But will MobileMe bookmark sync work?  Probably not.  That’s so crucial for me that it’s a deal killer.

As a matter of fact, there’s a good solution to this – and it would help out everyone’s favorite argument: security.  Don’t support these plugins.  Just be monolithic and require extra functionality to be external to your application.  That would change the game entirely… for the better.

A New Security Nightmare

The story you didn’t read the other day was how enterprise administrators everywhere were groaning about the release of Chrome.  While they salivated about using it at home perhaps, what’s happening in the workplace is a whole nutha story.

Google woke up and unleashed Chrome on the world this week and millions of people downloaded it.  I’ll bet a great deal of those people were at work when they did it.  I bet they installed it on their work PC’s.

So.  You’ve just taken a brand new application with no record of security (and let’s face it, Google’s security record is not clean)… an application that is now your portal to the most insecure and infested part of the Internet and added it to your company’s PC.  You’ve just made your PC a tremendous liability and your enterprise administrator is likely ready to kick your ass.

The web is the most dangerous place on the net.  Everywhere you look it’s teeming with viruses, javascript exploits, cross-site scripting bugs and other nasties.  The web browser is the simplest and quickest way into your PC.  So let me get this straight.  You just installed that thing on your nice and secure corporate PC?

“Well, it’s not Internet Explorer, so I’m good!” you might say.  Nice argument.  Nevermind the fact that a large percentage of web exploits occur in Javascript itself.  Guess what Chrome’s focus is?  Making Javascript a “better experience” for the web browsing public.  Did you just get a shiver?  If not, you’re not paying attention.

Indeed, within hours of release, Chrome was proven to be subject to a carpet bombing flaw.  Look it up if you don’t know what that is.  I’m too fired up to bother linking it 😉

A Cloud OS Should be Standards Based

Now we get to the strategic part of the discussion.  This is where Google’s motive comes in.  They’ve been building the “cloud OS” so to speak for years now.  They envision a world where you can sign in with a single username and password from anywhere and use applications just as you would your desktop, complete with the data you work with.  Chrome is their method of furthering that agenda.

That’s great, except that the cloud as a business data model hasn’t really shaken out to be a good idea.

I still do not know of any large enterprise business willing to put their data up on the public web.  Better yet, I do not know of any large enterprise willing to compromise on SLA’s for their critical data.  They’d better start thinking about that if they plan on moving to the “cloud.”  The “cloud” has already shit itself more than once.  Google, Amazon, Apple and all other types of cloud computing folks have had severe troubles recently.  It’s an unproven model and with the way you hear people talk about it like it’s the second coming… you’ve got another dotBomb shaping up here.

Chrome is supposed to make Google’s cloud computing experience better, since Javascript was their focus and Javascript is their operating system.  Neat.  I’d suggest you stay off of other sites, since their new interpretation of Javascript and the Java VM could leave you open to all sorts of other vulnerabilities (see: security).  How about you make sure that business model is intact before you put too much time and money into it?

Open Source – Who Cares?

A lot is being ballyhooed about the fact that Chrome is open source.  Hooray!  Why is that a win, exactly?  Because you can send patches to Google?  Think they’re going to include your code in their release when they have a fairly clear agenda?

Red herring, folks.  They could give a shit about your code.  They just wanted something else on the PR.  Honestly, what does it buy them to be open source for this project?

It sure bought them an interesting blog post (see: security) about how everything you type is sent back to the Google mothership, including sites you visit.  Shivering yet?  Woo, aren’t you glad you installed that on your CORPORATE PC!?!?

And Finally…

Just in case you’re still wondering what the purpose might be of the Chrome browser and why you’re using it… 

Google’s business model is advertising.

Think about it, H.I.

Reblog this post [with Zemanta]

Large Hospital Software Company Switches to Linux – OSS Ramblings

Large Hospital Software Company Switches to Linux – OSS Ramblings

While I’m not as optimistic as my buddy Tony on the increase of Linux market share, I am definitely in line with him on the decrease of Microsoft market share.  As I continue my march toward converting to an all-Mac environment at home, Windows has been relegated to not much more than a gaming console.  Even that is somewhat doomed though, as I’m starting to discover some of the newest games have outgrown this almost 4-year old PC.  That’s fine, I’ll just start gaming on the Wii and continuing on with my old games. 

Happy Linux Thoughts: Reasons why I love Microsoft’s Operating sytems

Happy Linux Thoughts: Reasons why I love Microsoft’s Operating sytems

Brilliant, tasty little satirical morsel for your enjoyment.

I should also file this under jealousy that this is only the fifth entry and it’s already been Dugg to the front page. Bother.