• Could not connect to Twitter

Choosing a Python Web Framework I - bottling it

A few years ago, when choosing a Python Web-framework with which to build Showmedo, life was a little simpler. The big CMS frameworks like Zope and its relatively user-friendly little bro Plone were reasonably well established and there were a few up and coming lighter frameworks, which promised to take one closer to the Python. Standouts here were Turbogears and Django.

I tried using Plone, even bought the book, but found it very unwieldy. Like so many frameworks it was perfectly happy until one wanted to do something outside its workflow plan. Then things got icky, really icky. There was also far too much ‘magic’ going on, and far too little connection with the underlying Python. After this experience Turbogears was a breath of fresh air. I could build a web-site in Python and leverage all the efficiency and elegance of the language up close and personal. What could be sweeter? I enjoyed the experience so much I didn’t give Django a fair crack of the whip. Although back then it was in beta and had been postponing a 1.0 release for a very long time.

Well, time moves on, and if there has been anything as intense as a framework war, it’s fair to conclude that Django has taken the spoils. Which seems fair. It’s a fantastically managed project, the documentation seems top notch (very important point), and the community is huge, enthusiastic and growing. For a more flexible experience Pylons is threatening to steal some of Turbogears thunder, offering a more modular, ‘best of breed’ alternative to Django. One of the big advantages here is the possibility of using the superb and acknowledged king of Python ORM database libraries, SQLAlchemy.

Anyway, today I come to praise something at the other end of the spectrum and newish to the field, namely Bottle.py. An entire web-framework packaged in a single Python module, which seemed crazy when first I heard of it. Bottle bills itself as a micro-framework, fast, simple and lightweight. Having had a chance to play around with it, I can testify to this. It makes a superb development server, among other things. After previous battles with Zope/Plone it’s pretty incredible to get a server up and serving pages in a few lines of Python, with one imported module. Here’s the ‘Hello World’ example:

from bottle import route, run

@route('/:name')
def index(name='World'):
    return 'Hello %s!' % name

run(host='localhost', port=8080)

So, if you fancy getting away from the complexity of the bigger frameworks and getting back to basics, Bottle.py is a great option and an amazing achievement.

In the meantime, a little selection of Python web-framework videos from the Showmedo vaults:

Eric Florenzano’s humungous series, Django from the Ground Up.

Jiang Xin’s Pylons series.

Kevin Dangor’s Ultimate DVD Turbogears set. Note: Turbogears 2 has seen some impressive changes to the framework, but much of Kevin’s presentations is still applicable.

We don’t yet have a bottle.py screencast, but there will be one soon. In the meantime, the closest to low-level web-appery we have is John Montgomery’s introduction to Python Web Programming CGI
. Note: this is a club series but the linked introductory video is free and gives an overview.

Please share:
  • DZone
  • del.icio.us
  • Reddit
  • Furl
  • Ma.gnolia
  • email
  • StumbleUpon
  • Technorati
  • TwitThis
  • Slashdot

Congratulations for Dai's 40th Scribus Video!

Big kudos to Dai for adding his 40th Scribus Video to Showmedo. Judging from the feedback and Google, these are by some way the most popular Scribus screencasts on the web and a great testimony to Dai’s teaching skills and the efficacy screencasting.

You can see Dai’s Scribus collection here, and sample his 40th video below:

Please share:
  • DZone
  • del.icio.us
  • Reddit
  • Furl
  • Ma.gnolia
  • email
  • StumbleUpon
  • Technorati
  • TwitThis
  • Slashdot

New Video Published: C++ Tutorial (1) – Absolute n00b spoonfeed

Showmedo is proud to publish:C++ Tutorial (1) – Absolute n00b spoonfeed [ID:1274], a video-tutorial by antiRTFM
This video is part of the series C++ Tutorials – Absolute n00b spoonfeed

Video tutorials about programming in the C++ programming language.

Forum: http://cpptutorials.freeforums.org/

Part 1:
* Introduction
* Program / Programming
* Programming languages
* C++ Programming language

