Posts Tagged ‘Firefox’

My Software Stack 2011 edition

Saturday, December 31st, 2011

I realize that I haven’t written my customary “software stack” post for this year yet. But hey, from where I’m sitting, I still have … 36 minutes to spare ;)

I’ll be using the same categories as last year; system, communications, web, development, office suite, server, organization, and entertainment.

System

The OS of choice is still Archlinux, my window manager is still wmii, my terminal emulator is rxvt-unicode, upgraded by also installing urxvt-tabbedex.

My shell is still bash, my cron daemon is still fcron, and my network manager is wicd.

To this configuration I’ve added the terminal multiplexer tmux, and have lately found out just how useful mc can be. Oh, and qmv from the renameutils package is now a given part of the stack.

Communications

Not much change here, Thunderbird for email, Pidgin for instant messaging, irssi for IRC.

Heybuddy has been replaced by identicurse as my micro-blogging (identi.ca) client. Heybuddy is very nice, but I can use identicurse from the commandline, and it has vim-like bindings.

For Pidgin I use OTR to encrypt conversations. For Thunderbird I use the enigmail addon along with GnuPG.

This means that Thunderbird still hasn’t been replaced by the “mutt-stack” (mutt, msmtp, offlineimap and mairix) and this is mostly due to me not having the energy to learn how to configure mutt.

