Tuesday, August 16, 2005

Wanna Make $4500?

As good and cheap as Open Source apps are, they're cryptic. What happens if you have a really good application that is so cryptic that its success and longevity is threatened? The software needs a code bounty. For select applications, companies are offering code bounties. If you round out the documentation for a product, you can get rewarded with cash. The dollar values range from $300 to $4500+.
So, if you can write and dissect an application for the purpose of description, make like Boba Fett and hunt for that bounty!

Saturday, August 13, 2005

Content Is Key

This is a swell article: Basically, it underlines the importance of content.
Some simple rules that I have found:

Write well, write little.
Brevity is the soul of wit and genius is the foundation. If you can write a long piece that explores a concept, write something short. Don't run out of good prose before you run out of material. If you read the piece and it's weak: condense. The difference between gravy and broth is condensation. People like short punchy online pieces. We're used to changing channels when we stare at screen. People get fidgety when looking at the computer. Also, books don't glow. Unlike a book, you have to put yourself where the computer is. All this equates to an uncomfortable experience. Their tolerance for online reading is less than the paper world. If you could slog through a 20,000 word (40 page) treatise on paper before petering out, the same subject matter may only hold you on screen for 6,000 words (40 screens) or less.

Timely, colorful and buzzworderiffic. When you write speak to your audience but don't forget that they are tied to pop culture is some small way. Leverage that tie. Throw in references to timely issues and pop culture where such would fit. In other words, don't liken the oil prices to Jessica Simpson's ample qualities and housing starts to Peter Jackson's shrinking waistline. But you can get away with some of the longer lasting cultural touchstones to keep your material from being dated. Why? Why mention the Rolling Stones in your piece on perscription medication for seniors? Google. There are about 20 words and phrases from this article that will make it into the search engines (well: it all goes in and gets ignored) and few of them are about "content." When you visit Google, type in a keyword and find hits, you are not taken to the site you seek: you are taken to Google to see what you selected and then taken to the resource. A popular site becomes more popular. Throw in buzzwords and you can benefit from accidental traffic. Keep this concept low key however: if non-sequitor hits form the bulk of your traffic, your traffic rank will fall.

Unseen qualities. If there are any important points in your article, emphasis them with the "title" attribute. The title attribute can be slapped into almost anything: images, hrefs, spans, etc.. When you users mouse over a section, they can get additional information. I like the < span > tag. It can be innocously added.

This is an example
< span title="This is how to code it with a title tag" >This is an example< /span >

I like titles but search engines LOVE titles. It's good form, it helps users and it will raise your profile.

Metered novelty. People like new content. They like it so much that they will return if stuff is new every time. I'm a geek. I visit three sites regularly: TrekToday, Force.net and Cruel.com. They all have two things in common: new content daily and they probably get more pieces than they publish in a day. Newspapers have editions. When the paper is full, stuff gets bumped to the next day. Do the same. Of course, you might not have time to do a daily edition. You might only have a few hours on the weekend and a couple of hours through the week. This is where a content management system really earns its keep. Some products can time content release. You can set up a number of pieces, time the release date and let it go. Monday and Tuesday roll by and your items pop onto the screen like magic. Whenever I've built a tool for content delivery, I usually push really hard to have this feature.

Monday, August 08, 2005

Not Ready For Prime Business Time

Is an application business ready? After getting burned a few times, this becomes an excellent question. It's a critical question if you're installing a Linux application. You can hate Microsoft all you want. If you REALLY hate them, you'll stop giving them money for everything except their Windows OS. In most cases of Open Source products money isn't changing hands. Some techie with time to spare has crafted up an app and put it out there for the world to enjoy. They loved to conceptualize and code.
The conservation of characteristics takes over: the better the code, the cheaper the code, the worse the documentation and supporting material. Sure it works like a charm, but you have to get past the dense-to-non-existant installation script; the documentation that might read only "This is the documentation." What makes an OpenCVS into a Skype is all of the extras. No, no, no: OpenCVS and Skype are not at all the same products. They are both offered for free. They are popular. They sit on opposite sides of the ease-of-use scale. Run the install and voila you have Skype. Run the OpenCVS and... and... (insert sound of techie falling down a chasm of lost productivity here).
Ease-of-use and Business-Readiness are almost one in the same. If something crashes all the time, it's not ready nor easy to use. If something looks great, works great but has gaping security holes it's-- well it's probably a Microsoft product-- but it's also not business ready.

