Posts or Comments 30 July 2010
cialis contrassegno prezzo viagra italia commander viagra generique cialis 10 prix zithromax generique acheter viagra belgique levitra generico forum acquisto viagra on line comprare cialis in svizzera viagra belgique sans ordonnance farmaco levitra viagra farmaco plavix prescription achat propecia cialis 10 mg funziona levitra acquisto on line acheter cialis original viagra alle donne viagra a vendre quebec vendita viagra on line compra viagra acheter lioresal acquista cialis generico cialis 20 prezzo acheter accutane acheter amoxicillin levitra france flagyl 500 mg cialis super active viagra rapide vendita cialis generico viagra reseller femme viagra propecia pharmacie propecia moins cher paris acheter priligy dapoxétine viagra sans ordonnance viagra prezzo in farmacia costo cialis prescrizione cialis viagra france comprare viagra in internet comprare viagra senza carta di credito svizzera viagra cialis farmaco dysfonction erectile acquistare cialis generico cialis costo kamagra 100 médicaments cipralex acheter viagra pas chere clomid ordonnance priligy canada viagra svizzera ricetta cialis 20 mg farmacie viagra acquistare viagra su internet viagra a vendre acheter lioresal baclofen acquistare viagra in contrassegno acheter clomid en france prix plavix france acheter cialis 20mg viagra x donne farmaco cialis pfizer viagra prix kamagra inde acheter viagra cialis acheter viagra quebec cialis 5 mg quanto costa acheter cialis viagra levitra 10 mg generico viagra pour femme en france viagra prix officiel sildenafil prezzo viagra prix france cialis 5 mg prezzo aquisto levitra viagra dove comprarlo cialis le prix acheter zovirax comprare viagra a roma viagra generique en pharmacie strattera prix tadalafil naturale cialis costo farmacia forum cialis generico viagra femme forum cialis naturale tadalafil generico italia achat de viagra levitra prezzo in farmacia levitra medicinale comprare viagra in farmacia pharmacie propecia viagra farmacie viagra a vendre montreal kamagra pas cher cialis su internet viagra generico funziona prix propecia pharmacie viagra des femmes viagra acquisto in contrassegno flagyl sans ordonnance achat clomid en france azithromycin 250 mg forum achat viagra prezzo levitra 10 mg cialis generico online cialis farmacia svizzera prix cialis 5 achat nolvadex acheter cialis forum viagra medicinale compro levitra viagra da 50 acquisto viagra italia viagra ricetta levitra 20 mg viagra cialis levitra differenze acheter flagyl metronidazole viagra sublinguale viagra vendita in italia cialis a roma kamagra prezzo medicinale cialis comprare cialis online viagra cialis differenza levitra confezioni e prezzi propecia ordonnance costo viagra farmacia flagyl ordonnance acquisto cialis generico acheter cialis sans ordonnance cialis 20 mg effetti collaterali strattera 80 mg acheter accutane en ligne prix zovirax prix plavix plavix 75mg proscar sans ordonnance acheter azithromycin acquistare viagra generico italia farmacia cialis compra viagra in italia viagra 25 mg prix paxil 10 mg viagra generico in italia cialis vendita farmacia prezzo cialis 20 mg sildenafil donne achat cialis cialis vendita on line viagra generico contrassegno nolvadex achat vendita cialis online cialis generico senza ricetta acheter kamagra france propecia prix paris generique du viagra cialis senza prescrizione medica viagra generico senza ricetta prezzo cialis farmacia viagra generico forum cialis achat france prix cialis en france cialis o simili clomid 200mg prezzo viagra achat cialis en france viagra cialis acheter sildenafil moins cher viagra farmacia cialis per donne cialis generico esiste finasteride 1mg prix cialis 5 prix prix finasteride acheter viagra femme costo levitra acheter clomid ciprofloxacin 250 mg aciclovir prix compra viagra generico viagra pasti viagra generique acheter finasteride prix viagra senza prescrizione vendo cialis originale sildenafil 50 mg zovirax sans ordonnance vendita cialis originale cialis 20 mg compra costo levitra 10 mg cialis naturale forum prezzo cialis in farmacia acheter clomid sans ordonnance le viagra viagra compresse avis priligy viagra authentique baclofen médicament prix cialis generique acheter viagra en ligne costo cialis generico cialis acquisto cialis vendita in italia cialis senza ricetta viagra 50 mg viagra quanto costa in farmacia acheter plavix vendita viagra generico compresse cialis acheter viagra comprare viagra internet cialis generico contrassegno acquistare viagra farmacia viagra achat achat cialis 5mg prescrizione viagra achat propecia en ligne nolvadex sans ordonnance acquisto cialis net clomid achat acheter viagra doctissimo paxil 30mg generique plavix france viagra offerte levitra in farmacia médicament cipro kamagra suisse acheter viagra en suisse viagra simili viagra per donne cialis aus indien levitra compresse clomid deux comprimés zovirax prix achat de levitra achat cialis original vendita levitra acheter cialis 5mg viagra senza ricetta in italia kamagra en belgique cialis acquisto on line ciprofloxacin 500mg viagra miglior prezzo cialis sito sicuro propecia vente acquistare viagra prezzo cialis italia prezzo levitra pharmacie en ligne propecia prescription achat viagra generique cialis 20 mg compresse achat viagra pour femme achete levitra prix viagra pharmacie viagra donne super viagra propecia pas chere priligy achat acheter viagra generic prix du viagra acquisto levitra online viagra pour femme compro viagra amoxicilline médicament cialis generico italia proscar 5mg acquisto cialis senza ricetta impuissance erection acquistare viagra online forum viagra pour femme prezzo farmacia cialis viagra le prix viagra acquisto farmacia priligy dapoxetine levitra effet secondaire costo cialis 20 mg levitra acquisto comprare cialis sicuro cialis comprare online viagra india viagra meilleur prix viagra sostituto viagra 100 mg viagra e cialis differenze acquisto viagra svizzera cialis generico prezzo commander kamagra cialis 20 mg in farmacia plavix ou generique vendo cialis levitra serve ricetta cialis naturale alle erbe tadalafil generico viagra in svizzera acquistare cialis a san marino cialis 10mg prix propecia suisse viagra en belgique nolvadex 10mg aciclovir comprimé prix propecia paris prezzo viagra in farmacia viagra ou similaire cialis farmacia on line viagra senza ricetta kamagra pharmacie cialis acquista viagra generico vendita viagra super active viagra milano propecia en ligne levitra 10 mg costo acheter du levitra accutane sans ordonnance vendita libera viagra viagra pfizer achat ricetta levitra cialis 5 mg viagra à vendre strattera 10 mg forum viagra en ligne cialis vendita italia pilule levitra acquistare viagra sicuro tadalafil 20mg alternativa viagra acheter kamagra aquisto cialis acheter clomid en ligne acquisto cialis vendita cialis in contrassegno prix viagra suisse vardenafil generico kamagra controindicazioni viagra in vendita tadalafil acquisto prix viagra 100mg lasix 20 mg cialis originale online zovirax ordonnance simili viagra cialis prezzo in farmacia viagra inde ordonnance cialis viagra prix en pharmacie lasix 40 mg