Please share:
  • DZone
  • del.icio.us
  • Reddit
  • Furl
  • Ma.gnolia
  • email
  • StumbleUpon
  • Technorati
  • TwitThis
  • Slashdot

Relaunch, Refresh, Renew

Not sure what it is, but it starts with re. Inspired somewhat by a good friend (thanks Steve!) I galvanised a few galvons and decided to redo Showmedo. Chief among the aims was:

  • Make navigation to the video-tutorials much easier/more intuitive.
  • Make the site less visually er weird/fussy/cluttered
  • Reorganize and refactor the codebase and remove the huge amounts of cruft behind the scenes to…
  • Free time in the future.
  • Make things faster. Page-loads, server-load, the works.
  • Giving the club a home.

I think pretty substantial inroads have been made with regard to these goals. Not perfect by any means, but there is now a reasonably solid base on which to build. I’ll be documenting the changes a bit in the next week or so, but hope the new site is a much nicer prospect.

Please feel free to direct any feedback here.

cheers,
Kyran

Please share:
  • DZone
  • del.icio.us
  • Reddit
  • Furl
  • Ma.gnolia
  • email
  • StumbleUpon
  • Technorati
  • TwitThis
  • Slashdot

Site Relaunch - customizing that Twitter Widget

With limited time to post any content to the Blog or Twitter micro-blog, being able to reuse/advartise that content seems like a win-win. Twitter helpfully provide a widget for just this purpose but, out of the box, it’s not quite right for my purposes. But with a little javascript, jQuery and CSS magic that can all be put right.

First a little screenshot to show what the vanilla widget looks like, after a bit of customization that you can perform on the Twitter site (you’ll find the widgets hanging off the ‘Goodies’ link at the bottom of your facebook page:

The widget shown is ok but:

  • I don’t like the header area, with those two Showmedos and a rather redundant Showmedo logo (this is appearing on the Showmedo site).
  • I’d also like to remove the padding to left and right of the tweets to align the text with the rest of the column content.
  • The font-used is lucida-grand but I would prefer to use Verdana, the default font for my site.
  • The ‘twitter’ badge on the bottom left, which is probably most likely to be clicked, takes users to the twitter home page ‘http://twitter.com’ but I would like it to direct to my twitter page ‘http://twitter.com/ShowMeDo’.

With a few a lines of css and jQuery javascript these problems are easily addressed.

First we remove the header by finding its css class, ‘twtr-hd’, and using jQuery to hide it. This is equivalent to setting its css ‘display’ attribute to ‘none’.

$('.twtr-hd').hide();

To change the padding and font-family just add some css to your style-file:

div#contentRight .twtr-widget{
    font-family:Verdana,Arial,Helvetica,"Trebuchet MS",Trebuchet,sans-serif !important;
}

.twtr-widget .twtr-tweet-wrap {
    padding:6px 0 !important;
}

Note the use of the !important flags to override existing settings and escape the css cascade. Now twitter themselves, rather frustratingly, set the widget font-style using an !important tag. This means that in order to override it we need to prioritise our !important using the identity ‘contentRight’ of the right column in which the twitter widget appears.

Lastly, in order to direct users clicking the twitter badge to ShowMeDo’s twitter site we use a little jQuert to change the ‘href’ attribute of the twitter link:

    $('.twtr-doc a').attr('href', 'http://twitter.com/ShowMeDo');

And we have the resulting, pretty satisfactory widget:
Showmedo's customized twitter widget

Please share:
  • DZone
  • del.icio.us
  • Reddit
  • Furl
  • Ma.gnolia
  • email
  • StumbleUpon
  • Technorati
  • TwitThis
  • Slashdot

New Scribus Video Published

We’re proud to publish another video in Dai’s hugely popular Scribus Desktop Publishing set. Entitled Drop Caps Revisited:

Please share:
  • DZone
  • del.icio.us
  • Reddit
  • Furl
  • Ma.gnolia
  • email
  • StumbleUpon
  • Technorati
  • TwitThis
  • Slashdot

