Social networking privacy

I, like many people, have accounts on many different social networking websites. I, also, like some, am very unhappy with the terms of service and lack of privacy on them.

Privacy

The way I see it, there are two issues in regards to privacy. First, there is the issue of who sees my content. Even if I post photos to a website such as Shutterfly and password protect them, I still don’t know what Shutterfly is doing with them. (for the record, I’ve had a fine experience using Shutterfly) Also, even though Shutterfly offers unlimited image uploads of unlimited resolution, I found out they still reduce the file size by lowering image quality. Boo.

Second, there is the issue of who controls my content. When I post a blog entry to a website such as Blogger, I don’t even know what I agreed to let Blogger do with it. I assume it is being scanned for information to increase advertisement revenue for them. Also, whether it be images or blogs, once the website goes down (and all websites eventually go down) then all of my content goes down with it. I can’t imagine too many people save a local copy of their long (emotional, personal, thought provoking…) blog entries, and I think many people are beginning to not even save a local copy of many of the images they post. (such as from mobile phones) All of that will be lost.

As long as I’m ranting, I also think it’s ridiculous that so many people post photos on Facebook when Facebook saves them at such an incredibly low resolution and quality. Yuck.

I was excited to hear about projects such as Diaspora, but was very disappointed at their lack of quality and progress.

I give up

I gave up. I decided to do something I’ve been meaning to try for a long time. I setup my own website from my personal computer using my regular DSL internet connection.

I had never done anything like this before. I started with the simple instructions for setting up my router and , and signed up for a free domain name with DynDNS and ddclient. That took a couple of hours one morning. I then spent a few hours in the afternoon and followed the simple instructions on the Arch Linux wiki for setting up a LAMP server. Then I installed the AUR packages for Zenphoto and WordPress. I put a simple password on Zenphoto as a way to simply control who sees our family photos, and may or may not do the same on WordPress. I also haven’t decided if I’ll host my own WikiMedia site.

Conclusion

I don’t plan on using Shutterfly, Blogger, Myspace, or LiveJournal anymore. I still plan on using Facebook, but simply as a way to keep in contact with many people easily. I might not move my Archlinux.me posts to my own website, since I don’t think my wife appreciates my nerdy rants.

So, I now have a beautiful website for blogging and posting photos that has no EULA, no privacy concerns, no size or quality limits, and no advertisements. It uses free and open source software, and didn’t cost any extra money to setup and run. I own my content, and I can share it with whomever I want and do with it whatever I want.

Free music

I really dislike the RIAA, the major music industry in the United States. I decided to stop buying music from them.

About two years ago I decided to completely stop listening to music from the RIAA. I deleted all of the music I had from them. I now only download (and pretty much listen to) music that is available for free by the artist. Also, I’m not against paying an artist for music, as long as they are not associated with the RIAA. Here are some of my favorite websites.

ccMixter

Not only does all of this music cost no money, but you are also free to do (almost) anything you want with it, including adding it to a movie soundtrack or making a new song with it.

muzie

This is a website for Japanese musicians. It is easy to navigate and there are many different styles of music. There is music of MANY different styles available. I contacted some of the artists and thanked them for their work.

OverClocked ReMix

This website hosts tons of video game music remixes. If you don’t know where to start, try downloading some of the albums they have produced.

Magnatune

Magnatune hosts many different types of music from around the world. It is possible to find free music to download from them. Most of the music there can be purchased and is inexpensive, and much of the profit goes to the artists.

If you are interested in removing any RIAA material from your music collection, you can use the RIAA Radar.

At first I was worried about if listening to only free music would work. It’s been a great experience. I don’t feel like I have any shortage of good music to listen to.

Duck Duck Go

Thanks to the Arch Linux forums, I learned about the internet search engine Duck Duck Go. I have replaced it as my default search engine at home and at work. I’ve been using it for six months now. It’s been a good experience. Here are some of my favorite features:

Cleaner and better results – The information I’m looking for is often automatically displayed at the top of the page. If it isn’t, it’s usually one of the first few links. In my experience, if Duck Duck Go doesn’t find what I’m looking for, Google doesn’t either.

Automatic new results – There are no “pages”. Instead, the results appear as you scroll.

Privacy – There is better privacy compared to Google. (as far as I know)

Bang commands – “Arch Linux !images” or “tile based game !sourceforge” or “drcouzelis !google” or “Terminator !wiki”. I usually can guess a new bang command without looking it up.

The only thing I don’t like about it is that, compared to Google, the site-search functionality seems a little weak. So instead I usually do something like “drcouzelis site:bbs.archlinux.org !google”.

I haven’t figured out how to use Duck Duck Go as a verb yet. (“Try googling it” vs “Try duckduckgoing it”) Instead, I just say “Try doing an internet search”.

Somebody already made that!

I wanna write an application for Haiku, but every time I think of something to make and begin writing down ideas for it, I find out it already exists!

I was all excited to start working on a personal finance and budget application when I found out about BeFinancial. Recently it’s even been released as open source software.