Hence, it may be ideal to have a Business Ready Rating standard (http://www.openbrr.org/). Business Readiness Rating (BRR) is being proposed as a new standard model for rating open source software. It is intended to enable the entire community (enterprise adopters and developers) to rate software in an open and standardized way. BRR is a community initiative that is being sponsored by Carnegie Mellon West Center for Open Source Investigation, O'Reilly CodeZoo, SpikeSource and Intel. Phase one is a public comment period: asking the community to provide feedback and help shape this standard to make it useful to both enterprise adopters and open source developers.

So, if this strikes a chord, let them know :)

Free Clip Art... really...

In the vein of the Open Source movement comes: Open Clip Art (http://openclipart.org/). The SVG material is releases under the creative commons agreement. You can download an upload clip art to their repository.

I've had the thought that after all of the years of cease-and-desist orders issued by Fox to X-Files fans; and Lucasfilm to Star Wars fans, that there should be the Open Source concept applied to fictional characters. Someone makes a galaxy, someone else makes an alien race, someone else makes a chacters; etc. Once contributed, any creator can use all of the intellectual property but claim ownership to none of it. They would be able to publish books and hold copyright over the majority of the work as an intellectual property, but any minority element would be Open Source. In other words. Publish a book and it's yours; as is your book broken into two halves and sold by someone else-- that's a no-no. However, if you describe the lush blue forests of Deneb 5 in there, that's a minority element that becomes part of the Collective Intellectual Property. Anyone can use that. There would have to be rules for establishing, maintaining and reparing canon, but that could be worked out. Maybe the creator of an element gets to nix an ammendment; or gets two months to nix an ammendment so that fickle or stubborn creators don't get to stall their Open Source franchise.

Saturday, August 06, 2005

SaferMail

I hate spammers. They're weasels. I have come up with a little script to try to stymie those SOBs: SaferMail. More info

I wrote the first version in PHP. Now, I have a copy ready for ASP.NET. I have versions for more platforms coming soon. Enjoy!

S2S - Site-To-Site Content

Peer-to-Peet (P2P) overhauled the Internet medium. No longer did you have a single point of failure, you could rely on on multiple peers to fulfill your data requirements.

Site-to-Site (S2S) is analagous to web services with the emphasis being website-to-website data fulfillment.

A website presents a finished website. Before they used to link to content on other sites. Users would follow the link to get the content and you'd lose them. Web services (S2S) provide content for that originating website so that the users don't have to leave the site for other pastures.

The good side: you can keep your traffic. The bad side: someone else loses hits but not the bandwidth. There are remedies to the formula.

Friday, August 05, 2005

TLDs (as of August 2005)


Country/Region NameTLD Region CodeITU Country Code
AFGHANISTAN.afAFG
ÅLAND ISLANDS.ax
ALBANIA.alALB
ALGERIA.dzALG
AMERICAN SAMOA.asASM
ANDORRA.adAND
ANGOLA.aoAGL
ANGUILLA.aiAIA
ANTARCTICA.aqATA
ANTIGUA AND BARBUDA.agATG
ARGENTINA.arARG
ARMENIA.amARM
ARUBA.awABW
AUSTRALIA.auAUS
AUSTRIA.atAUT
AZERBAIJAN.azAZE
BAHAMAS.bsBAH
BAHRAIN.bhBHR
BANGLADESH.bdBGD
BARBADOS.bbBRB
BELARUS.byBLR
BELGIUM.beBEL
BELIZE.bzBLZ
BENIN.bjBEN
BERMUDA.bmBMU
BHUTAN.btBTN
BOLIVIA.boBOL
BOSNIA AND HERZEGOVINA.baBIH
BOTSWANA.bwBOT
BOUVET ISLAND.bvBVT
BRAZIL.brBRA
BRITISH INDIAN OCEAN TERRITORY.ioIOT
BRUNEI DARUSSALAM.bnBRU
BULGARIA.bgBUL
BURKINA FASO.bfBFA
BURUNDI.biBDI
CAMBODIA.khCBG
CAMEROON.cmCME
CANADA.caCAN
CAPE VERDE.cvCPV
CAYMAN ISLANDS.kyCYM
CENTRAL AFRICAN REPUBLIC.cfCAF
CHAD.tdTCD
CHILE.clCHL
CHINA.cnCHN
CHRISTMAS ISLAND.cxCXR
COCOS (KEELING) ISLANDS.ccCCK
COLOMBIA.coCLM
COMOROS.kmCOM
CONGO.cgCOG
CONGO, THE DEMOCRATIC REPUBLIC OF THE.cdCOD
COOK ISLANDS.ckCOK
COSTA RICA.crCTR
CÔTE D'IVOIRE.ciCTI
CROATIA.hrHRV
CUBA.cuCUB
CYPRUS.cyCYP
CZECH REPUBLIC.czCZE
DENMARK.dkDNK
DJIBOUTI.djDJI
DOMINICA.dmDMA
DOMINICAN REPUBLIC.doDOM
ECUADOR.ecEQA
EGYPT.egEGY
EL SALVADOR.svSLV
EQUATORIAL GUINEA.gqGNE
ERITREA.erERI
ESTONIA.eeEST
ETHIOPIA.etETH
FALKLAND ISLANDS (MALVINAS).fkFLK
FAROE ISLANDS.foFRO
FIJI.fjFJI
FINLAND.fiFIN
FRANCE.frFRA
FRENCH GUIANA.gfGUF
FRENCH POLYNESIA.pfPYF
FRENCH SOUTHERN TERRITORIES.tfATF
GABON .gaGAB
GAMBIA.gmGMB
GEORGIA.geGEO
GERMANY.deDEU
GHANA.ghGHA
GIBRALTAR.giGIB
GREECE.grGRC
GREENLAND.glGRL
GRENADA.gdGRD
GUADELOUPE.gpGLP
GUAM.guGUM
GUATEMALA.gtGTM
GUINEA.gnGUI
GUINEA-BISSAU.gwGNB
GUYANA.gyGUY
HAITI.htHTI
HEARD ISLAND AND MCDONALD ISLANDS.hmHMD
HOLY SEE (VATICAN CITY STATE).vaVAT
HONDURAS.hnHND
HONG KONG.hkHKG
HUNGARY.huHNG
ICELAND.isISL
INDIA.inIND
INDONESIA.idINS
IRAN, ISLAMIC REPUBLIC OF.irIRN
IRAQ.iqIRQ
IRELAND.ieIRL
ISRAEL.ilISR
ITALY.itITA
JAMAICA.jmJMC
JAPAN.jpJPN
JORDAN.joJOR
KAZAKHSTAN.kzKAZ
KENYA.keKEN
KIRIBATI.kiKIR
KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF.kpKRE
KOREA, REPUBLIC OF.krKOR
KUWAIT.kwKWT
KYRGYZSTAN.kgKGZ
LAO PEOPLE'S DEMOCRATIC REPUBLIC .laLAO
LATVIA.lvLVA
LEBANON.lbLBN
LESOTHO.lsLSO
LIBERIA.lrLBR
LIBYAN ARAB JAMAHIRIYA.lyLBY
LIECHTENSTEIN.liLIE
LITHUANIA.ltLTU
LUXEMBOURG.luLUX
MACAO.moMAC
MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF.mkMKD
MADAGASCAR.mgMDG
MALAWI.mwMWI
MALAYSIA.myMLA
MALDIVES.mvMLD
MALI.mlMLI
MALTA.mtMLT
MARSHALL ISLANDS.mhMHL
MARTINIQUE.mqMTQ
MAURITANIA.mrMTN
MAURITIUS.muMAU
MAYOTTE.ytMYT
MEXICO.mxMEX
MICRONESIA, FEDERATED STATES OF.fmFSM
MOLDOVA, REPUBLIC OF.mdMDA
MONACO.mcMCO
MONGOLIA.mnMNG
MONTSERRAT.msMSR
MOROCCO.maMRC
MOZAMBIQUE.mzMOZ
MYANMAR.mmBRM
NAMIBIA.naNMB
NAURU.nrNRU
NEPAL.npNPL
NETHERLANDS.nlNLD
NETHERLANDS ANTILLES.anANT
NEW CALEDONIA.ncNCL
NEW ZEALAND.nzNZL
NICARAGUA.niNIC
NIGER.neNGR
NIGERIA.ngNIG
NIUE.nuNIU
NORFOLK ISLAND.nfNFK
NORTHERN MARIANA ISLANDS.mpMNP
NORWAY.noNOR
OMAN.omOMN
PAKISTAN.pkPAK
PALAU.pwPLW
PALESTINIAN TERRITORY, OCCUPIED.ps
PANAMA.paPNR
PAPUA NEW GUINEA.pgPNG
PARAGUAY.pyPRG
PERU.pePRU
PHILIPPINES.phPHL
PITCAIRN.pnPCN
POLAND.plPOL
PORTUGAL.ptPOR
PUERTO RICO.prPRI
QATAR.qaQAT
RÉUNION.reREU
ROMANIA.roROM
RUSSIAN FEDERATION.ruRUS
RWANDA.rwRWA
SAINT HELENA .shSHN
SAINT KITTS AND NEVIS.knKNA
SAINT LUCIA.lcLCA
SAINT PIERRE AND MIQUELON.pmSPM
SAINT VINCENT AND THE GRENADINES.vcVCT
SAMOA.wsWSM
SAN MARINO.smSMR
SAO TOME AND PRINCIPE.stSTP
SAUDI ARABIA.saSAU
SENEGAL.snSEN
SERBIA AND MONTENEGRO.csSCG
SEYCHELLES.scSEY
SIERRA LEONE.slSRL
SINGAPORE.sgSGP
SLOVAKIA.skSVK
SLOVENIA.siSVN
SOLOMON ISLANDS.sbSLB
SOMALIA.soSOM
SOUTH AFRICA.zaZAF
SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS.gsSGS
SPAIN.esESP
SRI LANKA.lkLKA
SUDAN.sdSDN
SURINAME.srSUR
SVALBARD AND JAN MAYEN.sjSJM
SWAZILAND.szSWZ
SWEDEN.seSWE
SWITZERLAND.chCHE
SYRIAN ARAB REPUBLIC.sySYR
TAIWAN, PROVINCE OF CHINA.twTWN
TAJIKISTAN.tjTJK
TANZANIA, UNITED REPUBLIC OF.tzTZA
THAILAND.thTHA
TIMOR-LESTE.tl
TOGO.tgTGO
TOKELAU.tkTKL
TONGA.toTON
TRINIDAD AND TOBAGO.ttTTO
TUNISIA.tnTUN
TURKEY.trTUR
TURKMENISTAN.tmTKM
TURKS AND CAICOS ISLANDS.tcTCA
TUVALU.tvTUV
UGANDA.ugUGA
UKRAINE.uaUKR
UNITED ARAB EMIRATES.aeARE
UNITED KINGDOM.uk, .gbGBR
UNITED STATES.usUSA
UNITED STATES MINOR OUTLYING ISLANDS.umUMI
URUGUAY.uyURY
UZBEKISTAN.uzUZB
VANUATU.vuVUT
VENEZUELA.veVEN
VIET NAM.vnVNN
VIRGIN ISLANDS, BRITISH.vgVGB
VIRGIN ISLANDS, U.S..viVIR
WALLIS AND FUTUNA.wfWLF
WESTERN SAHARA.ehESH
YEMEN.yeYEM
ZAMBIA.zmZMB
ZIMBABWE.zwZWE


I can never find this stuff when I need it.

Find Replace Regular Expressions

I love EditPlus. It's really powerful program.
I was working on some PHP code. I had a list of variables-- column names from a SQL database.
Before:
first_name
initial
last_name
address_1
address_2
city
state
postacode
country_select
organisation
work_phone
fax
home_phone
mobile_phone
I needed to turn the columns into lines in the code that were variables, wrap them with some code and go from there.

After:
$first_name = stripslashes($first_name);
$initial = stripslashes($initial);
$last_name = stripslashes($last_name);
$address_1 = stripslashes($address_1);
$address_2 = stripslashes($address_2);
$city = stripslashes($city);
$state = stripslashes($state);
$postacode = stripslashes($postacode);
$country_select = stripslashes($country_select);
$organisation = stripslashes($organisation);
$work_phone = stripslashes($work_phone);
$fax = stripslashes($fax);
$home_phone = stripslashes($home_phone);
$mobile_phone = stripslashes($mobile_phone);
How? Using Editplus' find-replace regular expression:

Find : ^([^\n]+)
Replace: $\1 = stripslashes($\1);

Translation:
Find: From the beginning of a line (^) look for everything that isn't a line break (a \n or in this case look for a NOT newline (^\n)). Save what you find.
Replace: Take the first thing saved (\1) and use it as the start, put in some PHP code. Use it again. Close off the statement.

Voila.

tags: editplus find-replace regex

Thursday, August 04, 2005

Mail Moving

I needed a Linux one-liner to pull off a mail move of particular mail from one user to another

cp -p `grep -lr "media" /home/jones/Maildir` /home/jones/holding

In more generic terms, it looks like this:

cp -p `grep -lr "[matching term]" [directory to search]` [destination directory]

the -p option on the copy preserves attributes (so you omit some by date).

I copied these files into a holding directory in Jones' directory so that I could do more work on the files. Then, I moved the finished list to Smith's directory.

mv * /home/smith/Maildir/new

They arrived with the wrong ownership. So, I chowned them to fit the required ownership-- that of the mail group.user intent on downloading the messages

chown smith.smith *