I also considered trying to replace Pidgin with irssi and bitlbee but Pidgin + OTR works so well, and I have no idea about how well OTR works with bitlbee/irssi (well, actually, I’ve found irssi + OTR to be flaky at best.

Web

Not much changed here either, Firefox dominates, and I haven’t looked further into uzbl although that is still on the TODO list, for some day.

I do some times also use w3m, elinks, wget, curl and perl-libwww.

My Firefox is customized with NoScript, RequestPolicy, some other stuff, and Pentadactyl.

Privoxy is nowadays also part of the loadout, to filter out ads and other undesirable web “resources”.

Development

In this category there has actually been some changes:

  • gvim has been completely dropped
  • eclipse has been dropped, using vim instead
  • mercurial has been replaced by git

Thanks in no small part to my job, I have gotten more intimate knowledge of awk and expect, as well as beginning to learn Perl.

I still do some Python hacking, a whole lot of shell scripting, and for many of these hacks, SQLite is a faithful companion.

Doh! I completely forgot that I’ve been dabbling around with Erlang as well, and that mscgen has been immensely helpful in helping me visualize communication paths between various modules.

“Office suite”

I still use LaTeX for PDF creation (sorry hook, still haven’t gotten around to checking out ConTeXt), I haven’t really used sc at all, it was just too hard to learn the controls, and I had too few spreadsheets in need of creating. I use qalculate almost on a weekly basis, but for shell scripts I’ve started using bc instead.

A potential replacement for sc could be teapot, but again, I usually don’t create spreadsheets…

Server

Since I’ve dropped mercurial, and since the mercurial-server package suddenly stopped working after a system update, I couldn’t be bothered to fix it, and it is now dropped.

screen and irssi is of course always a winning combination.

nginx and uwsgi has not been used to any extent, I haven’t tried setting up a VPN service, but I have a couple of ideas for the coming year (mumble, some VPN service, some nginx + Python/Perl thingies, bitlbee) and maybe replace the Ubuntu installation with Debian.

Organization

I still use both vimwiki and vim outliner, and my Important Dates Notifier script.

Still no TaskJuggler, and I haven’t gotten much use out of abook.

remind has completely replaced when, while I haven’t gotten any use what so ever out of wyrd.

Entertainment

For consuming stuff I use evince (PDF), mplayer (video), while for music, moc has had to step down from the throne, to leave place for mpd and ncmpcpp.

eog along with gthumb (replacing geeqie) handles viewing images.

For manipulation/creation needs I use LaTeX, or possibly Scribus, ffmpeg, audacity, imagemagick, inkscape, and gimp.

Bonus: Security

I thought I’d add another category, security, since I finally have something worthwhile to report here.

I’ve begun encrypting selected parts of my hard drive (mostly my email directory) using EncFS, and I use my passtore script for password management.

And sometimes (this was mostly relevant for when debugging passtore after having begun actively using it) when I have a sensitive file which I for a session need to store on the hard drive, in clear text, I use quixand to create an encrypted directory with a session key only stored in RAM. So once the session has ended, there is little chance of retrieving the key and decrypting the encrypted directory.

Ending notes

That’s about it. Some new stuff, mostly old stuff, only a few things getting kicked off the list. My stack is pretty stable for now. I wonder what cool stuff I will find in 2012 :D

:wq

2011w35

Sunday, September 4th, 2011

I guess the first big thing to happen this week, which I’d be remiss if I didn’t mention it, is that I got a job :D

passtore

This Tuesday I also awoke with the idea that I really should, somehow make it easy for a user to sign the configuration file of passtore. And of course to check said signature as well.

What I want to achieve with that is to engineer out the flaw in security which would appear if an aggressor got hands on the system and added his/her own key id to the list of recipients in the configuration file.

I’ll have to think about that some more.

chattr +i

I don’t particularly like flash. Sadly a great big chunk of the Internet becomes useless without it, and although I should take a firmer stand against flash I have the flashplugin for Firefox installed. One of the really nasty things about flash is those persistent super-cookies which can be set, and quite frankly, Firefox has become a bit heavy lately, so I have been looking around for ways to cut back on add-ons.

I am currently trying out Privoxy as a standalone ad-blocker, and today I got the idea of trying to replace the “Better Privacy” add-on with some file-system hacking instead. In short “Better Privacy” works by trying to detect when a flash super-cookie has been set, and remove it.

This cookie is stored in a file, locally on the file-system. So I did a little thinking. In my home directory there are two hidden directories: .adobe and .macromedia, both containing a directory named Flash_player. Inside one of those (I guess it depends on the version of flashplayer which directory is the relevant one) flash stores these cookies.

So my first idea was simply to delete those two directories. Which of course is silly. The relevant one will just be recreated, at the latest upon the next Firefox restart. So that wouldn’t work.

I could of course instruct fsniper or incron to watch those two directories and have them pounce any newly created content within with an rm -rf command, and although that would work, I don’t particularly like scripted events which includes an rm command. Also I’d have to divert some system resources to that (yes, there are plenty of resources to go around, that’s beside the point) activity, and that wasn’t to my liking either.

Finally it dawned on me. If I removed the directories, they would just respawn, so I’d need to keep them there as placeholders, and make them non-writeable, and really immutable. That way, any time flash would try to get cute, it would hit a brick wall.

So what I ended up doing was:

  1. Purge any and all contents inside .adobe/ and .macromedia/
  2. chmod 0500 ./{.adobe,.macromedia}
  3. sudo chattr +i ./{.adobe,.macromedia}

So now the owner (me) can only read/list the contents of the directories (not modify them) and with chattr +i they are immutable, requiring root privileges to change those permissions.

Your move flash…

Links

Schneier on Security: The Efficacy of Post-9/11 Counterterrorism

MITnews: Killing a cancer cell from the inside out — although I’d worry about mutation, or weaponisation…

Firefox 3.6 and tab opening order

Sunday, January 24th, 2010

I finally upgraded to Firefox 3.6 and it has been as smooth a transition as I have come to expect from Mozilla. The one small thing that first left me confused and finally prompted me to go on a configuration trek was how Firefox now handles opening of tabs.

It is probably a pretty intuitive way of working with tabs, having related tabs (i.e. ones opened from links in a present page) open and sit right next to the present page tab, instead of appearing at the end of the tab list (waaaaay off to the right).

However, I’ve grown accustomed to it and, since I use vimperator, g$ has become second nature to me, instantly bringing me to the last tab in the list.

A friend also upgraded and came to the same conclusion, so I used my google-fu to find this discussion which quickly yielded the answer:

First order of business: Head over toabout:config, then search for browser.tabs.insertRelatedAfterCurrent and set it to false.

I absolutely love Firefox for its configurability. You win again Mozilla!

Vimperator

Wednesday, October 7th, 2009

Firefox is a great piece of software. Vim is also a great piece of software. What would happen if you were to combine the two? A web-browser controlled by Vim bindings. And that’s what the Vimperator add-on does.

And it does it well almost everywhere. I still need to use a mouse in WordPress at times, and Vimperator (it is probably PEBKAC) isn’t really able to alleviate that problem.

But with the exception of WordPress, and partially Twitter (which use some AJAX thingy for favs and replies), Vimperator just works and lets me surf without using the pain in my ass bastard touchpad from hell. And that brightens my day tremendously :)