New Video Published: Self-modifying code

Showmedo is proud to publish:[1483] Self-modifying code, a video-tutorial by David Fung
This video is part of the series Self-modifying code

Using the inspect and re modules, write a piece of code that update itself every time it is run.

The idea is come from the PEAK ez_setup.py script.

Please share:
  • DZone
  • del.icio.us
  • Reddit
  • Furl
  • Ma.gnolia
  • email
  • StumbleUpon
  • Technorati
  • TwitThis
  • Slashdot

Using Python strings and dictionaries to create video embedding templates

All Pythonistas will recognize the % operator used to format strings:

print "%s world from %s!"%('hello', 'showmedo')

This is similar to its ‘C’ antecedent but, as you would expect and probably know, Python allows containers other than tuples (in the case containing the ‘hello’ and ’showmedo’ strings) to be used in the string formatting operation.

The use of a dictionary rather than tuple to format the string provides a very handy little templating mechanism, used recently in the addition of video embedding strings to the site.

We start with our text-file template, one long string with no pesky line-breaks:

<object width="%(width)d" height="%(height)d" id="%(id)s" data="http://showmedo.com/static/flowplayer/flowplayer-3.1.5.swf" type="application/x-shockwave-flash"><param name="m    ovie" value="http://showmedo.com/static/flowplayer/flowplayer-3.1.5.swf" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param  [...]   &quot;%(url)s&quot;,&quot;title&quot;:&quot;%(title)s&quot;,&quot;baseUrl&quot;:&quot;http://showmedo.com&quot;,&quot;autoPlay&quot;:false,&quot;autoBuffering&quot;:true}],    &quot;plugins&quot;:{&quot;controls&quot;:{&quot;url&quot;:&quot;http://showmedo.com/static/flowplayer/flowplayer.controls-3.1.5.swf&quot;,&quot;playlist&quot;:true}}}' /></object><br />

Note the variables scattered through the string starting with %(width)d. We’ll be using these, together with a Python dictionary, to create our video-specific embedding string. The method that does the legwork is shown below. It is a member of the ‘Video’ class and in this context ’self’ refers to the video instance in question:

def get_embed_string(self, width=425, height=344):
    t_dir = os.path.join(os.path.dirname(__file__),'templates/')
    embed_template = open(t_dir + 'embed_video.txt').read()
    embed_str = embed_template%dict(
                                  width=width,
                                  height=height,
                                  url=movieDirectory() + "%s"%self.get_flv_file_name()
                                  title=self.title,
                                  id='_%d'%self.id
                                  )
    return embed_str

We open the ‘embed_video.txt’ file (using a little Python os magic to establish a relative directory path) and read its contents, storing them in the ‘embed_template’ string. We then use the ‘%’ operator to assign values to the special (of the form %(foo)x) variables in the template, using a Python dictionary.

The resulting ‘embed_str’ string defines a flash

which can be used to embed Showmedo videos in blogs, articles and the like:

<object width="425" height="344" id="_672" data="http://showmedo.com/static/flowplayer/flowplayer-3.1.5.swf" type="application/x-shockwave-flash"><param name="movie" value="http://showmedo.com/static/flowplayer/flowplayer-3.1.5.swf" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="flashvars" value='config={&quot;key&quot;:&quot;#$824e5316466b69d76dc&quot;,&quot;logo&quot;:{&quot;url&quot;:&quot;http://showmedo.com/static/images/showmedo_logo_vp.png&quot;,&quot;fullscreenOnly&quot;:false,&quot;top&quot;:20,&quot;right&quot;:20,&quot;opacity&quot;:0.5,&quot;displayTime&quot;:0,&quot;linkUrl&quot;:&quot;http://showmedo.com&quot;},&quot;clip&quot;:{&quot;baseUrl&quot;:&quot;http://showmedo.com&quot;,&quot;autoPlay&quot;:false,&quot;autoBuffering&quot;:true},&quot;playlist&quot;:[{&quot;url&quot;:&quot;http://showmedovideos4.com/ShowMeDos/2450010.flv&quot;,&quot;title&quot;:&quot;Scientific Computing Using SAGE: Introduction&quot;,&quot;baseUrl&quot;:&quot;http://showmedo.com&quot;,&quot;autoPlay&quot;:false,&quot;autoBuffering&quot;:true}],&quot;plugins&quot;:{&quot;controls&quot;:{&quot;url&quot;:&quot;http://showmedo.com/static/flowplayer/flowplayer.controls-3.1.5.swf&quot;,&quot;playlist&quot;:true}}}' /></object>

