I'm going through my post-holiday email with a shovel right now. I have some more "New Year" kinds of things to discuss, but can't quite get to it today. Here are a few tidbits of fun for you in the mean time.
I was watching a British program called QI (Season 10, Episode 1. I would post a link but some of the conversation was a little naughty for the workplace. If you find it on your own that's your problem.)
That's so OMG!
When we think of the abbreviation OMG (short for "Oh, my God") we usually think of bubbly girls texting away. It seems, however, that its first recorded use was in a letter by Baron John Arbuthnot Fisher in a letter 1916 letter to Winston Churchill. Lord Fisher wrote I hear that a new order of Knighthood is on the tapis—O.M.G. (Oh! My God!)—Shower it on the Admiralty! He even clarified the abbreviation... though that would seem to defeat the purpose. I suppose I'll never really be Noble. You can find the quote in his memoirs, published in 1920. (http://cmwosdu.de/W3h8Pz )
I unfriend thee!
Many people have been cleaning up their friend lists on Facebook and it seems that "unfriending" someone is a new and potentially volatile activity. This one is even older! The first recorded usage is in a 1659 letter by Thomas Fuller in which he writes I hope, Sir, that we are not mutually unfriended by this difference which hath happened betwixt us. You can see the original letter in his biography: http://cmwosdu.de/XjQPM7
I must use this the next time I have to let a connection go because they get too crazy!
Get your systray back in Ubuntu!
Finally, here's a little tip I found. I was installing blueproximity, a tool to let me use my mobile phone as a lock token for my Ubuntu desktop. Essentially, when the phone leaves the area of the desktop, it automatically locks and automatically unlocks when it returns. That's kind of handy! However, I was having some difficulty with it, some of which was an issue because the systray icon did not come up in Unity. (Yes, I've been using Unity on my desktop. I hate to say it, but I actually am getting used to it.)
I've missed other icons there, but this was the one that finally annoyed me into action. It turns out the default behavior of Unity is to limit items on the systray to those that have been whitelisted. A simple command turned them all back on, including ones that I didn't realize were missing. Unity with a fully active systray is much nicer. Here's the command to turn them all on:
gsettings set com.canonical.Unity.Panel systray-whitelist "['all']"
I used that command, logged out and back in, and, voila! All my icons are back and functional. Of, course, you can whitelist just a few of them. More details can be found at the original discussion in the Ubuntu forums where I found my answer: http://cmwosdu.de/S5y1hK
Happy New Year! More retrospective, futurespective kind of writing tomorrow or Friday when I can breathe!
Today I was reading an interesting Wired article today called "How Joe Biden Accidentally Helped Us All E-Mail in Private". I remember tinkering with PGP during that time and some of the controversy surrounding encryption, especially good encryption. The encryption battle of that time was largely won and we are generally free to make use of it in our lives. Of course, very few people do.
I was demonstrating a network sniffer called WireShark for a buddy a while back. It basically captures whatever packets are passing through the network and allows you to copy them, view them, etc. He was surprised to see that in some cases email was being sent by people in the total clear, with no sort of encryption or anything. In some cases the username and password for thre user's account were easily visible. That's a sobering thing to see, yet people still don't seem concerned about encrypting their information.
There is a lot of talk about The Cloud (cue Arnold Schwarzenegger's voice) and the concern about keeping our information out there because someone might find it and see it. Again... these are clear, unencrypted files and information.
There is already some good, free, open stuff out there to help people increase the security of their information. A lot of it is very easy to use with easy methods for establishing trust and exchanging keys with people you want to see your information while protecting it from the casual mail server admin with nothing better to do than read your stuff as it comes through. (Would they do that? You bet! Those late nights can get lonely and boring.)
Can you make things secure enough so that no one can possibly read it? Probably not. If you are dealing with James Bond sorts of secrets and the high tech espionage centers of the world are focused on you, then they will probably hack you. For the rest of us, we can cut out the casual observer and demand that someone who wants to get into your stuff needs to devote some resources and most likely get a warrant.
From: Scam Mail
DO YOU NEED A LOAN, IF YES REPLY FOR MORE INFO.
At least they are honest about scamming you.
IBM Linux on POWER
I think Linux and the POWER architecture are an outstanding combination. I would really like to see a new POWER laptop to load Linux on. (Apple used to be a good source for that until they decided to go Intel.) POWER servers are competitive in price with el-cheapo models, especially when you factor in consolidating services into a single box. I came across this video which talks about Linux on POWER.
Steve Southworth is funny
Steve Southworth posted this picture with the caption: "The original camera phone."
New VoltDB article in developerWorks/opensource
How many databases do we need exactly? When are we going to have enough? If you have a shop where you are able to support a single database, say DB2, then that's great! However, it's likely that you need to have flexibility in your database, either because you can't always get what you need from the administrators, or you are dealing with customers who have varying situations, or some other unexpected situation that you can't predict. It's always good to have more tools in your toolbox. Talke a look at VoltDB and play with it. Here's what author, Simon Buckle, had to say about his article:
"Having problems scaling your relational database? Thinking about switching to a NoSQL datastore in order to scale but you need your data to be consistent at all times? These are the kind of tradeoffs that you would normally have to consider when deciding whether to go down one route or the other but it is possible to have both scalability and data consistency. Introducing VoltDB.
"VoltDB is an in-memory database written in Java with the scalability of NoSQL data stores, but without the consistency problem; it is ACID compliant. VoltDB is queried using SQL, so it will be familiar to those who have worked with relational databases before. This article will cover the basics of how to install VoltDB and how to use it, so you can integrate it into your application(s). Finally, it will also discuss VoltCache, a scalable key-value store with a memcached compatible API built using VoltDB."
The VoltDB developers tout their project as revolutionizing your application design methodology to get things out fast! Check it out, play with it and you'll be the smartest one in the room when someone brings it up!
Open Source alternatives
Ages back, I wrote a popular blog entry called "Start your learning with Open Source." It must have struck some sort of a chord because it's gotten more than 15K hits since 2009. One of the most common conversations I have with people about open-source software is about subsitutes for the current software that they are using. I reference a few sources in that blog entry, but there is also an evolving Wiki in the Real World Open Source community with a list of open source software. You'll find some handy suggestions in there. You can also add your own. It's just getting started, so we've barely scratched the surface. Take a look and contribute.
Don't forget that there is a discussion board there as well where you can bring up your questions and problems. Have another place where you do those discussions? Tell me where and I'll add them to the bookmarks or feeds in the community.
As you probably remember, I work for IBM. We're a big company and a lot of my work, while satisfying on many levels, is... well... work! I probably deal with many of the same mysteries of the corporate world that you do. From time to time I wonder if I know the people being satirized in Dilbert. After a while it can feel like it's all about the problems and the products and the process of keeping everying going from day to day to day.
Then, some days I get a reminder of how thrilling it is to be around when someone creates the future. We saw some of that when Watson cleaned house playing against two strong apponents on Jeapardy. (See my blog entry at that time to watch it if you missed it.)
This breakthrough will make for faster and faster communication for electronics, and the technique appears to be affordable enough to actually use. That means more computing power available for media, smartphones, tablets, televisions and everything else which might house computing power. This breakthrough will permit the pushing of much more information at unimagined speeds–terabits per second!
It's unclear as to when this will make its way into marketed products, but it is a huge game-changer. I can't wait to see what happens next!
This month Creative Commons marks it's tenth year as an alternative to traditional copyright. You've probably seen this license marked by the phrase "some rights reserved" on photos, music and other works on the Internet. The logo I created for the Real World Open Source group is available for you to use under the cc-by license, which means you can use it for whatever you wish, just give me credit.
Why have a license like this? The digital information age has created a new paradigm for works. Before, works were physical. They were not easily duplicated. Today a digital item can be duplicated and shared almost effortlessly. The understandable reaction by the creators of these works is to clamp down significantly on usage of their work. Service providers are being required to help enforce access and usage of these works. That makes some sense, except that there are people who create things that they really do want to be shared and used.
The Creative Commons license was created to be a legally sound license which would allow a creator to grant limited usage rights which were clearly stated. The basic license are quoted here from their original site descriptions.
This license lets others distribute, remix, tweak, and build upon your work, even commercially, as long as they credit you for the original creation. This is the most accommodating of licenses offered. Recommended for maximum dissemination and use of licensed materials.
This license lets others remix, tweak, and build upon your work even for commercial purposes, as long as they credit you and license their new creations under the identical terms. This license is often compared to “copyleft” free and open source software licenses. All new works based on yours will carry the same license, so any derivatives will also allow commercial use. This is the license used by Wikipedia, and is recommended for materials that would benefit from incorporating content from Wikipedia and similarly licensed projects.
This license allows for redistribution, commercial and non-commercial, as long as it is passed along unchanged and in whole, with credit to you.
This license lets others remix, tweak, and build upon your work non-commercially, and although their new works must also acknowledge you and be non-commercial, they don’t have to license their derivative works on the same terms.
This license lets others remix, tweak, and build upon your work non-commercially, as long as they credit you and license their new creations under the identical terms.
This license is the most restrictive of our six main licenses, only allowing others to download your works and share them with others as long as they credit you, but they can’t change them in any way or use them commercially.
With these licenses a creator can allow work to be distributed freely whily maintaining ownership and some level of creative control of the work. It is also applied to software code. If you haven't looked into Creative Commons it's a great time to learn about it. It is one possible answer to the question posed by Will Grace in the Real World Open Source group about "stealing code". You can't steal something that is freely given.
Supporting LimeSurvey, or your favorite projects
I get a lot from people who talk about "free software isn't free". It's true. Everything created is based on the toil of someone. Many who create these things do it pretty altruistically. They want something that works well and they see no reason why others shouldn't have it. They don't expect reward... though they would do more and give more if they could afford it.
I remember in the earlier days of the PC, there was a good deal of "shareware" floating around. The idea was that you would get the software for free. You would use it and see if it really fit your needs. If you decided to continue using it past your own test-drive period (which was sometimes defined, sometimes open-ended) then you would pay the creator for his work. I don't see as much shareware floating around anymore.
Many who contribute to open-source projects aren't looking for reward, but often a successful project has expenses. There are storage, computing devices, etc. Now that there are so many ways to get donations from people many of these projects are putting out a "give if you want to" sort of donation. bucket. It makes sense. If people donate then it relieves some of the burdens. In some cases it may allow features to be added that could not be done otherwise.
I just made a donation for LimeSurvey, a nifty piece of software that I've used for a variety of things. I'll probably also drop a few dollars with other programs I use regularly. I'm not compelled to do it, but I admire what these people are doing and I appreciate what they make available. I benefit, sometimes financially, from what they provide, so it's only right to share a little back. However, it's my choice. Some people can't afford to do it, but they need the technology. I like the idea of a world in which people choose to pay when they can because it's the right thing to do.
Of course, as I've mentioned before, there are other ways to contribute. Many projects need assistance with things besides writing code. Perhaps there is something you can do to help.
OK. I have some mixed feelings about this one. Let's see what you think.
Verizon has filed for a patent for technology that will allow their set-top boxes to monitor a room and use that information to select appropriate advertising. The device will monitor audio, some level of visual and mobile device access. Here are some quotes from the application. I've tried to keep the blocks of text in context, but highlight what I felt was relevant in that section.
" To illustrate, an exemplary ambient action may include the user eating, exercising, laughing, reading, sleeping, talking, singing, humming, cleaning, playing a musical instrument, performing any other suitable action, and/or engaging in any other physical activity during the presentation of the media content. In certain examples, the ambient action may include an interaction by the user with another user (e.g., another user physically located in the same room as the user). To illustrate, the ambient action may include the user talking to, cuddling with, fighting with, wrestling with, playing a game with, competing with, and/or otherwise interacting with the other user. In further examples, the ambient action may include the user interacting with a separate media content access device (e.g., a media content access device separate from the media content access device presenting the media content). For example, the ambient action may include the user interacting with a mobile device (e.g., a mobile phone device, a tablet computer, a laptop computer, etc.) during the presentation of a media content program by a set-top box ("STB") device.
 In some examples, detection facility 104 may determine, based on data received by way of a detection device, that a user is holding and/or interacting with a mobile device. For example, detection facility 104 may determine that the user is sitting on a couch and interacting with a tablet computer during the presentation of a television program being presented by a STB device. In some examples, detection facility 104 may be configured to communicate with the mobile device in order to receive data indicating what the user is doing with the mobile device (e.g., data indicating that the user is utilizing the mobile device to browse the web, draft an email, review a document, read an e-book, etc.) and/or representative of content that the user is interacting with (e.g., representative of one or more web pages browsed by the user, an email drafted by the user, a document reviewed by the user, an e-book read by the user, etc.).
 Access device 402 may be configured to present a media content program by way of display device 404. For example, access device 402 may be configured to present a television program including one or more advertisement breaks by way of display device 404 for experiencing by one or more users within detection zone 408. During the presentation of the television program, access device 402 may be configured to utilize detection device 406 to detect an ambient action of a user watching the television program. To illustrate, access device 402 may detect, by way of detection device 406, that two users are cuddling on a couch during the presentation of the television program and prior to an advertisement break. Based on the detected ambient action, access device 402 and/or a corresponding server device (e.g., implemented by provider subsystem 202) may select an advertisement associated with the ambient action. In some examples, access device 402 and/or the corresponding server device may utilize one or more terms associated with the detected ambient action (e.g., in accordance with a corresponding reference table) to search for and/or select an advertisement associated with the detected ambient action. To illustrate, access device 402 and/or the corresponding server device may utilize one or more terms associated with cuddling (e.g., the terms "romance," "love," "cuddle," "snuggle," etc.) to search for and/or select a commercial associated with cuddling (e.g., a commercial for a romantic getaway vacation, a commercial for a contraceptive, a commercial for flowers, a commercial including a trailer for an upcoming romantic comedy movie, etc.). Thereafter, access device 402 may present the selected advertisement by way of display device 404 during the advertisement break for experiencing by the users.
So, there you go. Several articles on the Internet have referred to this technology as "spying", and I can certainly see where they have a point. I think some paranoia in this area are probably justified. However, one of the things that we seem to desire is technology that will interact with us more directly, help us to find what we want and deliver what we need. Star Trek computers and Azimov robots all had senses and made decisions based on what they saw and heard. They were always at the ready and seemed to have instant access to the necessary information. In order to do that we will need devices that can be silent observers.
Of course, the alarming part of this is that the device must report its information to some sort of server in order to make sense of it. There is no avoiding that with our current technology. It's a "big data" question and right now that means big, remote computing power. Ideally this sort of technology would all be completely anonymous. Your set-top box would regard you passively and disinterestedly, like a family iron. Without much effort on your part you would be introduced to the news and entertainment that was just right for you at the moment. You would see ads for things that you actually wanted to learn about. Your media device would be a helpful information companion for the whole family. I suppose that's possible.
However, my experience with this sort of help in the past is that it tends to be a little overeager. My inbox is flooded with things that seemed like a good idea at the time. My personality causes me to have levels of duality at times where I may want to deal with contrasting ideas at the same time... for example have something exciting running on the television while I also tinker with something that might seem more cerebral. Contraceptive ads popping up while you're cuddling on the couch could be a great disturbance in what is typically a deligate process of silent negotiation.
Also, would the people who had that information so tantalizingly near have the discipline to not try to grab some of it and try to dig a little deeper, a little faster. Would there be a temptation to get a salesman to call? Would law enforcement start demanding to tap into these things? (I know. If you're not doing anything wrong you have nothing to hide... but there is a reason why we don't all live together naked in a big giant room.)
Oh, and before you rail against Verizon, this is apparently not the first exploration of such technology. According to this fudzilla article previous evolutions of this concept have been patented by Comcast and Google. So, what do you think?
I'm intrigued at the possibility of having technology that is more responsive to what I want, when I want it. There could be some benefit to that, if it is geared toward my needs and not the needs of someone who has to make a sales quota. Is this a treasure chest or is it Pandora's box? Is this something to be fought, or will this adapt into our lives like all of the other technology we have adopted over time?
Also, on developerWorks
Here are a few fresh things worth looking at on developerWorks:
Ian Shields gives us a 2-fer with a pair of updates in the Linux Professional Institute test prep articles. First is "Boot managers: Introducing GRUB, GRUB 2, and LILO" – a look at the mysterious world of getting your operating system to load. There are actually a lot of interesting things that you can do with boot managers if you understand them. This is a grest start. Second is "Create partitions and filesystems:Divide and conquer your disk space" an overview of partitioning and why it matters. On your laptop you probably don't need to care too much about different partitions. On a server, however, good partition management can spell the difference between a reliable system and one that dies because some file got out out of hand and ate the disk space.
In Real World Linux there is an interesting entry about Aakash2, a super-cheap tablet developed in India. This won't be your "power gadget", but such a commodity-level device could make a big difference in getting technology into the hands of everyone who could use it. I admit that I'd like to get my hands on one. At that price, maybe I will.
I suppose that my first question is "Can they do it?" I know that there will be laws and law enforcement. Some people could be hit really hard by this if they want to take out the "big guns". However, there is so much that happens on the Internet that is driven by private providers and personal devices. Sure, they have rules about the telephone lines and the airwaves, but technical people find ways around existing limitations all the time. If we really don't want it, could they really squash things?
How much control should the government have over what is done through the Internet? and who's government? We already seem to have a lot of trouble with isolating information because what is taboo in one area of the world is accepted in another. In the past, geographic isolation shielded people from things that they weren't supposed to know... but that is no longer the case. Does the Internet go beyond any single governing body? Can it be addressed directly by the people who use it?
I really don't have answers to these questions. They are things I am pondering.
Vote now? I thought the election was over!
There might be a test of some of these questions happening right now. If you are a user of Facebook you may have heard that they are looking to make some significant changes to their rules. I won't express my opinion on the changes because that's not the point here. After a lot of discussion on the matter, Facebook appears to be opening this up to a vote. If 30% of the users participate in this week-long vote it will be a binding decisio. If fewer than 30% participate, then it will be advisory.
Let's look at the numbers for a moment, though. Facebook claims to have 1.01 billion users in September of 2012. 30% of that number is 300 million people. In 2011 the population of the entire United States was estimated to be about 311 million people. We only get about 60% of them to vote in a presidential election! Of course, this is global, which has a higher population, but the numbers are still staggering. As of this righting the voting hasn't even reached 1%. (In a presidential election they describe numbers like that as "wasting your vote".)
Other thoughts come up. There seems to be some fuzziness of what is considered the real population. Are they going to do 30% of so-called active users or of the total population? I know of a few dead people who still have Facebook accounts because they were never removed. Do dead people count as part of the voting population? How could that possibly be determined? There are also many people who have accounts that they created long ago (or were created for them by enthusiastic people) who just never got into Facebook. Their account is just a table in a database somewhere with no participation and no stake in the changes. Are they counted in the voting population as well?
My prediction is that the numbers will fall far below the needed amount. I will be surprised if there is even a 1% turnout in this election. Right now the vote is overwhelmingly in favor of keeping the rules as they are. We'll see how that progresses. If the vote is advisory, I would not expect Facebook to give it much weight. They've clearly decided that these changes are beneficial (to someone) and I would expect them to say "Thanks for the advice" and then move forward. This would be disappointing if the vote was largely against it.
If you want to participate in this experiment, the link is open until the 10th of December: Facebook Governance Vote. Bring a few million of your friends
What about the rest of it?
Obviously, there is a lot of Internet outside of Facebook (which is probably a good thing). The real question is not about voluntary online services but things like putting up web sites, doing commerce, using the Internet for your own things in your own ways. Do we need a list of regulations deciding what may and may not be done, or do we need ways to better self select and self-isolate as we choose. I think that these kinds of technology are becoming more fundamental to how we do things. Knowing how to search for what you want on the Internet may be right up there with being able to balance a checkbook as far as life skills are concerned. Being able to keep bad guys from your information is on par with knowing whether or not you might be in a dangerous parking lot. How do we promote informed usage and a little self-reliance. Am I just overly skilled here and don't appreciate how hard it all is? I honestly feel like there are oceans of information about these technologies that I don't understand, but I don't feel lost.
Ultimately, someone will start pushing on all of our uses of the Internet because something will make them uncomfortable... and some people react to discomfort by trying to eradicate what troubles them. When people are largely alike this works. When you have global diversity it's going to be pretty tricky. I don't know where it's headed.
But... again... does it matter? Can they make all the rules they want with fancy kill switches and task forces and scrutiny and it will never be enough to catch up with what people want to do? Does technology become the real equalizer? the real global world?
All I can say, kids, is it's going to get weirder before it gets better.
I caught an article today: "Linux users targeted by mystery drive-by rootkit". I stand by my believe that Linux is the most secure environment that I have used and I enjoy the freedom from many of the security issues that friends experience. However, it would be ridiculous to imagine that Linux–or any environment–is immune from attack.
You probably already know the security basics. Don't hang out at weird websites and let anything and everything run. Use things like Adblocker in Firefox to help cut out little scripts and things that you don't want to run. When things pop up saying would you like to install or run something that you don't understand, don't click "Yes". How do you know you're OK, though?
First, pay attention! You can tell when your system is not behaving normally. When the network seems clogged or processes start getting chunky that could be a sign that things are running on your system that you don't know about. Don't ignore that. Do something about it.
The first step is to look at the processes that are running. In Linux a basic ps -aux will give you information about what is running. If you tinker a lot, like I do, you may bet all kinds of things turned on when you installed them to play with them. The other day I noticed that I had a web server and two database servers that had been left active after playing around with them. Often when you install that kind of software it will set itself to automatically start. These are the kinds of things that can create danger for you if you don't realize they are running.
For seeing how the system resources are running, top is a good quick check. It is a console-based system monitor that will show you what is using resources on your machine. Here's a sample:
Based on my snapshot my audio and firefox are the biggest pgs. I also note that I have mongod running, which is a database enging that I thought I had disabled. It may be that something is using it, or I may not have shut it off correctly. I need to look into that. As a "basic user" I probably don't need to know about all of these processes... but as a "technical user" I really should understand them, at least well enough to know that they are normal.
Dealing with root kits and other nasties
Keeping an eye on all of your running processes is probably not what you want to do. It's good to know that you can spot check with things are misbehaving, but you want to be proactive and stop things before they start. Here are a few things that might help.
Clam Antivirus — Clam was the first anti-virus software that I discovered for Linux. It runs on othe rplatforms as well and seems to be pretty good stuff. Clam does what any intivirus system does. It scans files and compares them with signatures of known viruses. Of course, the value is only as good as the definitions. Clam definitions seem to be updated pretty regularly and it's easy to automate the process. At the very least you should have something like this available. Admitedly, the only virus files that I've ever found with this have been dormant Windows viruses that someone sent me in emails... but it's good to know that.
chkrootkit – This is a common tool available throught Linux distributions. It looks for a number of common exploits and reports issues.
rkhunter – another popular root kit detector that was available through the Ubuntu repositories. This tool works best if you install it onto a "clean" system, i.e. one that you know is uninfected. Ideally you would set it up immediately after installing the operating system and let it initialize. rkhunter looks for unexpected changes to system files and alerts you to possible mischief.
Of course, if you are serious about digging into root kit detection, you will want to look deeper than just running a tool. Here is an excellent article on Symantec's web site: "Detecting Rootkits And Kernel-level Compromises In Linux" which goes into quite a bit of detail about the technical side of this sort of forensics.
Cyber attacks seem to be the way of the future. No one is immune, but you can make yourself less of a target. Some say that eternal vigilance is the price of freedom, and this probably goes for software too.
Today I got another one of those InfoWorld articles with one of those sensational titles called "Beware these open source lock-in schemes". I had to take a look. The open-source world has really come a long way. I remember when telling people a product was open-source would be a cause for immediate argument and accusation. Now there are businesses and governments who are looking for open-source as a requirement. As is always the case, people are stepping forward to take advantage of that interest in somewhat nefarious ways.
There has been a lot of information floating around about the "hidden costs of using open source", as though there were no hidden costs to using any technology. It's true. Any piece of open-source software will make demands of you. You will need to understand it. You will need to spend time making it work the way that you want. You will need to make sure that others who use it also know what they need. I have never bought a piece of technology that came with someone who prevented me complicating my life with it through either improper use or making mistakes.
The whole point of working with open-source from my perspective is leaving your options open. Right now I'm using Ubuntu, but it's not my only Linux option. I have run other distributions in the past and may run others in the future, but it's my choice. Linux is at the core of all of them and the software that is important to me runs on all of them. They keep me because they serve my needs, not because I'm too invested to move.
In the article, Simon Phipps mentions the "four freedoms" of open source, which should be protected in any choice that you make. These freedoms are fundamental and important. I'm quoting them here from the GNU philosophy page with my own comments:
The freedom to run the program, for any purpose (freedom 0).
Have you read the license agreements for many of the things that you use? Most of us don't and when we do we shrug our shoulders and click "Agree" anyway because there is work to be done. You will become amazed by some of the things hidden in license agreements about what yoiu may and may not do with the software and what they may do to you if they decide that you have violated those terms. (There is a South Park episode that parodies this, but I will not point you there. You will have to search for "south park humancentipad" and find it on your own because it is terribly rude.) I don't say that people who license software to you should not be able limit its usage with a license. It's entirely up to them. However, you should know that there is an arena of software that does not impose such limitations. It's really your choice.
The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this.
Invention stands on the shoulders of previous inventions. It's the way of humanity. Because of the compiled nature of software it imposes a barrier to this sort of learning and development. Again, there is nothing wrong with hiding the true nature of software, but there is something wonderful about leaving it in a way that you can take it apart and learn from it.
The freedom to redistribute copies so you can help your neighbor (freedom 2).
Sharing things that help us has also been a large part of human experience. Think of all the things that are a part of our world that were shared so long ago that we can't imagine a time where people didn't do it. I'm talking about things like making beer, irrigation, use of simple machines... It is natural to want to share best practices with others. Open source software encourages this sort of sharing so that good ideas get spread around, freely.
The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.
This gets to the "improvement" concept that I mentioned before. If I have a great idea for improving a commercial product, but the owners of that product don't wish to incorporate it, that's the end of it. I could go create a competing product, but I would really need to be invested in my idea for that. If I share my idea openly about how to modify the commercial product they can sue me for violating their license agreement. (See how all of this fits neatly together.) With open source, I can contribute a simple idea and share it with whomever I wish. Many projects have unofficial patches that anyone can apply to affect the function of the software. Sometimes these ideas are incorporated into the core, but they don't need to be.
So, there you have the four freedoms... the hidden benefits of open-source software. These are the reasons why open-source matters. It's true that these freedoms come with a little bit of effort to make the most use of them. They can introduce a certain level of chaos into your technical life which you will occasionally have to manage... but I'll bet that you do those kinds of things already and call it the "cost of doing business". Think about it.
Things around developerWorks
Tuesday is publishing day on developerWorks, so here are a few items that you might have missed, but shouldn't:
Ian Shields has been doing updates to his series on the Linux certification tests. His latest refurbish is "Plan Linux hard disk layout and partitions". I've worked with Ian behind the scenes at IBM for a while and his shares my perspective on being a repetitive voice in support of Linux and open source in the work place. In any meeting on new things it was always a contest to see which one of us would be the first to ask "will it work on Linux". Ian is the real deal and you can learn a lot from his articles whether you plan to take the LPI test or not.
Over in the Real World Linux community, Himanshu Arora has put up a nice blog entitled "Zsh - The new Linux/Unix shell everyone's talking about". Zsh has actually been around for a while but it's worth learning more about. One of the interesting features of a Linux/UNIX environment is that you have choices for your command-line environment. I normally use BASH, but there are times when another is helpful, especially in scripting. Since you can tell a script which environment it should run you can pick your favorite to type in but have the others whenever you wish.
I was at an event this weekend. It was a non-technical event with a group of artists. One of them had designed something which could be customized and had a DVD showing exactly how to recreate what he was doing. On the DVD he included a PhotoShop template that would automatically remix an image into the necessary pattern. Then he said something remarkable. He said that he also had templates for GIMP, the open-source graphic program and that he could make those available to anyone who preferred the free software. The next run of the DVD will include the GIMP template as well.
This was not a group of techies who were all about open-source. This was just a guy, an artistic guy who used some technology to create his work. He had an open-source solution. This is one of the first times that I have encountered this in "the wild". That's really execellent! I bought a DVD just to show my enthusiasm. I'll probably even play with his technique.
Open source and Linux are spreading beyond their traditional boundaries. I don't get so much in the way of hostility when I announce myself as a Linux user anymore. Progress!
Himashu Arora has been contributing a lot to the Real World Linux and Open Source Communities here on developerWorks. The other day he contributed this commercial by Red Hat with an interesting message about how things that once seemed impossible happen over time if the are real.
You should also take a look at his latest articles:
Do you smell that burning? That's all of the passion of people on a US Presidential election day. Pardon us if everyone is a little weird today. Of course, one of the discussions that I find pretty interesting is the "Vote, but only vote for someone who matters" discussion. It contains phrases like "Unless you vote for someone on this list you are throwing your vote away."
No, I'm not turning the blog political today, but I am going to spin this thinking a little. Essentially the idea is that you should only vote for someone who has a chance of winning. Does that mean that if your candidate loses that you "threw your vote away?" You have to vote for what works for you and you run the risk that you might not be in the majority.
Ready for the spin? Here it comes!
I see being a GNU/Linux and open-source software user to be the same kind of thing. I use software to get things done. Sometimes I have a business requirement to use a particular tool, but often the finished product is all that matters. I have consistently been able to explore new skill and do things that I had never tried before simply because I could download an open tool without having to wrangle money or licenses from my organization. It is true that the majority of computing is done on two specific platforms and there are clearly leading tools for specific tasks. However, in my quest to get things done I still have all my choices open. In most cases I'm able to do things in a way that is compatible with people who use commercial tools, so no one has to worry about it. In any case I'm learning about a particular skill in the tried and true fashion of simply exploring.
If you are voting today you should vote your conscience and not worry about whether your vote will count. They all count... even if they are only recognized by the people who received them... a sign that they shouldn't give up their cause, even if they don't win. If you are trying to get something done or build skills and you can't get your hands on the "right stuff" look around for open alternatives. You will accomplish something and either find that it works well enough for your needs or that you can more clearly demonstrate the value of having the tool that you want. "I did this with what I have, but if you buy me that I can do these other things."
Doing something almost always accomplishes more than doing nothing.
There's a Storm brewing
I want to take a quick opportunity to send my heart out to the people who are victims of the storms along the East coast in the United States. Nature is a tremendous force that we do not fully appreciate until there are events like this. I hope your family and friends are safe and unharmed. My condolences to all who did not make it through unscathed.
I'm going to turn to a different storm, now. Twitter has created the interesting phenomenon of a massive stream of real-time data from people all over the world. There is an incredible wealth of information in there, if only you could get it out. One of the tools which might help is Twitter Storm. While not brand new it's a relatively new player in the data space. M. Tim Jones takes some time to introduce it and lead you into the basics in this developerWorks article, "Process real-time big data with Twitter Storm - An introduction to streaming big data". Take a look at it and other material in the Open Source section.
I got a message when I tried to run a browser-based application that was truly out of Dilbert:
XXXXXXXXXX is temporarily unavailable at this time for any of the following reasons:
Status and additional information are posted on the XXXXXXXXXX System Status page. We apologize for the inconvenience and will bring the application online as soon as possible. Please try again later.
The status page did tell me what was going on, but the first read was a little silly.
Update to Ubuntu 12.10
The other day I did my update to Ubuntu 12.10 on my laptop. The update went smoothly, though it took a while. The one wish that I had was that there was a way to have it automatically use the recommended response for dealing with config files on the updates. The way it works now I have to hit a button from time to time. I'm sure there is a way to do this, but I haven't researched it. Maybe someone out there can point me.
Overall things seem OK. I'm getting some mysterious system component crashes that seem par for the course with an update on this laptop (Lenovo w500). Whatever is crashing doesn't seem to be affecting my normal activity, so it's not troublesome. I expect the next serious round of updates to magically make all of those things go away. I feel that a few things are a little more spry (especially in the Unity desktop) but I have no measurable benchmark.
I have to say that I really like updating Linux. In Windows and other systems where a major upgrade is actually the purchasing of a new product it always seemd a pain. (I'm seeing all sorts of unrest about Windows 8 and am thankful that I don't have to play there.) In Linux I get a little note saying that there's a major distribution update and I hit the button. It's been very pleasant.
Of course, I have a server at a church that suffered some neglect for a while that needs to be updated by hand because it fell too far behind. That is inconvenient, but workable. If you keep things up to date it generally all goes pretty well.
PDFs on the fly
I use PDFs all the time. I think they are a terrific way to share documents. They save trees but provide a controlled look and feel and their openness makes them easy for anyone to read regardless of tools or operating systems. I trust PDF as an archival format much more than I trust any of the word processing formats out there, even open document, I'm sorry to say.
I started working with PDFs a lot when I started using OpenOffice.org, LibreOffice and the like. It was difficult to convince others that they needed to download software, even if it was free, to read my documents. Then I realized that the vast majority of the time that I don't really need someone to edit the document, just view it. All my open document tools had a PDF button built in so, voila! Easy sharing with no complaints.
Generating PDFs has become more common and there's no reason why you can't include that functionality in your own programs. The developerWorks article "Generate PDF files from Java applications dynamically" has just been updated by the author to include the latest techniques. Take a look and see how you might be able to harness this power for yourself.
Halloween comes only once a year, but you can carry it in your heart all year round. I've always enjoyed the spooky stuff and there are those who really go all out to celebrate that season. As it turns out, people are applying a lot of do-it-yourself technology to make their own spooky effects. Some are just front port surprises. Others are in very professional haunted attractions. Unless you are extremely industrious and don't need sleep it's probably too late for you to do much with these ideas, but it's never too early to start for next year.
I'm actually thinking about doing something with web cams and a laptop. It could be fun!
Mirror, mirror on the wall...
Mirrors have long played a part in horror tales. Here is a genius way to create your own ghostly mirror effect. With LED monitors as cheap as they are now this is actually not too difficult to manage. Here is video and then a link to the instructions.
One of my most vivid memories from Walt Disney's Haunted Mansion is the singing statues. This enterprising individual has figured out a way to recreate this effect on his porch activated through an arduino circuit!
Of course, not all of these things are incredibly high tech. You could probably accomplish this one over the weekend with a few parts from the discount store. It shows how to set up a poor-person's gobo (a light with a shape in it) using a pen light, a cheap compact fromt he makeup department and some clip art. How simple is that? Of course it would be easy enough to make the light something that was not battery operated and even control it through some switching. The mirror technique is handy, though. I'd always seen this done through lensing.
Of course, if you have the means to be a more sophisticated projection you can use techniques similar to those used by the Bates Haunt. He talks about Photoshop, but it would be perfectly simple to use open-source GIMP instead.
On Sunday, October 14, 2012, my family watched Felix Baumgartner plummet from more than 120,000 feet into history. If you missed this fascinating event, here is the video. Interestingly it comes in at just about the same time that we tuned in, so you get to see the same thing that I saw. At 12:16 or so in the video there was a sudden cut away with silence that was very alarming. I thought something had gone wrong.
What an event. The touchdown was so smooth and perfect! My daughter and I talked about the precision of the checklist and all of the planning that had gone into this.
While this is amazing, what also interests me is how we came to watch it. A number of things fell into place that would have not been available even a few years ago. It's an interesting example of how my life has changed due to social media.
First, I had not heard about this jump. I guess I don't follow the correct news. A friend on Facebook pointed out that it was going to happen, expressing her dismay that this was not being covered seriously by the news. I noted it with interest, but apparently not enough interest to mark the time. I got distracted.
Later, my family was sitting down to watch the special features on the Avengers Blue-ray disk, and I happened to check Facebook on my phone. My friend had posted again that the jump was happening now and being broadcast live on the Discovery Channel. Excitedly, we adjusted our plans and decided the special features could happen at any time. We went to switch over, only to find that part of our cutting back our TV subscription (we watch little "normal" TV) removed the Discover Channel. How inconvenient!
Fortunately, it was easy enough for me to find a Live YouTube broadcast of the event. (This is a fairly new addition to YouTube.) I was struggling to get it to come up through our TV player, but it was no problem to bring it up full screen on my laptop. The three of us sat and watched fascinated as Felix dropped himself from that weather balloon in yet another example of space becoming accessible to the rest of us.
I often become frustrated at the ways my work technologies and personal technologies can clash and how things don't always work the way I'd like. Yet this is an example of how it all came together. That's really amazing!
POSIX Semaphore APIs using System V Semaphores APIs
As I noted above, the world is changing. My experience with the Freefall event was an interesting combination of interfaces with mysterious technological services. Yes, I have some idea of how they are likely implemented, but I don't really care about the details. My TV, my phone and my laptop all have the potential to interact with these things through Android and Linux and who knows what. I have no idea where the actual bits and bytes are processed and I don't really care. It's magic. It's Star Trek. It's just there!
This is increasingly the way that our world works today. What used to be a specific application on a specific server becomes a series of whatevers running wherever. A side-effect that you may not expect from this is that functions that used to be dispersed on multiple servers with their own raison d'être may get consolidated onto mainframe systems. I know developers who never imagined that they would be working on mainframes. Of course, System z has done a lot to incorporate various environments so one may be working on a System z and never know it.
However, there are times when moving an app into that environment, specifically from Intel to POWER, may require some rethinking of things. Today, on developerWorks, is an article that helps with such transitions, showing how you can implement POSIX Semaphore APIs using System V Semaphore APIs. The technique could save some trouble for people trying to port applications and make it easier for your whatever to run wherever.
Bash tricks and tips
It may be because I'm an "old guy" but I find that I can read things faster than I can watch them on video and that I can type things faster than I can point around with a mouse. So, I relish the way that even a Linux desktop makes it easy for me to jump to someplace that I can type. Of course, that also gives me access to some nifty automation and other things. Typing really isn't that bad or scary. I wish more people would dive into it.
For those who are discovering the joys of the command line, there is a nice introduction to some BASH (that's the typical Linux shell) tips and tricks. There's a lot of good stuff in the Real World Linux community by our contributing moderator, Himanshu, and others. Check it out... or better yet... join and contribute.
Himanshu has also been busy in the Real World Open Source community. This week, he's looking at VLC, a media player (and server, and converter) that I like. I've used VLC for doing all kinds of strange things, including streaming video. It's muli-platform and pretty capable.
Clearly people did not get as excited as I did about the Bossies, the Open Source Software awards, that I wrote about in my last entry. Perhaps it's just not very compelling, or perhaps there is just a general lack of curiosity in such things.
I've had my world shaken and stirred a little with recent events-- in a good way. The first has been my involvement in developing a Knowledge Path for System Z (mainframes) where I have had to dive a little bit into that mysterious world. I remember when I worked at the Texas Lottery Commission and the mainframe guys were "over there". The operators were pretty decent, but the admins were scary dudes.
Picture a scene from an old Clint Eastwood spaghetti western. The sysadmin is dressed in black, with an ornate, but well-used six gun prominently displayed on his hip. I wander up as a wide-eyed kid dressed like Huckleberry Finn. "How do I learn more about the mainframe?" I would ask.
This is met with either a steely-eyed stare as the sysadmin says through clenched teeth "You don't... and pray never have to." He then strides away, the wind whipping his long coat around him, but miraculously having no affect on his hat. Later, there are gunshots.
It has been very nice to come into contact with much less scary people in the mainframe world. People who are excited about mainframes and who reward curiosity, but it is still a precious and rare resource and there are many gateways. It's a shame, because there are many interesting ways in which a mainframe could take the place of a number of computing resources, consolidating them together. Imagine a Bring Your Own Device (BYOD) world where I don't have to worry so much about your device being completely secure because I'm not actually running my software there... I'm providing a central resource and using your device as a fancy terminal. How could that make a difference?
In any case, this is very exciting to me and I'm enjoying the chance to see the outstanding engineering that makes the System Z what it is. It is amazing that people were able to think things through so completely... a vast difference from today's rush to market.
The other thing I am working with is a group of hgh school students in a security contest called CyberPatriot. The idea is to get kids interested in technology to have a greater appreciation for how computer security works. I'm a mentor in the group, drawn in because of my Linux background. (Apparently the team was hit with an Ubuntu image last year and they were very confused by being met with a console prompt and a blinking cursor.) It's been interesting, but so far all of the samples have been Windows-based... forcing me to dust off some of my brain cells, since I haven't really had to administer Windows machines with any seriousness for a while now! (There are advantages to being a long-haired techno-freak.)
One of the things that has intrigued me is the difference between how young people approach technology today and how I remember approaching it in my youth. I suppose that part of working with technology in the Eighties was that you really had to know how to make things work or it didn't. Windows was a ways off yet and the blinking cursor on my Commodore 64 or the school's Apple IIe (or the TRS80s) gave you no comfort, no clues as to what to do next. You really had to know something about the moving parts. Interestingly, many of those parts are still there, but buried within all the menus and icons.
It intrigues me that some of these students, who are clearly clever and interested in technology, seem to be experiencing these moving parts fo the first time. Ports and processes were always a part of my computing world. Some of them seem to be discovering these things for the first time. How is that possible? All of them embrace the knowledge eagerly and they are doing great, but it amazes me that one could learn about technology without developing an understanding about how these things work... especially if you are more of a techie type.
Curiosity is one of our most valuable assets as humans. We have always dug deeper as a species, finding out how things work and new ways to apply what we learn. We take things apart. We invent. We misapply what we know in wonderful ways to create new discoveries. It seems to me that some of this curiosity is waning. We seem to be waiting for experts to tell us what to do. Experts are great, but how do you know if they're right unless you've tried on your own?
I encourage everyone to try to dig a little deeper into technology. Don't let anyone tell you that you don't need to understand something and that it will all be handled by "top men", especially in these BYOD days! What you don't know can be used to exploit you in so may ways. Bad guys use it to steal your information and resources. Employers use it to make you give up your Facebook information and spy on your personal computers and phones. Governments and commerical interest use it to accumulate information about you and game you. I don't mean to be alarmist and I think that much of this is done with good intentions... but you can't defend yourself or make your own decisions unless you engage a little.
Technology is our servant. We should all be able to take advantage of mainframes or keep our email safe from bad guys. Solutions are there for the using, but we have to be curious and we have to not take "No" for an answer. Go do a search right now for a technical topic that you don't but would like to understand. The first two or three things may be way over your head, but you will ifnd something that introduces it to you correctly. (Don't be surprised if some of the better ones are on developerWorks.) Dig, learn, play, ask questions, get answers. You will be amazed at what you can find and do.