Misc Matt | 03 Jun 2010

(English) X-Cart 4.2 Product Title Only as HTML Title

对不起,此内容只适用于English

Web Marketing Matt | 03 Mar 2010

Professional Twitter Always Stay On Target

Twitter is useful as either a conversation you have among friends to share common experiences OR a professional conversation where you only talk about one thing.

I’ve been squatting on my personal twitter account for almost 3 years now.  I finally hooked up a client to alert me to tweets in real time.  After hooking that up, I promptly dropped a whole pile of professional acocunts I had been following for products or services I was interested in.  I dropped them because Twitterrific would keep popping up with some company saying stuff like “Good morning Twitterverse”.  Are you kidding me?  How annoying.  I assume these companies think they need to keep talking to keep their name in my face.  Well, there isn’t a single company I kept following that does stuff like this.  I don’t care how much I liked your product or service.

Don’t mix professional and personal tweets in your professional twitter account.

People who follow you professionally will end up dropping you if you throw too much fluff in there.

I’m guilty of getting too technical in my personal account.  I’ve tweeted when the fedex and ups api’s have been down.  I’m confident that 99% of the 30 people following my personal account don’t care about that.

So I’m going to stick to things on my personal account that may be of some interest to family and friends.  Any professional stuff needs to go elsewhere.

Personally I’ve started a twitter list for professional food related stuff in the Chicago area.  I’ve picked out mostly local folks who stick to talking about food almost all the time.  It’s something I’m passionate about and am excited to keep tabs on.  There’s some cool organizations and chefs which I’m not including in the list though because they’re mixing way too much personal in with the professional.  If half of my list is inside jokes and talk about what tv show they’re looking forward to, the list would get real boring, real quick.

I hope more and more professionals can catch on.  There’s some professional conversations I’m really interested in but don’t have the desire to put up with the noise that follows them.

Misc Matt | 16 Apr 2009

Manually Purge ColdFusion Client Sessions in Database