The funny thing is that installing Vimperator made me learn more Vim commands (a couple of questions over at StackOverflow.com helped as well, expect a post containing even more Vim magic).

I feel I must document a couple of things which took a while to figure out, or that improves upon Vimperator further:

  • To hide/show the StumbleUpon toolbar (key mnemonic: <Ctrl+F11>) first hit <Ctrl+z> which temporarily (for the next keypress) disables Vimperator key intercepting (handing it back to Firefox)
  • To open the preferences window use “:tab preferences”
  • To open the bookmark window use “:dialog places”
  • Not really a Vimperator tweak, using keyword searches in Firefox makes Vimperator more awesome
  • Finally, for NoScript users, to control NoScript from Vimperator, go here, and follow the instructions

Finally, I must tell you a little story about when I went to Wikipedia, ended up with some 50+ open tabs which I all wanted to bookmark and then close.

One would think that this would be a labor-intensive manual task. Not so! Vimperator has the record macro functionality from Vim. A simple “qq:bmarkdq” followed by “@q” and then one keypress (“.”) for every tab, made short work of those tabs.

“qq:bmarkdq” should be read as “record macro, save into buffer q, bookmark current tab, close current tab, end recording”. The @q simply ran the macro once, and the fullstop repeats the last issued command. VERY COOL!

My software stack

Friday, May 29th, 2009

A week or so ago I stumbled across this blog, which went almost instantly into my RSS feed, due not only to the name of a post which cracks me up (yes, I know my humor is off ;P) but also to the posts I found really interesting.

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.

Thoughts? Questions?

Update: Fixed broken link

I think the wrong question is being asked

Tuesday, March 10th, 2009

Every new year is proclaimed “the year of GNU/Linux”. For me, this has been reality for the last three years. But every time you hear someone say that, someone else will promptly drop the question “is GNU/Linux ready for the desktop?”

I now, since a couple of nights ago, believe that to be the wrong question.  It is a relevant question to be sure, and for a lot of people, including me, the answer is a resounding “YES!”

But a couple of nights ago I got a call from an old classmate. She had computer trouble. Her son had caused a minor accident, with the result that the webpage she was currently browsing now showed up at 50% scale. Her son had accidentally managed to have Firefox zoom out, making the text tiny.

Before presenting what I believe to “the right question”, let me just first make it perfectly clear, my classmate is not stupid in any way, she’s simply just an average computer user which, for one reason or another, doesn’t stray out of her usage patterns. I.e. she never explores the features of her system or applications. That is fine, not passing judgement, just making an observation. If anything she has proven to be an attentive “student” at those times she has come to me for help.

But immediately after trying the most basic of things (restarting the application) and realizing that the problem persisted, her next thought was “oh well, I guess I’ll have to stop using that website”. I am glad she had a change of heart, and called me instead, since it was an easy fix. But now, presenting my very own question:

“Is the user ready for the desktop?”

I, obviously, think this was an easy fix. Her knowledge, or lack thereof, made her second reaction be surrender. “If at first you don’t succeed… surrender?!” Obviously, for her this wasn’t an easy fix. Now I don’t have any statistics on the subject, but small things like this seem to happen all over my circle of acquaintances (ok, it doesn’t happen nearly as often in my group of friends from ITU, but sometimes is actually happens there as well). Either I have a nack for befriending computer illiterate people, or … well frankly, users aren’t ready for desktop computers.