Please share:
  • DZone
  • del.icio.us
  • Reddit
  • Furl
  • Ma.gnolia
  • email
  • StumbleUpon
  • Technorati
  • TwitThis
  • Slashdot

Python to the Rescue

Showmedo caught some flak from the recent Westhost (our main server-provider) troubles. Catch this pretty interesting thread for the gory details. We were actually pretty lucky as the main site remained standing (not the case for many others) but did manage to lose our cron daemon. As a result some restart scripts which check on the health of, among other things, the Python Turbogears process running the site died. Now this script isn’t needed too often <fingers crossed> but if the site falls down and we’re literally asleep then it avoids more than a minute or sos downtime. The crontab line in question looks like this:

*/1 * * * * source /.bashrc && /usr/local/bin/python2.5 /home/showmedo/showmedo/cron_start_showmedo.py > /var/log/cron_log

This line tells cron to run cron_start_showmedo.py every minute and the python process will check the health of Showmedo’s main process, our memcache and mysql servers and a few other things and restart them if anything has fallen over. Having lost cron, I needed a quick hack to perform these duties and found some very cool advice here at Slashdot. For various reasons the recommended bash-scripts seemed to be dying on me, and lacking the time or will to try debugging on fairly foreign turf, I hacked a little Python substitute to do much the same:

  1 import time
  2 import subprocess
  3
  4 while 1:
  5     subprocess.Popen(['/usr/local/bin/python2.5', '/home/showmedo/showmedo/cron_start_showmedo.py'])
  6     time.sleep(60)

Not pretty, but at five lines quick and succinct. The line 4 while loop sets things running in perpetuity, line 5 uses Python’s newish (and pretty powerful) subprocess module call the cron_start_showmedo.py module and line 6 takes a 60 second break before continuing the loop.

The script sat duty while I waited for our cron-daemon to return and I slept sounder in my bed as a result.

Please share:
  • DZone
  • del.icio.us
  • Reddit
  • Furl
  • Ma.gnolia
  • email
  • StumbleUpon
  • Technorati
  • TwitThis
  • Slashdot