ColdFusion will purge your client sessions for you on a schedule.  This schedule is dependent on when the CF engine starts.  If your purge schedule is OK now, a CF reboot will set a new schedule and cause problems.  if you use a database and your client variables table has hundred of thousands or millions of records, this can really kill performance.

I have disabled purge of client sessions in the CF Admin and do my purge during low load hours using a separate schedule.

I run 4 queries in a bash script.  You can write a CF script to run these in windows or any other scripting language that let’s you connect to your client variable database.

Here’s the MySQL versions of the queries:

delete from CDATA where CFID in (select CFID from CGLOBAL where CGLOBAL.lvisit < date_sub(now(), interval 60 day));

delete from CGLOBAL where lvisit < date_sub(now(), interval 60 day);

optimize table CDATA;

optimize table CGLOBAL;

Optimizing your tables after the purge will clean up the empty space in your db file left now that those records are gone.  This is helpful if you delete thousands of records at a time.

Web Architecture Matt | 13 Apr 2009

tfoot between thead and tbody for summary

When insuring W3C validation on a website lately, I saw that the tfoot tag must come before the tbody tag.  From the W3C spec: “TFOOT must appear before TBODY within a TABLE definition so that user agents can render the foot before receiving all of the (potentially numerous) rows of data.”  That makes sense but it’s benefit just clicked today.  The foot should function as the summary of the table data and thus let the user agent decide if it cares about the body.  Screen readers make obvious benefit of this.  I can see how search enignes would appreciate useful tfoot summaries as well as mobile applications.

Plesk & Server Architecture Matt | 12 Nov 2008

Parse Plesk Maillog, Count Emails Per Domain

I wanted to get a quick count of messages being sent to and from all my domains in plesk.   I wrote this script to get the mail domains from the plesk database.  Then I loop through them and grep a regex against the maillog file.  Since I’m actually using zgrep to look decompress yesterday’s maillog file at the same time I get the counts, it’s a little processor intensive.  It takes about 10 seconds to run through 30 domains in a 5 meg gzipped file.  If I were to gunzip the file first and just grep it, this would go much quicker.  But I’m fine with a 10 second run time and the bonus of not having to trash a decompressed maillog file when I’m done.

Here’s the bash script I’ve saved as mailcount.sh:

#!/bin/sh

MYSQLPASS=`cat /etc/psa/.psa.shadow`

for DOMAIN in `mysql -uadmin -p$MYSQLPASS -e "select distinct domains.name from mail inner join domains on mail.dom_id=domains.id" -B -N psa`

do
echo $DOMAIN `zgrep -c -E "(to|from)=.+@$DOMAIN" /usr/local/psa/var/log/maillog.processed.1.gz`
done

Here’s a version that copies and gunzip’s the maillog before doing any processing.

#!/bin/sh

MYSQLPASS=`cat /etc/psa/.psa.shadow`

# copy the log file before decompress
cp /usr/local/psa/var/log/maillog.processed.1.gz /usr/local/psa/var/log/maillog.processed.1-working.gz &&

# decompress the log working file
gunzip /usr/local/psa/var/log/maillog.processed.1-working.gz

for DOMAIN in `mysql -uadmin -p$MYSQLPASS -e "select distinct domains.name from mail inner join domains on mail.dom_id=domains.id" -B -N psa`
do
echo $DOMAIN `grep -c -E "(to|from)=.+@$DOMAIN" /usr/local/psa/var/log/maillog.processed.1-working`
done

# remove the working log file
rm -f /usr/local/psa/var/log/maillog.processed.1-working &&
echo "file removed"
exit;

Web Marketing Matt | 17 Oct 2008

Search Engine Friendly Video

Search Engines are often blind to the content of video or audio files but this is starting to change. The new google audio indexing service uses speech recognition to turn audio into text and then indexes that text. The ability for a computer to understand what an audio file means has far reaching implications. This is something to think about for the future but is not anything to build your whole marketing message on. The google audio indexing service is helped by clear pronunciation of words and low background noise. This technology allows for identifying sounds to assign to known words.  As for the visual portion of the video, we do not have a clear definitions of all the movements that could occur.  It is not possible at this time to pull accurate information from potentially complex visual movements.

I posted some tips on making websites for search engines at the office.

ColdFusion Matt | 18 Sep 2008

PDFFileNotFoundException Inside IsPDFFile and IsPDFObject

I’m having a heck of a time using pdf document variables in CF 8.0.1 on Mac OS X 10.5 and Redhat Linux ES 5.  Those are the only platforms I have to test cf with so perhaps this is a windows issue as well.

From Adobe’s IsPDFObject documentation, I’ve taken their example of reading in a file as a pdf object and writing it out.  I’ve even gone the extra step of making sure cf thinks the input file is a valid pdf.


