Software development links, again
Making the rounds...
Software development links, again
Making the rounds...
QoTD: Bob Hoffman
Online advertising was supposed to be interactive. It
was supposed to rescue us from having to force people
into looking at our ads. Consumers were going to want
to interact with us, they were going to want to have
conversations with marketers, they were going to want
to have relationships with brands.
It was all fantasies and delusions based on naive interpretations of consumer behavior by people who had a whole lot of ideological commitment to the web, and very little experience with real world marketing.
How can I break the Facebook habit?
I understand all those
I'm quitting social
site posts, really. The open web is much more
fun, useful, and promising in the long run than
hanging out on whatever current site has taken the
place of AOL, CompuServe, and MySpace.
But, really, just quitting a site? Might be harder than it sounds. Habits are hard to break, so here's a list of things to help add some motivation to social network quitteration.
Awkward friending. Every week or so, connect with a person who isn't really your friend, but would find it difficult to turn you down. Be a creepy ex-coworker. Don't spam, though.
Social marketing FAIL Find the most awful "engaged brands" in the ads on social sites and follow or friend them. Keep yourself from being tempted to return to a social site by knowing that your feed there will be full of FREE WEBINARs.
Social marketing double FAIL Befriend the most heinous companies and astroturf organizations you can find. The "American Sugar Alliance" and other groups looking for corporate welfare usually do it for me.
Klouchebaggery. Do a search for "social media marketing" and do the first tip you find. These change all the time, so be creative.
Open the RSS spigot. Set up an account on a
site such as dlvr.it
to automate posting your blog's feed to the social
site. Good for breaking a social networking habit.
(If you're all like,
I just need to get on and
post my one blog link, and before you know
it you've been on for an hour, this is better.
And yes, dlvr.it works for me.)
It's always Hug a Spammer Week. Someone named
Melissa wrote to tell me,
I like your picture and
you look cute n awesome. Well, Melissa, I think
you're cute n awesome too. Friend request accepted,
and welcome to my social graph.
Bonus link: Silicon Valley’s Problem by Catherine Bracy.
Can I uninstall Java?
The answer is almost certainly yes—unless you're a Java programmer. It can't hurt to remove it if you don't need it, and can probably help.
I've been running without Java on the desktop for years. The only thing that I've needed to put it back for has been with one extremely "legacy" behind-the-firewall application.
There are some old corporate applications that still depend on Java in the browser. If you're in the situation of having to use one of those, don't mess with the software installed on your company system, because the IT Department probably has a required setup that you're supposed to use, and you can just use that. (What are you reading random blogs for? Call your company help desk if you have questions about that machine!)
For your own computers, the instructions for removing Java depend on the OS. On Linux, you can use the regular system package manager to remove Java. On other platforms you can read How do I uninstall Java on my Windows computer? and How to disable Java on your Mac.
What's up with the Q and A posts?
Just realized that I have gotten into the bad habit of writing stuff on a web questions and answers site instead of here. (cue kid from The Simpsons saying HA HA!)
Saving some, deleting the rest.
What are the benefits of participating in open source?
Depending on the project and your role in it, you might get lots of different benefits.
Learn new languages and tools to keep your skill set current.
Practice techniques that you might not be able to justify putting time into in a corporate environment. (For example, coding for extreme security or efficiency or minimum power and memory usage.)
Make connections with people outside your company.
Signal your technical competence and ability to work with others. Often, willingness to put time into open source depends on the job market for high-skill non-management programmers. The more that the hiring process depends on formal education and certification, and the less input it has from peers, the less incentive that a programmer has to Signal his or her skill using open source.
Talk with real users about bugs and features without a company filter, to get a better understanding of a software problem space.
How does AIA affect open source?
The America Invents Act increases the benefits of participating in open source in two ways.
First of all, defensive publication becomes a much more powerful tool. The
AIA also provides for a challenge system, which will be difficult for most companies to use independently. Industry organizations will probably have a new role in challenging patents that attack their members. The EFF is already doing this for 3D printing patents.
What does ssh -t do?
-t option allocates a pseudo-terminal for
ssh. This comes in handy when you want to "double
Let's say you can reach the host bastion and bastion can reach internal but you can't reach internal. No problem, right? You can log into internal like this:
ssh bastion ssh internal
No joy: "Pseudo-terminal will not be allocated because stdin is not a terminal."
Now try that again with -t...
ssh -t bastion ssh internal
And it works.
What are the differences between open-source licenses?
Open-source licenses require different degrees of reciprocity from a licensee. In this list, each license category includes the same basic terms as the previous category. I'll leave out the corporate vanity licenses, since they aren't typically adopted by new projects.
No reciprocity: new BSD, MIT. These licenses simply grant permission to copy the software, and disclaim warranty.
Patent reciprocity: Apache. In order to redistribute software under this license, a licensee must offer a license to any of the licensee's patents that apply.
Partial copyright reciprocity: Mozilla Public License, Lesser GPL. A licensee must provide source code for changes to the original work, but can still add code that is somehow kept distinct from the original, and keep it proprietary.
Broad copyright reciprocity: GPL (all versions). If a licensee distributes a modified version that constitutes a "derivative work" for purposes of copyright law, that derivative work must be available in source code form.
Protections from complex legal schemes: GPLv3. Some patent trolling schemes and code signing systems have the effect of working around the reciprocity requirements of the GPL. This later version of the license closes some loopholes.
SaaS reciprocity: Affero GPL. The only commonly used license that requires a licensee to redistribute source even if the code is not actually redistributed. Offering AGPL-licensed software for use over a network also triggers the requirement to redistribute source.
Why did Linux succeed on servers?
Unlike the RISC Unix boxes from back in the day, a typical PC-architecture server is a Purchasing Manager's grab bag of cheap parts available on attractive terms. As an OS developer, you don't know what weird mix of hardware you're going to have to support, even if you're part of the OS team at the hardware vendor. ("Hey, it turns out that the new server is going to have RatBag 2000 Ethernet cards after all. That's not a problem, it it?") This situation was even worse when more parts were on PCI cards, not the motherboard.
So in order to make an OS that will run on all the bastard spawn x86 servers out there, you need to have either (1) the market power to make the hardware vendors code and test the drivers for you to support a stable driver ABI, as Microsoft did for Windows NT, or (2) the hacker chutzpah to break incompatible drivers frequently, so that in order to work at all, a driver has to "live in the tree" and be maintained as part of the OS. This is the route that Linux chose.
So the secret to Linux's success on servers is here: Stable API Nonsense
New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.
Keep up with the latest Advogato features by reading the Advogato status blog.
If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!