🔗 A story of violence and gender
[Even though the title foretells its content, I’ve been advised to add a trigger warning at the top of this post. It doesn’t hurt to be careful.]
It’s been a few days that I’ve been meaning to write this. I even discussed with a friend two days ago about when would be a good time. Emma Watson’s speech on gender equality yesterday (transcript and video) inspired me to go for it: “if not now, when?”.
I want to touch a delicate subject, which she brought up masterfully: how gender inequality works on men.
The story of any oppression is that of three roles: a mass of oppresed ones; a few who oppress them; and a mass who turns a blind eye, who are oppressors by proxy. This is the story of racism, of religious discrimination, and so on. Ms. Watson’s speech shines a light that the issue of gender equality is even more complex than that. Men are hurting women, and also hurting themselves in the process.
What made me want to write this was something that happened last week. I was with two friends, a guy and a girl, at a bar in a foreign country. (It was in Russia, but it could have been anywhere.) A disgusting scene happened. I didn’t see it firsthand, but the girl who was with us was looking straight at it, so I’ll reproduce her report:
At one point the guy who seemed to be the manager started to harass the waitress, just like that, in front of anyone. She froze. And so did I. She stood still in front of the counter while the man held her from behind rubbing his penis violently against her ass. I watched, petrified. I zoned out of my friends’ conversation. The pleasant look in the girl’s face was gone. After he let her go, I tried to approach her in another corner of the bar. The manager went to annoy two other women who were customers. One of them pulled her arm so he’d let her go. And they stayed in the bar! In the corner of the bar I asked the waitress [using Google Translator] if he was her boyfriend and if she was okay. She didn’t speak English, didn’t answer and just said “it’s okay, it’s okay.”
Of course it was not okay. My friend shared her concern with us. Dismayed as we were with it, our only reaction was to express our impotence with the situation. The reflex instinct of being part of “the mass who turns a blind eye”. We think ourselves better because we don’t do such things (and we probably are). Still, being “oppressors by proxy” is not a place we’re proud to be. Our sense of impotence, however, was very much real.
We said “What can we do?”. She said, “I don’t know, if he does it again I’ll make a scene in this place! A scandal!” Then I said “Women have that option.” I didn’t mean to sound rude, but that’s true. The way things work with men is that if we were to confront the (shirtless, tattooed, long-haired) guy, things would soon go violent. We told our friend: “What can we do? Get into a fist fight in a foreign country?” Her reaction was “Oh, men.”
This story highlights a less-discussed aspect in gender inequality. The prevailing rule of male violence serves not only to harm women, but also to stop other men from taking action. My male friend and I, we both knew we were under an unspoken law that if we were to do something, things would get violent.
(A flashback: The only time in my adult life that I got in a fist fight was years ago, also in Eastern Europe. I was walking down a street with a group of friends. Some guys across the street started yelling at the only woman in our group. She yelled back. They crossed the street and went for her. We stood in the way and it quickly got ugly. I think eventually someone shouted “police” and they ran away. One thing that strikes me from that story is that I’ve rarely retold it, and I’ve never seen any of my friends telling it. Men get ashamed of getting in a fight like that, even if it was for standing up for a woman. The other guys probably just made jokes about beating up some foreigners the next day.)
Back to last week’s story, we all felt the waitress really just meant “please don’t get into this”. Still, I wanted to think of something to do. If were we in our home country, we’d know how to report the manager in a safe way. We didn’t know if he owned the place, if anything we did would just get her fired, or worse. All these things crossed my mind.
We evidently didn’t want to stay in that place and give them any more money, so we spoke of leaving. We were waiting for a local friend, and I could just message him saying we had to leave. Then I told my friend “No, let’s wait for my friend and then we’ll explain him what happened and ask him to talk to her in Russian.” She replied, “Good idea.”
As soon as he arrived I told him the story, and that we wanted him to talk to the waitress about what happened before leaving. He seemed surprised; both with what happened and with our seriousness about it. We called her to our table. My Russian friend talked to her, and she told him that he was her boss, not a boyfriend, that he was “like that” but that it was “okay”. Before leaving the waitress went to my friend and repeated to her “it’s okay, it’s okay”, but her sad look said otherwise.
Even if she did think that enduring that guy was “just part of the job”, I hope that our concern reminded her that no, it’s not okay. And if she already felt it’s not okay (as I think she did), now she knows she’s not alone in thinking that, and that she’s not invisible. I’m very proud of my friend for reaching out for her, and shaking us up to do the same. The next day I had a long conversation about it in the airplane with my male friend who was there. These things matter.
We can’t fight gender inequality only by having women to stand up to men. Men have to stand up against inequality as well. And by “standing up” I don’t mean picking up fights. That is only reinforcing the gender stereotype. It’s a matter of redefining gender roles. I feel that society is slowly making progress (though clearly not at the same pace everywhere), but it’s a struggle into which both women and men need to take part. We men have to learn how.
🔗 That constant background noise in the head
I just came to an interesting realization. In this World Cup, since I’m watching so many games in Globo TV, Brazil’s main network, a side effect is that it’s been a long time that I didn’t watch so many commercial breaks, and so many times the same ads. Each ad individually doesn’t bother me that much. Many of them are even fun. But realizing this constant repetition — with its jingles and slogans echoing in my head — is very uncomfortable.
That got me thinking now of people who watch, for example, telenovelas (or series on network TV), or the same nightly news, every day, six days a week… watching the same commercials. It’s only now that I got unused to watch commercials, that I realize the dimension of this constant background noise in the mind that they are.
Whenever I see someone browsing the internet in a computer without an ad-blocker installed, I have this same shock. I’m reminded of what the internet actually looks like. People are apparently “anesthesized” to watch sites full of ads. When I point this out to them and I recommend an ad-blocker, they say they “don’t really notice” or that it “doesn’t bother” them. But I personally doubt it has no effect (or else a company like Google would be multibillionare based on ads, as it is).
This all makes me, at the same time, a bit happy for myself, as I realize that I found a way to live free from some of these sources of mental noise, but sad for remembering that this noise is so widespread.
🔗 Migrating my projects from SourceForge+Subversion to Github+Git
It’s been a while that I’ve been using Git comfortably — even though I still get stumped now and then, the workflow is much better than Subversion. I do finer grained commits with ease and I’m no longer afraid of making branches. Still, some projects of mine are still hosted in svn servers, mostly due to inertia and because they’re mostly single-person projects with the occasional patch and bug report but not much collaboration. For a more “social” project such as LuaRocks, git and Github have proven to be very useful tools.
Farewell to SourceForge
This, however, was the push I needed to move my projects away from SourceForge. From gimp.org:
In the past few months, we have received some complaints about the site where the GIMP installers for the Microsoft Windows platforms are hosted.
SourceForge, once a useful and trustworthy place to develop and host FLOSS applications, has faced a problem with the ads they allow on their sites - the green “Download here” buttons that appear on many, many adds leading to all kinds of unwanted utilities have been spotted there as well.
The tipping point was the introduction of their own SourceForge Installer software, which bundles third-party offers with Free Software packages. We do not want to support this kind of behavior, and have thus decided to abandon SourceForge.
From now on, Jernej Simončič, who provides the installer packages, uploads them to our FTP directly, and from there they will be distributed automatically to our mirrors. Please check Downloads page for updated information. http://gimp-win.sourceforge.net will remain active for the time being and direct users to the new download locations.
This saddens me a lot. I’ve been a SourceForge user for over 13 years. Having my first project there with a “.sourceforge.net” URL was a moment of pride; I felt I was becoming a free software developer “for real”, seeing my code there along with all those other projects I relied on daily, such as GIMP.
htop, in particular, has lived a beautiful life in SourceForge:

It blows my mind to think that these are direct downloads of the source code only. I assume the vast majority of users install htop running the distro package manager (apt-get, yum, etc.) but I have absolutely no way to estimate how many times this program has been installed. And that’s not only okay, it’s beautiful: it’s the nature of free software, the actual freedom, at work. There is no tight grip on users from a central authority, the code is roaming free in what is essentially a network of solidarity. I’ve certainly benefited from this network much more than I’ve contributed to it, but I’m happy to give a small part.

Another achievement I’m very proud of: a perfect 5-star rating score for htop. Surely not that many reviews when compared to really big projects, but it’s noteworthy to me at least, and I’m thankful to everyone who rated.
So, thanks for everything SourceForge, but it looks like it’s time to move on.
Say hello to Github, htop
I’ve already got a bunch of projects in Github so this change should not be traumatic.
I’m converting the repositories to Github and moving the website to my own domain. I’ve started with dit, which is a low-profile project, and everything went smoothly. So it’s time to do the same with htop.
The process is straightforward:
- Here are the Instructions for importing from Subversion from Github
- They recommend using svn2git. It took me a few tries to get the conversion perfect. I recommend taking a look at the generated repository with
gitkand creating a file called~/.svn2git/authorscontaining aliases matching your svn usernames with Github equivalents.My authors file looks like this:
loderunner = Hisham Muhammad <hisham@gobolinux.org> hisham = Hisham Muhammad <hisham@gobolinux.org>
And the command-line for svn2git:
svn2git svn://svn.code.sf.net/p/htop/code/
- The next step was to create a new Github repository. I did that through their web interface.
- And then, to push the code from the locally generated git repo to Github:
git remote add origin https://github.com/hishamhm/htop.git git push -u origin master
- Next, I wanted to download the htop website from SourceForge. I usually edited things straight through their shell account, but this got me to an SFTP session in which I could fetch the files:
sftp loderunner,htop@frs.sf.net
(By the way, I actually use yafc, which I highly recommend, instead of sftp. Also, as I looked for its URL to post on this paragraph, I just learned that the original yafc 1.1.1 from 2001, which I still use and was hosted in SourceForge and sat there for years without updates, has been taken by a new group of developers who resurrected the project and develop it in Github.)
The site for htop is really simple so moving it to a new location was a relatively quick process; just needed to grep all references to sf.net and svn, and get my own direct Paypal donation button (to replicate the one I had in SourceForge I used this and this).
- Getting the archive of releases was a bit trickier. It’s also in frs.sf.net, but you need to know the correct directory. It doesn’t show up when you log in and
ls. You have tocdto it:yafc ftp://loderunner@frs.sf.net # then, in the sftp session: cd /home/frs/project/htop get -p -r htop
Now I have an archive of all releases, with their (mostly accurate) historical timestamps!
- The final steps are shutting down the sf.net services, such as the bug tracker and the code repository. This can be done easily through their admin interface. I’ve never had any plans to migrate the bug tracker history; this simplifies things (and I don’t even know if it’s possible). I’m not shutting everything down immediately, though: until I make a proper new release and distro maintainers catch up with the new URLs, I’ll keep the download links active there.
The original website, however, is now gone and replaced with the following:
<html> <head> <meta http-equiv="refresh" content="0; url=http://hisham.hm/htop"> </head> </html>
(I did try an .htaccess file, but the sf.net servers kept redirecting to a default page even when I tried to do it via html… thanks to Lynx I realized it was redirecting with a 403 Forbidden error, so I removed the .htaccess file and things worked as expected.)
- Still TODO: migrate the htop-general mailing list.
One criticism I’ve had of Github in the past was that it did not promote a culture of making proper releases like SourceForge always did, but that has improved in recent years. Github now has a “releases” feature which, while not perfect, does the job in many cases. I’m not sure if I’ll use it, since I prefer to make the tarballs for htop using the make dist feature from GNU Autotools. I hope to cause as little disruption as possible to the distro maintainers and I want to keep my packages looking the same.
The big test for the new setup will be the next release, which I hope to make in time for htop’s tenth anniversary(!), in the coming months. It is quite fitting that htop presents its new home in such a special occasion!
🔗 Free music: Color Bleed is finally online
I recorded an album with a group of extremely talented friends who I had collaborated with in previous projects. I wrote music and lyrics for all the songs; Roberto Coutinho from Ampli Studio was in charge of the mixing board (and also played in a number of tracks).
We are all very happy with the results, so check it out:
You can listen online and also download the mp3 files for free. It’s licensed CC BY-NC-SA 3.0.
All feedback is welcome and much appreciated!
🔗 GoDaddy updates its terms of service
Today I received a message that domain/hosting provider GoDaddy has updated its terms of service. Here is the relevant part of the message:
We recently made changes to the Universal Terms of Service Agreement affecting your Go Daddy® products and services. We are sending this email to all Go Daddy customers to make you aware of the following changes:Section 1 (Overview)
We added language to provide that changes or modifications to the Universal Terms of Service Agreement will be effective upon posting to the Go Daddy website. You will be able to tell when the Agreement has been updated by looking at the “Last Revised” date at the top of the Agreement.
Section 8 (Additional Reservation of Rights)
We added language to assist with our fraud and abuse detection and prevention efforts.
Section 15 (Fees and Payments)
We added language to explain the differences between multi-currency product pricing and multi-currency transaction processing for products and services displayed on our website.
We updated the service fees associated with the “Pay By Check” payment option should your electronic check be returned unpaid.
Section 16 (Unclaimed Property; Dormancy Charges)
We added a new section to address the Revised Arizona Unclaimed Property Act.
This email shall serve as our official notification to you the above-referenced changes, all of which shall be effective immediately. Please take a moment to review the latest version of the Universal Terms of Service Agreement, which may be found here. Your continued use of Go Daddy products and services shall constitute your acceptance of the Agreement as last revised.
Section 8 (my emphasis) caught my eye. I searched around to see if anyone had pinpointed what was this change and I found an excellent project from the Electronic Frontier Foundation called TOSBack, a site dedicated to backtracking changes in Terms of Service pages. The page had some hiccups to sift through the various revisions of the file and pointing out the exact changes between the previous and the latest (as of Jan 2011) versions, but here’s what changed in Section 8:
8. ADDITIONAL RESERVATION OF RIGHTS
Go Daddy expressly reserves the right to deny, cancel, terminate, suspend, lock, or modify access to (or control of) any Account or Services (including the right to cancel or transfer any domain name registration)
that it deems necessary, in its sole and absolute discretion,for any reason (as determined by Go Daddy in its sole and absolute discretion), including but not limited to the following:
- to correct mistakes made by Go Daddy in offering or delivering any Services (including any domain name registration),
- to protect the integrity and stability of, and correct mistakes made by, any domain name registry,
- to assist with our fraud and abuse detection and prevention efforts,
- to comply with applicable local, state, national and international laws, rules and regulations,
- to comply with requests of law enforcement, including subpoena requests,
- to comply with any dispute resolution process,
- to defend any legal action or threatened legal action without consideration for whether such legal action or threatened legal action is eventually determined to be with or without merit, or
- to avoid any civil or criminal liability on the part of Go Daddy, its officers, directors, employees and agents, as well as Go Daddy’s affiliates.
Go Daddy expressly reserves the right to review every Account for excessive space and bandwidth utilization, and to terminate or apply additional fees to those Accounts that exceed allowed levels.
(Note: I changed the numbered items to bullets in order to avoid adding noise to the diff by having to renumber them.)
So, basically GoDaddy says it “added language to assist with our fraud and abuse detection and prevention efforts”, while silently adding language that says they can cancel your account for any reason and that the causes include but are not limited to the list presented (thus rendering the list meaningless).
So, the new wording of the Terms of Service allows GoDaddy to terminate service without providing any reason whatsoever to their customers. I wonder if this has anything to do with the recent crackdowns on domain names and demands for companies to comply with the government in secrecy.
Follow
🐘 Mastodon ▪ RSS (English), RSS (português), RSS (todos / all)
Last 10 entries
- Configuração do Warsaw para acessar o Banco do Brasil no Linux em 2026
- Receita de sopa de moranga da Vanessa
- The Lua community needs to learn to move on
- Aniversário do Hisham 2026
- Aniversário do Hisham 2025
- The aesthetics of color palettes
- Western civilization
- Why I no longer say "conservative" when I mean "cautious"
- Sorting "git branch" with most recent branches last
- Frustrating Software