With Linux I think of it as normal to have many different applications that have very similar functionality, but with Haiku that just doesn’t seem to happen as much. Reasons that happen with Linux include:

Different toolkits – On Linux there is GTK+, Qt, FLTK, Fox, GNUStep, and on and on. On Haiku there is one standard toolkit.

GUI vs CLI – Haiku was designed from the beginning to have a fast and easy GUI, although it is still simple to a terminal window with BASH.

Heavy vs light – Haiku applications feel fast and light, even when they are “heavy”. Haiku applications are written to use functionality provided elsewhere as much as possible. For example, emails are saved simply as files in a folder.

Maybe I should think simpler. Maybe I should think, “What do I want to use my computer for that could be made easier and faster by having a special application?”

Stable, pretty, convenient GUI

No matter how hard I try, I just can’t seem to find a simple, nicely pre-configured graphical user interface for Linux.

I’m used to spending a lot of time setting up things on Linux. I’ve done it for years. It’s been a fun hobby. I remember the first time I started using my mom’s new iMac, many years ago. I remember thinking it was so boring. There was nothing to setup or configure. It didn’t bother me, though, because I thought the default configuration and appearance was really nice.

I want something like that for Linux. I want a GUI that:

…has attractive default settings.

…includes complete window management functionality.

…has only one way to do everything.

…requires little configuration and maintenance.

…does not look like Windows 95.

I really want to like KDE.The recent 4.5 release behaves a little strangely with my video card, but it works. I’ll probably stick with it for now.

I’m also a big fan of Window Maker, but I always end up “using” it too much instead of “doing” stuff with it.

As for other operating systems, Haiku meets the requirements of the kind of GUI I’m looking for. Maybe instead of trying to find the perfect GUI in Linux, it would be easier to write all of the software I need for Haiku and use that.

Why I started using Haiku

I have dual boot setup on my computer with Arch Linux and Haiku. Arch Linux is my primary operating system, but when I want to relax or have a little more fun I boot into Haiku.

I started using Haiku about six months ago, and for a pretty simple reason. It’s an entire operating system made by one group of people.

GNU/Linux is made of different pieces of software written by different people from different places at different times. It’s a collection of multiple options for kernels, window managers, desktop environments, libraries, sound systems, boot managers, and on and on.

GNU/Linux works, and works very well in my opinion, but I was looking for something different, something with more of a complete design in mind. I wanted something that had the consistency of Mac OS X with the freedom of a free and open source license. FreeBSD meets that criteria if I exclude a graphical user interface.

I looked into alternative operating systems and Haiku fit my criteria well. It’s a complete and unified operating system from boot to GUI, including an API for everything I need. It has very active development, and a nice, yet small, set of applications to use, including a native WebKit web browser.

Haiku is a remake of BeOS. I have never used BeOS before, but found out I really like using my computer the “BeOS way”. Compared to other operating systems and user interfaces, I prefer to use Haiku. I like the consistency between applications. I like the responsiveness of the user interface. I like the clean look and nice default settings. I like the simplicity of installing and uninstalling applications. I find that the user interface better fits my work flow.

I’m excited about Haiku having a stable release some day, whenever that is. I’m also excited about writing some applications for it, but I can’t really think of what to make. I’ll probably start by just converting my video game to native Haiku code.

Objective-C in Linux

I am a big fan of the Objective-C programming language. Since I love it so much, it makes me frustrated to see people spread misinformation about it that isn’t true.

First of all, what is Objective-C? It is a programming language that allows a programmer to use objects in C.

How does it compare to C++? C++ and Objective-C were both created to allow for easier object oriented design. Even so, they are very different: C++ is a new language based on C, and is mostly compatible with C. Objective-C is C, but with objects.

Let me restate that. A program written in C might compile and run fine with a C++ compiler. With an Objective-C compiler, a C program will compile. It’s guaranteed, otherwise it’s not an Objective-C compiler.

So, what libraries are available for Objective-C? GTK+, Allegro, OpenGL, SDL, glibc, the Linux API… Any library written in C is by default an Objective-C library, and there are a lot of libraries written in C. A programming language may be considered as good as the libraries available for it, and as you can see, it would be silly for anyone to suggest that there are no libraries for Objective-C.

What about GNUstep? GNUstep is a toolkit, including GUI widgets, written in Objective-C. I haven’t used it.

Is Objective-C tied to Apple? Objective-C is a well defined language that is well supported by GCC. Realistically, Objective-C doesn’t seem to be used much nowadays except for Mac OS X and iOS applications. I have never written an application for an Apple product. Also, I don’t have any comments about Objective-C 2.0 or Objective-C++, because I haven’t used them.

Is Objective-C slow? It might be slower that C and C++, but not to the point where I think it matters, nor do I think anyone would be able to tell the difference. In my opinion, the ease of use more than make up for any loss in speed there might be.

Isn’t the syntax for calling a method in Objective-C is obnoxious? Nope. It’s just different, and certainly has its own benefits and drawbacks.

C++:
window->addButton(okButton, 50, 75);