A Little Downtime :(

Having to wear my sysadmin hat a little too often this week. I can honestly state that at least one of the bugs wasn’t my fault. At the moment our cron-jobs (timed unix processes) are failing to engage. So when the site falls down, there’s no handy cron-restart. Should be easy to track down and lots of fun :0

Please share:
  • DZone
  • del.icio.us
  • Reddit
  • Furl
  • Ma.gnolia
  • email
  • StumbleUpon
  • Technorati
  • TwitThis
  • Slashdot

New Video Published: PyConPads

Showmedo is proud to publish:[1829] PyConPads, a video-tutorial by John Graves
This video is part of the series PyCon 2010 Slides and Notes

Video showing how to remotely participate in the PyCon 2010 conference in Atlanta by watching the live note taking of some thoughtful and friendly participants using EtherPad. Go to https://twitter.com/pyconpads to find pads. (Author: John Graves from Auckland, New Zealand has other videos at http://bit.ly/openallure and an Open Source project http://openallureds.org )

Please share:
  • DZone
  • del.icio.us
  • Reddit
  • Furl
  • Ma.gnolia
  • email
  • StumbleUpon
  • Technorati
  • TwitThis
  • Slashdot

Testing Flowplayer embedding script

This little script, appearing below Showmedo’s video-boxes should allow easy embedding of the videos in blogs, articles and the like. As ever, avoid the WYSIWYG editors or the pristine HTML is likely to be horribly mangled.

If everything goes according to plan, you should be seeing a Showmedo video below (The first part of Chris Perkins’ rather wonderful series on Agile Development Tools in Python):

Please share:
  • DZone
  • del.icio.us
  • Reddit
  • Furl
  • Ma.gnolia
  • email
  • StumbleUpon
  • Technorati
  • TwitThis
  • Slashdot

New Video Published: Pygame tutorial – Installation

Showmedo is proud to publish:[1780] Pygame tutorial – Installation, a video-tutorial by Kenny X
This video is part of the series Using Pygame for Games

In this tutorial screencast you will learn how to install pygame on Linux, Mac, and Windows. I explain what you can find on http://pygame.org/download.shtml and how to find out if pygame wasn’t installed correctly.

Please share:
  • DZone
  • del.icio.us
  • Reddit
  • Furl
  • Ma.gnolia
  • email
  • StumbleUpon
  • Technorati
  • TwitThis
  • Slashdot

The font of knowledge

One of the nice things about the web and coding in general is the occasional little distraction thrown up in the space of toolsets, coding-practice and the like. Today those eddies in cyberspace have brought fonts to the fore, after a while in which I really hadn’t given it too much thought. But the fact is, for someone hacking code all day a good font, while maybe not as critical as a good editor (VIM btw), is important. In the same way as buying a good bed is important, you’ll have been staring at this font for a good few life years, when time comes to cash in your programming chips.  So is worth some consideration.

I generally go for a good, reliable mono-space default which is less likely to go horribly wrong (VIM sometime gets confused with widths) and is cross-platform and easy. Andale Mono tends to do the job, without feeling particularly classy. Anyway, the Consolas font crops up a lot in various programming contexts, e.g. Slashdot, Reddit, Stackoverflow.

So my curiosity has finally been piqued and I’m going to give it a try.  I certainly don’t have the balls to try a proportional font, even if readability is improved by 18% or so.  Here is today’s Slashdot thread, that undoubtedly gets to the heart of the issue.  And a nice post from Hive-Logic about the top ten programming fonts, which suggests I should give Inconsolata a go. Which I probably will.  The accompanying Reddit thread, that undoubtedly gets to the heart of the issue.

I’ll buzz back with an opinion when I’ve had time to absorb the changes. Exciting times…

Oh, and for linux bods such as myself, here’s a little hack to get them into VIM.

Please share:
  • DZone
  • del.icio.us
  • Reddit
  • Furl
  • Ma.gnolia
  • email
  • StumbleUpon
  • Technorati
  • TwitThis
  • Slashdot

Taming Flowplayer Pt. 1

Getting Flowplayer up and running on the site was not quite as smooth as the nice web-site and clean API suggested. I’ll be documenting the whole gory process in the ‘Building a Website (with Python, jquery etc..)’ series, but in the meantime I’ll mention the hideous hackery needed to get over the final hurdle that is Internet Explorer 7.

Somewhere along the line I was looking to pass a web-address, as part of an html overlay, into the flash-player. This has the standard form:

"http://showmedo.com/videotutorials/video?name=1470110&fromSeriesID=147"

Now if one tries to pass that string into a flashplayer, all hell will break loose. Some of those symbols are going to be interpreted as controls rather than nice, neutral characters. For this reason they need to be ‘escaped’, and Turbogears provides a nice little function “quote_plus”, via Python’s urllib, to do just this. The result is this rather scary looking string:

"http%3A%2F%2Fshowmedo.com%2Fvideotutorials%2Fvideo%3Fname%3D1470110%26fromSeriesID%3D147″

This string makes it through the flash-player in all the browsers we’re interested in at Showmedo and produces a clickable flash-overlay which, strangely enough, takes one through to the page in question. Er, except (and twas ever thus), IE7 (not 8 <sigh>), where, when all the escape-artistry has taken place, we find ourselves directed to this non-existent page:

"http://showmedo.com/http://showmedo.com/videotutorials/video?name=1470110&fromSeriesID=147"

which is a very poorly URL indeed.

Now I’m guessing that somewhere at the heart of this is the issue of absolute and relative web-addresses.  The second ‘http://…’ should be interpreted as an absolute address, but those unicode escape-characters have confused the system, making it treat the URL as relative, thus adding another root-url.

If I had time to explore this horror I would probably spend it doing something else, but in these time-starved times I just did a little bit of playing around and added a hack-function which undoes the ‘:’ and ‘/’ escapes of “quote_plus”, producing this:

"http://showmedo.com/videotutorials/video%3Fname%3D1470110%26fromSeriesID%3D147″

Which makes it through the browser minefield, but, as seems so often the case with this messed up web-development world, at the cost of some serious inelegance.

Please share:
  • DZone
  • del.icio.us
  • Reddit
  • Furl
  • Ma.gnolia
  • email
  • StumbleUpon
  • Technorati
  • TwitThis
  • Slashdot

Testing wordpress-twitter plugin

If this gets through, the soon to be awesomeness of this blog will be seeping through to twitter automatically. Or crashing something somewhere. Going to keep on writing to hit the 140 limit – and see what it does with that.

Please share:
  • DZone
  • del.icio.us
  • Reddit
  • Furl
  • Ma.gnolia
  • email
  • StumbleUpon
  • Technorati
  • TwitThis
  • Slashdot

New flash-player being debuted

It’s been much more work than anticipated (a definite screencast or three in there somewhere) but we’ve finally moved to the open-source flowplayer Chief benefits are:

  • much cleaner jquery-like API
  • far greater control over the video-player area. Which means…
  • innovative ways of directing users to new content and…
  • with luck much more interactivity with the video-player

p.s. the commenting on-site is getting a much-needed overhaul. With a bit of cookie-magic we should be able to get some dialogues going and vanquish those nasty anonymous comments (mea culpa).

 

Please share:
  • DZone
  • del.icio.us
  • Reddit
  • Furl
  • Ma.gnolia
  • email
  • StumbleUpon
  • Technorati
  • TwitThis
  • Slashdot

New Video Published: Closing remarks and using dictionaries effectively for scientific computing

Showmedo is proud to publish:[1452] Closing remarks and using dictionaries effectively for scientific computing, a video-tutorial by unpingco
This video is part of the series Scientific and parallel computing using IPython

In this final segment, we highlight concepts important for new scientific Python programmers, especially those coming from a Matlab environment. We discuss effective use of Python dictionaries and the timeit profiling module. We also discuss the defaultdict object for quick and easy database creation useful for keeping track of data in multiple parameter runs.

Please share:
  • DZone
  • del.icio.us
  • Reddit
  • Furl
  • Ma.gnolia
  • email
  • StumbleUpon
  • Technorati
  • TwitThis
  • Slashdot

New Video Published: Garbage Collection in Python – Part II -

Showmedo is proud to publish:[1451] Garbage Collection in Python – Part II -, a video-tutorial by gasto
This video is part of the series Python from zero.

How to instantiate the previously created class ( Foo ) is shown, using IDLE (the Integrated Development Environment , that comes with the standard CPython distribution). 2 referrers are created to understand that up until all referrers are deleted, the Python garbage collector may claim the associated instance (destruct it, deallocate it).

variables in Python are simple names associated to an instance (it could be a value). Examples are shown to enforce this concept.

Please share:
  • DZone
  • del.icio.us
  • Reddit
  • Furl
  • Ma.gnolia
  • email
  • StumbleUpon
  • Technorati
  • TwitThis
  • Slashdot

New Video Published: Help! Manuals, Forums and Mail lists

Showmedo is proud to publish:[1444] Help! Manuals, Forums and Mail lists, a video-tutorial by Ian Ozsvald
This video is part of the series OpenOffice Writer 3.1 for Microsoft Word users

For help, the first place to start is TutorialsForOpenOffice. The official documentation is complete but a bit heavy.

OpenOffice’s Support section gives many links which include free material, courses and books.

If you have questions the most active forum seems to be the independent OpenOffice Forum and although a little bit less active, the official forum should be your other port of call.

If you prefer, there are many mailing lists.

Please share:
  • DZone
  • del.icio.us
  • Reddit
  • Furl
  • Ma.gnolia
  • email
  • StumbleUpon
  • Technorati
  • TwitThis
  • Slashdot

New Video Published: Working with an OpenDocument Format (.odt) file

Showmedo is proud to publish:[1443] Working with an OpenDocument Format (.odt) file, a video-tutorial by Ian Ozsvald
This video is part of the series OpenOffice Writer 3.1 for Microsoft Word users

Now let’s look at a native document – OpenOffice works with .odt files (OpenDocument Text). Normally these are zipped structures that contain xml and binary data – here we look at what’s inside an .odt file.
If you’re curious, you can poke inside your own .odt files using my instructions.
You’ll find more tips at at 3monkeyweb.

Please share:
  • DZone
  • del.icio.us
  • Reddit
  • Furl
  • Ma.gnolia
  • email
  • StumbleUpon
  • Technorati
  • TwitThis
  • Slashdot

New Video Published: Working with Word (.doc) files

Showmedo is proud to publish:[1442] Working with Word (.doc) files, a video-tutorial by Ian Ozsvald
This video is part of the series OpenOffice Writer 3.1 for Microsoft Word users

An early hurdle when switching to OpenOffice will be the question of whether you can still share documents with MS Office users. Of course you can! Here we edit a document in both MS Word 2003 and OpenOffice 3.1 Writer to show that all formatting is preserved.

You can read a bit more about MS Office and OpenOffice.

Please share:
  • DZone
  • del.icio.us
  • Reddit
  • Furl
  • Ma.gnolia
  • email
  • StumbleUpon
  • Technorati
  • TwitThis
  • Slashdot

New Video Published: Installing OpenOffice 3.1 on Windows XP

Showmedo is proud to publish:[1441] Installing OpenOffice 3.1 on Windows XP (Free), a video-tutorial by Ian Ozsvald
This video is part of the series OpenOffice Writer 3.1 for Microsoft Word users

In just over 2 minutes we run you through the installation of OpenOffice 3.1 on Windows XP. We also show you how you can download a version of OpenOffice for Windows, Mac or Linux in different languages.
Visit OpenOffice.org to get started.

Please share:
  • DZone
  • del.icio.us
  • Reddit
  • Furl
  • Ma.gnolia
  • email
  • StumbleUpon
  • Technorati
  • TwitThis
  • Slashdot

New Video Published: Series Overview in 4 minutes (OpenOffice 3.1 for Word users)

Showmedo is proud to publish:[1440] Series Overview in 4 minutes (OpenOffice 3.1 for Word users) (Free), a video-tutorial by Ian Ozsvald
This video is part of the series OpenOffice Writer 3.1 for Microsoft Word users

In this series we help you move from Microsoft Word (2003 is our example) to OpenOffice 3.1. We show you how to use both Word and Office to edit the same document and how to do all the usual functions in OpenOffice, as well as where to go to get your questions answered.
Visit OpenOffice.org to get started, see the live download counter and read more background at WikiPedia.

Please share:
  • DZone
  • del.icio.us
  • Reddit
  • Furl
  • Ma.gnolia
  • email
  • StumbleUpon
  • Technorati
  • TwitThis
  • Slashdot

New Video Published: Case Study: Robust Regression Methods Using Python and Parallel IPython

Showmedo is proud to publish:[1439] Case Study: Robust Regression Methods Using Python and Parallel IPython, a video-tutorial by unpingco
This video is part of the series Scientific and parallel computing using IPython

In this segment, we continue with the case study of robust regression methods, but here we show how to use generators and the parallel computing features of IPython to accelerate the computation.

Please share:
  • DZone
  • del.icio.us
  • Reddit
  • Furl
  • Ma.gnolia
  • email
  • StumbleUpon
  • Technorati
  • TwitThis
  • Slashdot