Posts Tagged ‘Beamer’

The regular readers might have noticed that there weren’t any weekly summaries the last two weeks, and the reason for this was a series of rather fortunate events which conspired to leave me with very little time or energy to compose a summary in.

Very shortly summarized, I have gotten a job at a pretty cool consulting company, and Wednesday (7th, week before last) was my first day at my assignment, quickly followed by an introduction day at my company, and a long weekend (Friday–Monday) conference trip to Barcelona.

So, a great big thank you to CoyPu, pesa, hesa, jonaso and razor for all your help in both acquiring the job, and keeping my spirits up. I really appreciate it.

There really isn’t much more to say, the previous week was filled with reading GPRS documentation and figuring out how an SGSN fits into it all, and I kindof suspect that the coming weeks will be equally devoid of cool stuff I’ve found, while I get myself settled at work.

hook’s suggestion to check out ConTeXt has begun rooting itself as I feel myself more and more drawn to exploring it. And I also believe the time have come for me to learn the LaTeX Beamer class in ernest.

To that end I have actually located what looks to be a rather good resource.

I have also begun seriously considering starting encrypting (parts of) my home partition, and have started looking at EncFS for that purpose.

pesa had some good ideas for how to integrate this into an auto-starting process. I’ll have to experiment a bit with that.

Finally, another tip from pesa was to replace ~/.Xdefaults with ~/.Xresources and in .xinitrc execute xrdb -m ~/.Xresources

Although there are free (as in freedom) “office suites” (LibreOffice) I don’t care much for them. Having said that, I do have LibreOffice installed, but that is out of the need to be able to read attachments people send me.

Instead, I have collected a few applications which perform similar tasks for me:

Text

For text editing, vim obviously plays a part, although for writing (not editing) longer chunks of text I use PyRoom.

So what I end up with are plaintext files, which is not always the optimal option presentationally. This is where LaTeX comes into play.

All of a sudden, I have snazzy-looking PDFs instead of plaintext

Spreadsheets

Historically I haven’t used spreadsheets all that much, but as of late that has started to change. Calc (OO.org/LibreOffice) did the trick, so did gnumeric, but I like stuff that is light on resources. Lighter than gnumeric…

And that is where sc comes into play. It has its shortcomings, for instance, when saving to csv it saves the current value of any formula, instead of the formula itself.

Presentations

There is a LaTeX class called Beamer, which, when compiled, creates a PDF suitable for presentations.

Of course, depending on the complexity of the presentation, a simple PDF (as created by LaTeX without Beamer) could do the trick, but Beamer adds elegance to the simplicity of an ordinary PDF.