Objective-C:
[window addButton:okButton x:50 y:75];

Why would someone choose to use Objective-C? Objective-C can be compiled for all major operating systems. (for example, anything that supports GCC) It is a compiled language that produces executable files, just like C. It can natively use all C libraries. It is as “simple” as C, but with objects.

Software design lessons

I’ve decided to convert the video game I am making to C.

My hobby is making video games. I’d like to point out that my hobby is not finishing making video games, just making them.

I’ve had a lot of fun working on my current game and game engine. It’s in Objective-C and uses the Allegro Game Library. It was my second project in Objective-C. I decided I really like the language.

A few months ago I finished my first graduate course in Software Engineering. The main theme of the course was “favor aggregation over inheritance, and code to an interface”. It caused me to rethink the design of my code. I decided my design was not very good. It was object oriented, but not the best type of object oriented. I struggled with deciding how to redesign it and the option of converting it to another language. It was during that struggle that I learned an important lesson:

A programming language or programming paradigm will not help a bad design.

I stopped thinking about “making it object oriented” and converting it to different languages, and instead just thought about design. I used the application Dia to write out my ideas. It has helped a lot. And since which language to use it not so important, I decided to use the language I love the most: C.

I’m going back to my original plan from years ago, which was to make a 2D video game in C. And I decided not just any C, but ANSI C. Why? To make it more challenging / fun, and to see if I can do it. As I work on it I’m quickly reminded just how much I like C. It feels like such a pure and simple language.

Even so, I’m also excited for my next project: to make something in Python!

Thanks to Microsoft

Thanks to Microsoft, there are many things people believe about computers that they think must be true. Have you heard any of these? Or worse, have you ever thought any of these? It could happen to a friend, a loved one, or even to our selves.

My computer is slow so I will delete some files and uninstall some applications.

How does the amount of files and not-running applications on your computer have anything to do with how fast it is running?

Don’t run too many applications at once or your computer will crash.

Have you ever found yourself thinking this? Why would starting a music player affect the CD burning software?

You need to reboot your computer after installing an application.

Why do I need to reboot my computer after installing an instant messenger application?

If the computer has a problem just reboot.

Someone once tried to tell me that this was a strength of Windows. I’m skeptical. I’d rather have a computer that does not have a problem during regular use.

If you leave your computer on for a long time, it will start running slowly. Reboot the computer to make it run at normal speed again.

Why? What is Windows doing when you leave it on? Do you have any idea? Me neither.

Newer software always requires more hardware processing power than older software.

It doesn’t have to. What do you use your computer for today that you couldn’t do 10 years ago? 15 years ago? 20 years ago?

If you want to completely uninstall an application, you will have to erase your entire hard drive and reinstall the operating system.

…and the related…

There is an application that automatically starts when Windows starts, but I don’t know how to remove it.

Sometimes it seems like Windows is at the mercy of the applications that people write for it. I understand that all operating systems are like this in a sense, but with Windows it seems to be the standard way to do things.

Do you suffer from any of these ideas? Do you think this is how using a computer has to be? Because of Microsoft, there are many people in the world that think computers have to be incomprehensible and painful to use. It’s as if people have to fight with the computer instead of just using it as a tool.

It doesn’t have to be this way!

LaTeX for the Average Person

I have many complaints about word processors, applications like Microsoft Work and OpenOffice.org Write. Most of the time I open a document I don’t want to edit it, I just want to scroll through it and read it. I don’t want to see red spell check lines, I don’t want to see the caret, and I don’t want to be able to accidentally change anything. Another problem is that I can’t do a “diff” on different versions of a file to see what has changed. Also, after seeing the possibilities of how beautify a document can look, documents made with a word processor look terrible to me, even “immature”.

My biggest complaint is, when I use a word processor, I feel like I spend more time fighting the application (“layout fiddling”) than I do writing actual content.

I decided to learn and start using LaTeX for the times when I would have used Write. It allowed me to focus on the content of what I was writing instead of the application or how it would look, and I feel it produced much nice results. The problem is that, to use LaTeX, it was pretty much like learning a new programming language.

Last week, I was helping my wife write a document. We were about to open Write, when I made the suggestion to try an application I hadn’t used before but read about: LyX. LyX appears to be designed to look like and be as easy to learn as a word processor, but is only for creating LaTeX documents. We installed LyX and in a few minutes learned how to use it together. The document it produced looks beautiful.

The only downside I can see is that for easy viewing and editing, two files have to be passed around: the LaTeX (or LyX) file and the output (PDF) file.

Anyway, that brought me to a question: Why would anyone use a word processor to create a document when they can create a document using LyX and LaTeX for free and just as easily?

My guesses are because the Microsoft Word document format is an unofficial standard in many offices, because people are used to using word processors, and because Microsoft spent a lot of money advertising Word. As much as LaTeX is used in places like the academic world, it is fairly uncommon to everyone else.

Maybe it won’t ever become popular, but I’m glad I found a method of writing a beautiful document with an application that gets out of my way and lets me get some work done.