Tag Archives: dv

why I choose the mit license

14 Jan

I’ve been slowly working on moving all of my projects and tutorials to one site. Mainly because there treated like blog posts instead of projects. This of course lead me to start looking at which license to start looking at which license to release everything as.

After a few days pouring over everything on the web I decided to choose the mit license. Why? The mit license fits how I want to release my code. It releases my code openly to anyone, only asking that the copyright in my code remain.

This will probably lead to you ask why not gpl, apache, or bsd?

why I didn’t choose gpl

the gpl license [http://en.wikipedia.org/wiki/GNU_General_Public_License] is restrictive IMO, due to the fact that it forces a user to release anyone that uses what i create under gpl as well. This is not to say that the gpl is wrong, just that its restrictive to end users / developers in a way I choose not to me. If someone takes code that I am openly releasing, I don’t want to limit them in anyway other than to leave a portion giving me credit for my portion of code, that’s it.

If i was working on some huge next best thing (think wordpress) and planned to release it, then I would use a gpl license. why? something like wordpress could easily be exploited commercially. If I take the time to build something like that I would want anyone who decides to change it or build off of it to release it themselves, to also make sure it’s free under the same license. The biggest difference here is intent. If you were to create the next swfobject.js (which uses an mit license), why restrict your users? But if your creating the next wordpress you don’t want to restrict users, just ensure that your work continues to be free.

why i didn’t choose bsd

the bsd license is similar to the mit license, but with an advertising clause. So to prevent anyone from any legal issues (who knows what counts as advertising in the future), why restrict end users?

why I didn’t choose apache

the apache license is the default license for projects at google code (you can select others), so it’s gotta be good. But it feel slightly more restrictive. That said: I’m releasing anything that uses patents. If you are then an apache license might be for you if you’d like to not restrict users.

in a nutshell

I think the best quote I came across was from eagain.wordpress.com:

if you want software to be free GPL is better than BSD. If you want use of software to be free BSD is better.

I think mit/bsd licenses are better for developers when your creating random things that might help someone (think swfobject). gpl is better if your developing an application to help everyone (think wordpress).

sid

*update* – found another good article:

http://fosswire.com/2007/04/06/the-differences-between-the-gpl-lgpl-and-the-bsd/

Reads: the evolution of search

18 Dec

From: http://blog.tigerlogic.com/chunkit/the-evolution-of-search/

A look at the History, Vision, Innovators, and Future of Information Accessibility
1. Foundations

A. The Beginning – In the Pre-WWII era, information sharing was in its relative infancy compared to today. Without the help of more modern electronics, we had reached the upper limit in efficiency of how and where information was stored and shared. The organization and cataloging of information within libraries and archives had been well perfected, but the retrieval and dissemination of that information was being hindered by technology.

B. The Vision – In the burgeoning world of scientific advancement that characterized the United States during and after WWII, astute observers like Vannaver Bush began to realize the need for a better system of information sharing. In an article published in The Atlantic Monthly, Bush observed that:

Check It Out:
» The Evolution of Search ChunkIt!: TigerLogic ChunkIt!

news: 8 Experts Predict How Web 2.0 Will Evolve In 2009

11 Dec

From: http://www.fastcompany.com/blog/allyson-kapin/radical-tech/10-experts-predict-how-web-20-will-evolve-2009

2008 was the year that Web 2.0 became more mainstream. More ad agencies, businesses, and non-profits used Web 2.0 tools as a way to build community and relationships, cross promote products and issues, and integrate their online and offline marketing strategies. Some like Zappos were extremely successful and nailed their Web 2.0 strategy while others like the makers of Motrin were burned by mommy bloggers for not doing proper research on their target audience.

With the economy in a slump and budgets being cut in traditional print and TV advertising campaigns many will be looking to the Web 2.0 world to reach their constituents. So what should be on your Web 2.0 radar for 2009? Web 2.0 gurus give you the low down.

Check It Out:
8 Experts Predict How Web 2.0 Will Evolve In 2009 | Radical Tech | Fast Company

Reads: The Innovator's Dilemma, When New Technologies Cause Great Firms to Fail

11 Dec

Came across an excerpt from:
The Innovator’s Dilemma, When New Technologies Cause Great Firms to Fail
By Clayton M. Christensen

It’s a good read detailing how new innovations disrupt tech markets and how they cause established companies to fail.

from http://www.businessweek.com/chapter/christensen.htm

How Can Great Firms Fail? Insights from the Hard Disk Drive Industry

When I began my search for an answer to the puzzle of why the best firms can fail, a friend offered some sage advice. “Those who study genetics avoid studying humans,” he noted. “Because new generations come along only every thirty years or so, it takes a long time to understand the cause and effect of any changes. Instead, they study fruit flies, because they are conceived, born, mature, and die all within a single day. If you want to understand why something happens in business, study the disk drive industry. Those companies are the closest things to fruit flies that the business world will ever see.”

Indeed, nowhere in the history of business has there been an industry like disk drives, where changes in technology, market structure, global scope, and vertical integration have been so pervasive, rapid, and unrelenting. While this pace and complexity might be a nightmare for managers, my friend was right about its being fertile ground for research. Few industries offer researchers the same opportunities for developing theories about how different types of change cause certain types of firms to succeed or fail or for testing those theories as the industry repeats its cycles of change.

The Innovator’s Dilemmafrom

Google Was Three Hours Away From Being Charged As A Monopolist

3 Dec

When Google pulled out of its proposed search advertising deal with Yahoo last month, it was chief legal counsel David Drummond who made the announcement. He cited concerns of a “protracted legal battle,” but only now do we learn that the Justice Department was only three hours away from filing an antitrust lawsuit to block the deal. Sandy Litvack, the prosecutor hired by the justice Department to head up the case, tells Am Law Daily

Google Was Three Hours Away From Being Charged As A Monopolist

Ads: Ad Unit Guidelines

2 Dec

The IAB Ad Unit Guidelines are intended for marketers, agencies and media companies for use in the creating, planning, buying and selling of interactive marketing and advertising. The IAB’s Ad Sizes Working Group meets on a bi-annual basis to review proposed new ad units and issue updated voluntary guidelines as appropriate. The process whereby these new units are reviewed and considered can be downloaded here.

IAB – Ad Unit Guidelines

Apple: Ummm, yeah, you kinda need an anti virus now

2 Dec

If you don’t know: I’m anti Mac. I love ipod, tempted by iphone, but my main issue is with the mac os and pretty much anyone I know that has switched. I’ll admit some of the newer laptops are oh so shiny, tiny, and have made me drool on occasion. Anyways more on my anti mac crusade: Apple is advising users to install anti virus software. Oh yeah freebsd users are still safe :P

We are all notoriously snobbish when it comes to not installing anti-virus software, but largely because we all know that malware is essentially non-existent when it comes to the Mac. Yes, yes, there’s the occasional scare, but seriously: when was the last time that you noticed an actual piece of malware on the Mac of someone you know that actually did any harm? Yeah, exactly.

Nevertheless, the Washington Post’s Brian Krebs noticed a November 21 technical note published on the Apple website that reads:

Apple encourages the widespread use of multiple anti-virus utilities so that virus programmers have more than one application to circumvent, thus making the whole virus writing process more difficult.

Of course, Apple has long-touted the fact that Macs just, simply don’t get viruses. Remember this ad?

Apple says users should install anti-virus software | MacUser | Macworld

good security how to: flexion – Quick 'n Dirty Security and Visibility

1 Dec

Came across this today while looking into fail to ban. This is a pretty good overview of applications you can use to secure your server. The directions are for ubuntu, but source packages and alts are just a google away of course.

Quick ‘n Dirty Security and Visibility

1. Introduction
2. Firewall
2.1 FireHOL
2.2 ufw
3. Intrusion Prevention
3.1 Fail2Ban
3.2 sshdfilter
4. Intrusion Detection
4.1 chkrootkit
4.2 rkhunter
5. Log Monitoring
5.1 LogWatch and Dropbear
6. Security Update Notification

Introduction

This article describes some of the tools and utilities I use to better secure and monitor my servers. Simply following the article below does not get you a secure box, you also need to ensure any services you have running are correctly configured and you should disable, or better yet remove, any services or software you do not require.

Quickn Dirty Security and Visibility

Building Something Scalable: Caching

5 Oct

I’ve been seriously getting my kicks with scalability fora number of months, so why not start on ongoing series where I talk about what I’ve learned / found?

So welcome to to the first: Building Something Scalable – An ongoing experiment. This post covers caching. I’ll cover delivery in the next post.

Keep in mind language wise I’m using php, but the general advice should be sound, regardless of language. If you disagree with something or have a better way, feel free to comment.

So now that I’ve ranted off 4 topics, maybe I should expand on them a bit.

Use Caching

Caching is a good thing, but use caching is a pretty vague statement, so let’s expand.

Caching isn’t just a one ring to rule them all type of solution. Its actually a fixture of a number of different solutions, that work together to boost your site / applications overall performance.

Database caching

I consider database caching a 2 part solution. You have the mysql query cache, but I also like to have a server side query cache as well. Why? I tend to use oop and having a server side query cache allows me to cut some overhead both appilcation wise, and by preventing me from having to connect / query mysql.

The big issue with server side query caches is stale queries. The mysql query cache prevents stale caches automaticly, but with a server side query cache we’ll need to set a TTL (time to live). I tend to go with something really low like 5-10 seconds.

5-10 seconds may seem pointless, but it allows higher traffic applications to handle a number of requests with fewer queries to mysql. This takes some of the load from mysql, so  your database is performing under less load than it would have without the server side query cache.

There is plenty of information on the mysql query cache online, so fire up google and start researching. For your server side cache here a few things to keep in mind

  1. keep your cache in a secure location. If your using a file cache this means outside of your web directory
  2. hashing is a quick and painless way to uniquely id your queries. md5(’select * from table1′) will allows return md5(’select * from table1′) if done correctly.
  3. prevent cache filename collisons.
  4. do a light weight encoding on cache files. base64_encode / base64_decode are quick and easy to use. They’re not secure, but its a good idea to add some basic obfuscation
  5. keep your TTL low. Your query cache should try to stay as fresh as possible.

Opcode Cache

Php is compiled / ran at runtime (when you request a page / script). Opcode caches store the compiled code so that your code doesn’t have to be compiled for every request. Opcode caches can increase your codes performence by up to 90%, but then again, any increase helps the overall perforence of your site / application.

There are a number of opcode caches avaible for php. I prefer xcache, but there are a number of other opcode caches available for php.

Static content cache

Static content unlike dynamic content is, well static. Your probably wondering: Why cache something thats already static? Simple, performence. Static content though is cached / served differently than dynamic content. I know this touching more on delivery, but its still worth mentioning.

Static content is often served through a CDN (content delivery network) or a web cache. A CDN and web cache act similarly, except that a cdn has a number of servers setup in various locations.

Content Delivery Network
A CDN acts just as it’s name says: It delivers your content via its network of servers. The CDN selects a server closest to the location of the user, and serves your content from that location. Whats the benifit? Faster delivery of your content. Is it worth it? That’s a question only you can answer. Do some research, compare the solutions, check you budget – and you’ll have your answer.

Web Cache
A web cache or reverse proxy simply put delivers your content faster. I’m not to well versed in the science of it all, but here’s a basic break down of what I do know:

Web caching software like vanish (in the past squid was the standard) handle servering static content better than apache, and with a smaller footprint. The web cache creates a cache of your content when requested and then delivers your content from its memory / disk cache.

The most obvious benefit from all this? Reduced server load. Apache is a resource hog (there I said it), but that will be covered in a future post in this series. By moving static content delivery to software created just for this task your freeing resources and of course getting content to users quicker.

Output Cache
So far we’ve looked at a number of ways to increase the speed of dynamic and static content, but there’s still one major item left out: Output Caching.

As your scripts / application generates pages, you can cache them to be served for future requests. Output caches in general can be as basic or complex as you need them. A few things to keep in mind.

  1. stale content, your cache should have aTTL(time to live) that prevents it from serving stale content
  2. filename collisons – your naming scheme should prevent filename collisons
  3. store your cache outside of your web folder
  4. logged in users / vs non logged in users – come up with a solution that deals with this.

Variable / Object Caches

Your code has objects and variables, often some of these objects are database intensive. An object / Variable cache is a way to store your objects and variables. The thing to keep in mind with these types of caches is speed.

It makes no sense to cache something like $var=1+1;. You can run that command quicker than you would access it from the cache. A good example of somethign to cache would a class object that runs a number of queries on the database, but accesses content that doesn’t change as often. By caching this object you can prevent a few database queries (or cache calls). Or a class object that generates a number of child class objects.

I could go on and on about this subject but lets get to the point. If your application is running on only one server use a file cache. If your application uses more than once server look into memcached / memcachedb.

Thats it.
Hopefully that was short and sweet, the next post will cover delivery.

Greg – Out

Google likes family guy, or at least Seth MacFarlane

2 Jul

LOS ANGELES — Google is experimenting with a new method of distributing original material on the Web, and some Hollywood film financiers are betting millions that the company will succeed.
Skip to next paragraph
Enlarge This Image

Seth MacFarlane, the 34-year-old creator of “Family Guy.”

In September, Seth MacFarlane, creator of “Family Guy” on television, will unveil a carefully guarded new project called “Seth MacFarlane’s Cavalcade of Cartoon Comedy.” Unlike “Family Guy,” which is broadcast on Fox, this animation series will appear exclusively on the Internet.

The innovative part involves the distribution plan. Google will syndicate the program using its AdSense advertising system to thousands of Web sites that are predetermined to be gathering spots for Mr. MacFarlane’s target audience, typically young men. Instead of placing a static ad on a Web page, Google will place a “Cavalcade” video clip. The content will also be distributed via YouTube.

Advertising – Google and Creator of ‘Family Guy’ Strike a Deal – NYTimes.com