Firefox <3

Friday, October 24th, 2008

I will admit, there are problems with Firefox. There are many a site with image “slideshows” where each image is the link to the next page etc. Saving an image from such a site can be a real hassle, because some of the time when I right-click, Firefox will make a decision about what context option I want to have, without me ever getting the chance to chose.

So instead of chosing “save image” (which is what I want), it will activate “view image”, or “send image to” (and this option is really too fracking close to “save image” even for manual use), or dTa, or “block images from …”. Basically, all but the action I really want it to take.

As of yet, I have been unable in finding a fix for this, but it is seriously beginning to irritate the shit out of me.

Which brings me to another “flaw”, which I indeed have been able to do away with:

I use my middle-button (mouse) to open links into new tabs. Sometimes I manage to middle-click outside the link, which prompts Firefox to open whatever was in the clipboard memory? into a new tab. Usually without great results (since that is not what I wanted to do)

There is however a fix for this, if you tweak one value in about:config; Set middlemouse.contentLoadURL to false.

Oh yeah, only a couple of hours left to FSCONS. :D

\\o o// \o/ \\o \\o \o/ o// \\o o// \\o \o/

Firefox + University WLAN + Offline mode = not so happy camper

Wednesday, September 17th, 2008

Back when I was studying Software Engineering and Management, we had one “classroom”, it was nice, I being an early bird always got a wired connection (limited amount of LAN sockets in the classroom). Nowadays, taking single courses, means having the lecture in any lecture hall which is free at the time of the lecture (it isn’t that bad, the halls are booked in advance) however, they aren’t like the classrooms we used to have. No LAN for anyone… ok so this is not a problem anymore (on my old Acer, with a Broadcom WiFi card, it would have presented an irritating challenge at best) but nowadays, WiFi is good. Except for one little irritating thing:

The university has (of course) restricted access to the network, so that only students and teachers can use it. Sure it would be nice if they offered it free for anyone but that’s not likely to happen anytime soon. However, that is not the reason for my irritation. The reason is that Firefox likes to try to discover the network. Failing to find a LAN, it goes for WiFi, and since Firefox is a slow ass beast to start up, I do that about the same time as I run the script which tells the system to start a WiFi connection to the university network.

Long story short, every frakking time I do this procedure, Firefox plunges itself into offline mode. I for one detests it for doing so. So I looked around the net (googled) and found this, and specifically this about:config hack:

Enter about:config, type browser.offline-apps.notify and set it to false.

Will it work? I have no idea yet, but I am keeping my fingers crossed.

Update: No, for me, the about:config hack did NOT work. So now I am trying the addon also provided in the thread.

Update 2: Failure strikes again… the addon… it does nothing for me.

Random thoughts of a sleep-deprived mind…

Monday, January 28th, 2008

Couldn’t sleep last night, went to bed around 0100 hours (a little late, but I figured I’d manage with 5 hours worth of sleep, as I always try to trick myself) and just tossed and turned until I finally gave up trying to sleep around 0200, and sat down in front of the computer again, watched a movie… or two… while researching some on Lisp and Perl.

This continued until about 0500 when I finally started to feel so sleepy that I surely couldn’t stay awake even if I wanted to (which I didn’t). Oh how wrong I was. A quarter to six I was beginning to drift out of consciousness and into dreamland, but then I realized the futility and just lay there awaiting the alarm from my cellphone.

Great way to start a new day… really… not. So now I’m in school feeling pretty shitty, tired, queasy and freezing. So why would I want to share with you any thought currently in my mind? Good question, I sure as frack don’t have an answer (btw, may the Lords of Cobol make the writers strike end soon so that we can have season 4), but for what it’s worth (probably not much) here goes:

On a more serious note (not that Python, Perl, Erlang, Firefox, sshfs and rsync isn’t serious business) it gladdens my heart to see that more and more governments around the world are embracing the Open Document Format. Hopefully this more than anything will put an end to the madness that is Microsoft OOXML.

Over and out