<cfif IsPDFFile("filein.pdf")>
<cfpdf source="filein.pdf" action="read" name="myPDFform"/>
<cfif IsPDFObject(myPDFform)>
<cfpdf source=#myPDFform# action="write" destination = "fileout.pdf">
<cfelse>
<p>This is not a PDF.</p>
</cfif>
</cfif>

CF thinks the file is a pdf, it reads the file, it thinks the pdf document variable is valid, then when it tries to write, I get an error:


The file or directory (/Library/WebServer/Documents/coldfusion.pdf.PDFDocWrapper@1547134d) specified in the source attribute in the CFPDF tag does not exist.

The error occurred in /Library/WebServer/Documents/test.cfm: line 4

2 : <cfpdf source="filein.pdf" action="read" name="myPDFform"/>
3 : <cfif IsPDFObject(myPDFform)>
4 : <cfpdf source=#myPDFform# action="write" destination = "fileout.pdf">
5 : <cfelse>
6 : <p>This is not a PDF.</p>

Given where CF seems to be generating a temp file I could see this being a problem on my Linux box where cf can’t write to the webroot.  That would not be a problem on my local dev environment though where I can write to the webroot.  On both machines I can successfully access pdf files themselves and write to different files to add watermarks, get and set info, etc.  I just cannot work with the pdf document variable at all.  The last pdf file I tested with here was the CF 8.0.1 release notes from Adobe at around 250k.

When I get a solution to this issue, I’ll post it.  If anyone has any thoughts here I’m all ears.  Hopefully someone can point out that I’m doing something stupid and share a correction.  Otherwise I’ll submit a bug to Adobe.

Web Marketing Matt | 07 Aug 2008

SEO Web Design Templates

A canned website doesn’t have to be horrible

I’m putting together some new marketing websites and need to come up with a design.  I can either pay a designer or find a premade template.  In past years, website templates have looked very unprofessional.  I started looking around at the current state of website templates and am impressed with the stylish xhtml/css options at Template World.  They offer some solid free selections, I’m going ahead with the $50 bucks for the members section since the templates are so good.

Adding some spices

With any of the templates I pick here, I’m going to take a little time to tweek things.  Template World doesn’t take the same approach as other template sites.  They offer a relatively small number of higher end templates rather than countless thousands of low end templates like the other guys.  So I’m not going to be able to find a template that has everything where I want it but with a little css work and some istock photo shopping I’m get something really slick.

OS X / Unix & Server Architecture Matt | 20 May 2008

Recursively Remove Files By Extension

I’m finally getting around to cleaning out dreamweaver LCK files from a large website. We have one developer that uses dreamweaver so these files are useless. So we’ve got these LCK files all over the place in this site. I’m just sick of looking at them.

Enter a shell one liner …

find . -name '*.LCK' -type f -print0 | xargs -0 /bin/rm -f

That command recursively looks in and under the directory I’m in for any files with the LCK extension and removes them.

Here’s a shell script you can save that will prompt you for an extension name to remove.

#!/bin/sh

echo "Enter Extension"
read filepattern
echo "Files matching *.$filepattern will be removed."
echo "Is this correct? y|n"
read confirmation

if  [ $confirmation = y ]; then
	find $PWD -name "*.$filepattern" -type f -print0 | xargs -0 /bin/rm -f
else
	echo "quitting"
	exit;
fi

Or if you don’t want any confirmation of the file extensions you’re about to delete.

#!/bin/sh

echo "Enter Extension"
read filepattern
find $PWD -name "*.$filepattern" -type f -print0 | xargs -0 /bin/rm -f

ColdFusion Matt | 04 May 2008

Mate a Tag-based Event-driven Flex Framework

I’m new to Flex but still enjoyed the Mate framework presentation from Laura at asfusion.com.  I know that I need to think ahead of time how I’m going to organize all the events in my application.   This could simply be a design pattern.  The Mate framework has the idea of an Event Map to organize events in a central location.  Larger applications with multiple function sets can have multiple event maps.  I like how Mate and the Event Maps are organized.  I don’t feel like there would be much of an additional learning curve to start using Mate.  It looks pretty lightweight too.

If you’re looking into Flex, Mate is worth a look.  The site is well organized and has solid documentation so far.  This alpha version of Mate has well written, clear documentation and an api reference.  The documentation for users of many frameworks and apps is clearly an afterthought.  I really appreciate the Mate team spending time on their docs.  Additionally, I’ve enjoyed hacking up the FlickrBook example app to get a good idea for what’s going on with Mate.

下一页 »


google