There are two applications which comes to mind for presenting a PDF-based presentation: Evince and Impress!ve (which shouldn’t be confused with OO.org Impress.

Evince is an ordinary PDF-viewer, and Impress!ve is a Python-powered presentation tool with support for OpenGL and some rather nice effects and features.

Database

I don’t particularly like Access, and I have never tried OO.org’s Base, but the idea of having a database contained in a single file always intrigued me, and for smaller applications it kind of begins to make sense.

Now, if we take that idea, of a database contained in a file, with a small library through which you interact with the database file, and we also think “lightweight”, we… well at least I did, end up with SQLite3.

The SQLite3 library has a CLI which means that even my shell scripts can interact with the database. And that is pretty frakkin cool.

Calculator

Finally, what office suite would be complete without a calculator?

True, I do most of my calculations in a nearby ipython-terminal, but ever since I discovered qalculate, and the CLI version qalc, it has stuck with me.

Why? Because you can ask it to convert between currencies like this:

$ qalc \$200 to SEK

Obviously this is only useful if you first let it fetch up to date exchange-rates from the web, but there is a setting for allowing it to do that automatically at the beginning of every program start.

And then I came along this post which got me thinking about what software I ended up using towards the end of my bachelors. Or the software I have learned of since, but wish I’d known about earlier. I began to write a comment to her post, but realized that it would be too long, so I write here instead. All credit to Hazel though, since without her post I wouldn’t have been inspired to write this one.

My list, as compared to Hazels, will not be as well-rounded, it won’t necessarily fit every student the way her list do. Also, the software I list will only be guaranteed to work in GNU/Linux, as that is what I used in the final semesters, and have continued to use since.

First of all, a text editor. It doesn’t really matter which, just evaluate a bunch until you find one you feel comfortable with. Once you have found “the one” become intimate with it. Become a frakking Jedi-master at wielding it. I’m still a padawan-level user of Vim, but I’m getting there.

I say the same about web browsers, mail clients and instant messaging clients. Find a good one, learn as much as you can about it, and use it effectively. Firefox, Thunderbird and Pidgin are my preferred tools.

A bug-tracker, although often web based creating a need for a web server, can often provide more “good stuff” than just tracking bugs. Stuff like statistics, or, if you think outside the box you’d be able to track things other than bugs, which I guess it was issue-trackers does. Some of these also include a wiki-system, which makes establishing a project-specific knowledge-base kindof easy. In the one university project where we used such a system (and where I realized its potential) we used Trac.

A blogging-system with an RSS-feed capable of being filtered on tags or categories could be used to distribute status updates to other members of a group. That I’m using WordPress should be fairly obvious to all.

Use a version control system wherever and whenever possible. With the next two suggestions on the list, “wherever” will be a lot more commonplace than one might first believe, even for non-programmers. At the university we had access to SVN-servers, and also tried Mercurial, a distributed vcs. Mercurial stuck with me ever since.

From generic suggestions, let’s go specific.

I could encourage you to check out markup languages such as reStructuredText or Markdown, to find one which suits you best and to run with it. And since I’ve now written the terms you’d need to Google, you could do that, but I’ll simply recommend LaTeX. The reason for markup languages in general, and LaTeX specifically is that you can then store your information in one plaintext format (which makes it easy to manage in version control) and can then transform it to a slew of other formats as needed.

Most of the time we needed to hand in PDFs. LaTeX excels in that and manages all the typesetting stuff and (obvious) formatting. Which leaves you with more time to focus on the content. One could also either extend LaTeX with Beamer, to create presentations, or simply generate a PDF and run Impress!ve.

For diagrams, graphs and flowcharts or representations of state-machines, Graphviz would be my recommended way to go. Again using plaintext to control the content, again with the benefits of version control. Inkscape saves files in the SVG format (again, plaintext) which might be usable (especially since it can also save files as both PS and PDF)

If you need graphical representations of statistical data or other plots, matplotlib could be the way to go.

I personally don’t like managing things, or management-related stuff, but lately I have been haunted by the feeling that if I used management tools, even if I would only be managing myself and my pet projects, I could be more organized and efficient. So I have started looking at TaskJuggler. It is similar to Microsoft Project, with the largest difference being that… you guessed it, you code the project plan ;D. Plaintext yet again. And then you compile the plan and TaskJuggler attempts to verify that no resources have been double-booked.

Considering each piece in this list on their own, it might seem like a waste of time to exchange one software with another. I do find each of these softwares impressive in and on their own, but it is when they are put together, when all their strengths are combined, that you tend to get the most out of it.

The all plaintext approach I have tried, both in groupwork at the university, and later on my own, work rather well. That so many of the softwares on the list can be used to communicate and transfer information between parties is also intentional as without communication the chance of a successful project outcome diminish rapidly.

The last (bonus?) item on the list would be to recommend learning, at least superficially, a programming language which you could hack together small scripts with. Something which you could use to “glue” together the other parts. I adore Python, and many of the softwares listed above have python-bindings ready to use. Perl, Ruby and others, which elude me right now, would undoubtedly work equally well or better, but as with the text editor, pick a language you feel comfortable with, and rock on.