<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Technify.me</title>
	<atom:link href="http://technify.me/feed/" rel="self" type="application/rss+xml" />
	<link>http://technify.me</link>
	<description></description>
	<lastBuildDate>Sat, 03 Mar 2012 23:02:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>A Password Corner Case</title>
		<link>http://technify.me/strategy/a-password-corner-case/</link>
		<comments>http://technify.me/strategy/a-password-corner-case/#comments</comments>
		<pubDate>Tue, 10 Jan 2012 13:05:38 +0000</pubDate>
		<dc:creator>George Flanagin</dc:creator>
				<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Problems]]></category>
		<category><![CDATA[Strategy]]></category>

		<guid isPermaLink="false">http://technify.me/?p=454</guid>
		<description><![CDATA[My bank has one of those idiotic rules forcing us to change our password for online banking every 90 days. It is my opinion that their rule increases vulnerability rather than resistance to attack, but it is a situation about which I can do nothing, and I otherwise like the bank. I use my program named &#8216;craic&#8217; [...]]]></description>
		<wfw:commentRss>http://technify.me/strategy/a-password-corner-case/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=iconify&amp;url=http%3A%2F%2Ftechnify.me%2Fstrategy%2Fa-password-corner-case%2F&amp;language=en_GB&amp;category=text&amp;title=A+Password+Corner+Case&amp;description=My+bank+has+one+of+those+idiotic+rules+forcing+us+to+change+our+password+for+online+banking+every+90+days.+It+is+my+opinion+that+their+rule+increases%C2%A0vulnerability%C2%A0rather+than+resistance+to+attack%2C+but+it+is+a+situation+about+which+I+can+do+nothing%2C+and+I+otherwise+like+the+bank.I+use+my+program+named+%27craic%27+to+generate+random-but-somewhat-memorable+passwords%2C+and+I+keep+a+numbered+list+of+100+of+them.+The+system+works+well%2C+and+all+that+I+have+to+remember+is+that+%2315+is+the+current+bank+password.+When+one+expires%2C+I+just+switch+to+the+idea+that+%2320+is+new+bank+password%2C+and+if+the+list+were+to+be+compromised%2C+there+is+nothing+that+indicates+which+passwords+are+valid%2C+nor+with+what+they+are+associated.The+bank%27s+system+also+enforces+a+rule+that+the+password+must+contain+a+capital+letter%2C+a+lower+case+letter%2C+a+symbol%2C+and+a+digit%2C+so+they+are+not+exactly+%22random%2C%22+and+there+is+a+minimum+and+a+maximum+length.Today+was+change+day.+The+next+password+on+the+list+this+morning+was%3A%5E10SAIKCCRoy99%24It+broke+the+system.+Not+only+does+it+indicate+poor+coding%2C+but+the+nature+or+the+above+string+gives+a+clue+about+how+the+candidate+password+is+scanned+with+regex%2C+and+what+other+vulnerabilities+there+might+be.&amp;tags=blog%2C+php%2C+cms%2C+css%2C+javascript%2C+ajax%2C+c%2B%2B%2C+web+developer%2C+programmer" type="text/html" />
	</item>
		<item>
		<title>What language is that?</title>
		<link>http://technify.me/uncategorized/what-language-is-that/</link>
		<comments>http://technify.me/uncategorized/what-language-is-that/#comments</comments>
		<pubDate>Thu, 22 Dec 2011 17:44:41 +0000</pubDate>
		<dc:creator>George Flanagin</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[Problems]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://technify.me/?p=446</guid>
		<description><![CDATA[I spend some of my time reading liner notes of the music CDs that I buy. Like the Rosetta Stone, they are often written in three languages, although the languages are usually English, French, and German, rather than hieroglyphs, demotic script, and Ancient Greek. Once in a while, I open to the wrong language, and [...]]]></description>
		<wfw:commentRss>http://technify.me/uncategorized/what-language-is-that/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=iconify&amp;url=http%3A%2F%2Ftechnify.me%2Funcategorized%2Fwhat-language-is-that%2F&amp;language=en_GB&amp;category=text&amp;title=What+language+is+that%3F&amp;description=I+spend+some+of+my+time+reading+liner+notes+of+the+music+CDs+that+I+buy.+Like+the+Rosetta+Stone%2C+they+are+often+written+in+three+languages%2C+although+the+languages+are+usually+English%2C+French%2C+and+German%2C+rather+than+hieroglyphs%2C+demotic+script%2C+and+Ancient+Greek.+Once+in+a+while%2C+I+open+to+the+wrong+language%2C+and+for+a+few+seconds+my+eyes+skim+the+German+version+of+the+text+before+it+dawns+on+me+that+I+am+not+looking+at+the+English.%C2%A0Like+most+native+speakers+of+a+European+language+I+can+recognize+a+number+of+other+European+languages+that+I+have+no+ability+to+read%2C+write%2C+or+speak.+How+does+this+recognition+work%3F+Can+it+be+put+into+a+simple%2C+not+very+sophisticated+or+difficult+computer+program%3FMaking+an+intelligent+guess+about+the+language+in+which+a+document+is+written+is+helpful+in+a+number+of+situations%2C+so+how+should+we+best+go+about+it%3F+One+possibility+involves+the+use+of+a+dictionary.+After+a+%22white+space+parse%2C%22+we+look+up+a+few+of+the+words+and+find+out+what+dictionary+contains+them.Unfortunately+the+dictionary+based+approach+has+several+problems.+First%2C+dictionaries+are+large%2C+arbitrarily+large+in+fact%2C+and+to+recognize+each+additional+language+you+might+need+a+good+bit+more+storage+than+is+convenient.+Next%2C+there+is+the+issue+of+having+to+partially+parse+the+source+text%2C+recognizing+words+and+throwing+out+the+punctuation%2C+which+necessitates+a+data+structure+in+which+to+keep+the+parsed+text.+%C2%A0Finally%2C+there+is+the+Sideshow+Bob+problem%2C+which+refers+to+the+%22Cape+Feare%22+episode+of+The+Simpsons+in+which+the+Bob+character+attempts+to+convince+the+court+that+his+tattoo+saying+%22die+Bart+die%2C%22+is+a+German+translation+of+%22the+Bart+the.%22+Never+mind+that+Bart+is+masculine.+Keeping+track+of+gender+would+be+an+even+more+intensive+use+of+dictionaries.In+polyGLOB%2C+I+opted+for+the+approach+of+analyzing+the+relative+frequency+of+the+characters+in+the+source+text.+For+example%2C+%27e%27+is+the+most+common+character+in+both+English+and+German.+It+accounts+for+about+12%25+of+English+letters%2C+but+an+overwhelming+17%25+of+the+letters+in+German.+Other+letters+have+similar+differences+in+distribution%3A+the+%27f%27+is+2%25+of+English+but+only+1%25+of+Spanish.Primitive+substitution+ciphers+were+the+first+attempts+at+character+based+cryptography.+They+were+easily+broken+a+long+time+ago+by+means+of+frequency+analysis%2C+and+because+of+this+history+the+distribution+of+letters+in+all+the+European+languages+is+well+known.+Far+from+needing+dictionaries+of+arbitrary+complexity%2C+we+need+only+a+table+with+one+entry+for+each+of+the+twenty-six+letters+in+the+Roman+alphabet.+Even+with+twenty+or+so+languages%2C+the+number+of+tables+and+their+finite+size+is+quite+manageable.This+approach+is+not+perfect%2C+and+it+has+perils+unique+to+its+approach.+The+most+obvious+problem+involves+the+use+of+diacritical+marks+in+just+about+all+the+languages+other+than+English.+If+we+are+counting+e-s%2C+we+probably+want+to+count+e%2C+%C3%A9%2C+%C3%A8%2C+and+%C3%AA+as+belonging+to+the+same+bucket.+Converting+them+requires+a+bit+more+work+for+the+computer+than+the+human+because+they+do+not+%22look+alike%22+to+the+machine.+This+is+different+from+E+and+e%2C+which+have+a+machine+resemblance+in+the+sense+that+the+representation+of+the+capital+letter+is+32+less+than+the+corresponding+lower+case+letter.Another+problem+arises+when+the+analysis+incorporates+an+increasing+number+of+languages+with+similar+distributions.+For+example%2C+using+this+method+it+is+relatively+easy+to+tell+German+from+French+from+Italian+from+Spanish.+However%2C+once+Portuguese+is+added+to+the+mix%2C+short+Spanish+texts+may+be+mistaken+for+it.Only+in+rare+cases+does+the+vocabulary+itself+cause+a+problem%3A+an+article+about+X-rays+for+zebras+is+unlikely+to+be+correctly+recognized.The+most+effective+method+for+settling+the+bulk+of+the+disputes+is+the+addition+of+information+about+shibboleths.+For+example%2C+only+French+uses+the+%C3%A7%2C+only+German+has+the+%C3%9F%2C+and+Spanish+has+no+characters+with+any+accent+other+than+the+acute%2C+in+other+words%3A+always+%C3%A1%2C+never+%C3%A0.In+polyGLOB%2C+I+have+incorporated+a+concept+of+%22confidence%2C%22+measured+on+the+interval+0+..+1%2C+into+the+analysis.+Confidence+is+a+composite+statistic+made+in+part+by+the+length+of+the+text+to+be+analyzed+%28longer+texts+give+better+fits%29%2C+and+in+part+by+the+difference+between+the+best+fit+and+the+second+best+fit.I+have+experimentally+determined+that+500+%22letters%22+%5Bexplanation%3A+non-space%2C+non-punctuation%5D+is+enough+that+adding+another+500+is+unlikely+to+make+much+difference.+The+reason+for+considering+the+difference+between+the+best+fitting+language+and+the+second+best+fit+is+more+subtle.+The+concept+of+fit+involves+quite+a+bit+of+linear+regression+math%2C+and+not+every+text+sample+fits+close+enough+to+the+list+of+languages+that+the+choice+is+obvious+%28to+the+computer+program%29.+The+better+measurement+is+then+whether+the+second+choice+is+a+close+runner+up.%C2%A0So%2C+it+can+be+done.+In+the+near+future+we+will+have+enough+data+to+perhaps+tweak+and+refine+the+algorithms%2C+but+for+now+the+measurements+correspond+very+closely+to+gut+feel.&amp;tags=blog%2C+php%2C+cms%2C+css%2C+javascript%2C+ajax%2C+c%2B%2B%2C+web+developer%2C+programmer" type="text/html" />
	</item>
		<item>
		<title>Is Short Pump Town Center&#8217;s Customer Tracking Safe</title>
		<link>http://technify.me/opinion/is-short-pump-town-centers-tracking-customers-safe/</link>
		<comments>http://technify.me/opinion/is-short-pump-town-centers-tracking-customers-safe/#comments</comments>
		<pubDate>Wed, 23 Nov 2011 19:29:49 +0000</pubDate>
		<dc:creator>Scott Lewis</dc:creator>
				<category><![CDATA[Opinion]]></category>

		<guid isPermaLink="false">http://technify.me/?p=415</guid>
		<description><![CDATA[Larry Page, Sergey Brinn and Mark Zuckerberg became billionaires at very young ages because they created a way, through Google and Facebook, to track the moment-by-moment movements of billions of consumers online. The aggregate of this data is worth hundreds of billions of dollars to marketers, politicians, and any other group trying to sell you [...]]]></description>
		<wfw:commentRss>http://technify.me/opinion/is-short-pump-town-centers-tracking-customers-safe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=iconify&amp;url=http%3A%2F%2Ftechnify.me%2Fopinion%2Fis-short-pump-town-centers-tracking-customers-safe%2F&amp;language=en_GB&amp;category=text&amp;title=Is+Short+Pump+Town+Center%26%238217%3Bs+Customer+Tracking+Safe&amp;description=Larry+Page%2C+Sergey+Brinn+and+Mark+Zuckerberg+became+billionaires+at+very+young+ages+because+they+created+a+way%2C+through+Google+and+Facebook%2C+to+track+the+moment-by-moment+movements+of+billions+of+consumers+online.+The+aggregate+of+this+data+is+worth+hundreds+of+billions+of+dollars+to+marketers%2C+politicians%2C+and+any+other+group+trying+to+sell+you+a+product+or+an+idea.This+week%2C+Short+Pump+Town+Center+in+Glen+Allen%2C+Virginia%2C+a+Richmond+suburb%2C+announced+that+it+will+be+one+of+two+malls+in+the+United+States+that+will+use+customers%27+cell+phone+signals+to+track+their+movements+through+the+mall+during+the+holiday+season.%0A%0AMy+initial+reaction+was%2C+%22This+is+just+too+creepy+and+too+invasive%22.+I+wrote+up+a+blog+post+outlining+why+I+would+not+be+shopping+at+the+mall.+But+after+thinking+about+it+for+a+bit%2C+I+decided+to+withhold+judgment+on+that.+I+am+in+a+good+position+to+give+folks+a+realistic+view+of+what+is+being+done+and+what+the+risks+are.I+am+a+software+developer+and+I+specialize+in+web-based+software.+I+have+worked+with+a+lot+of+the+Facebook%2C+Google+and+Twitter+tools+and+have+a+pretty+good+understanding+of+how+their+systems+work.+In+addition%2C+I+have+worked+in+the+area+of+internet+security+and+I+know+a+good+bit+about+how+hacking+and+security+work+in+the+online+and+offline+realms.In+the+security+world%2C+there+is+a+concept+known+as+PII+or+%22personally+identifiable+information%22.+This+is+any+information+that+by+itself+or+combined+with+other+information+can+be+used+to+personally+identify+someone.+Examples+of+PII+are+a+Social+Security+Number%2C+a+home+address%2C+a+driver%27s+license+number%2C+etc.+You+should+always+be+very%2C+very+careful+about+where%2C+how+and+with+whom+you+share+your+PII.Now+before+anyone+panics%2C+detecting+your+phone%27s+unique+signal+does+not+personally+identify+you+any+more+than+your+computer%27s+IP+address+or+your+car%27s+license+plate+do.+Simply+knowing+that+piece+of+information+doesn%27t+tell+the+holder+of+the+information+anything+about+you+except+maybe+that+you+have+a+phone%2C+drive+a+car+or+are+using+a+computer.+However%2C+this+information+is+unique+to+you+and+it+can+be+used+to+personally+identify+you+if+not+properly+guarded+by+the+people+who+have+the+information+-+like+your+cell+phone+provider%2C+the+Department+of+Motor+Vehicles+or+your+internet+service+provider.+But+you+also+must+do+your+part.Hacking+and+identity+theft+are+rarely+achieved+by+a+heist-movie-worthy-break-in+to+a+secure+system.+The+majority+of+the+time%2C+the+hack+is+achieved+through+%22social+engineering%22+which+is+basically+manipulating+some+unscrupulous+person+into+giving+out+information+they+should+not.+The+unscrupulous+person+could+be+someone+at+your+cell+phone+provider+or+DMV+or+even+you.A+thief+does+not+need+to+break+in+or+manipulate+anyone+in+order+to+obtain+a+wealth+of+hair-standing-on-end-creepy+amount+information+about+you.+With+just+the+trail+you+leave+online%2C+someone+who+knows+what+to+look+for+and+where+to+look+could+build+a+pretty+good+profile+of+most+people+who+spend+a+decent+amount+of+time+online.+Go+search+for+yourself+on+Spokeo.com+-+I%27ll+wait+right+here.BTW%2C+you+should+go+to+Spokeo.com+and+find+your+information+and+ask+for+it+to+be+removed+anyway.+They+are+legally+bound+to+remove+you+from+their+database+if+you+request+it.You+might+ask%2C+why+are+they+allowed+to+do+this%3FWell%2C+first+of+all%2C+when+you+are+out+in+public%2C+whether+at+a+park%2C+a+mall%2C+or+online%2C+you+have+no+reasonable+expectation+of+privacy.+The+law+and+society+agree+that+you+should+expect+that+anything+you+do+in+public+can+be+observed+even+monitored+and+tracked+by+a+someone+else.+The+onus+is+on+you+to+protect+any+information+you+do+not+want+publicly+known.In+our+free+market+society%2C+the+law+gives+business+a+lot+of+leeway+on+what+information+it+can+collect+and+compile+about+you.+A+lot+of+this+information+seems+harmless+by+itself+but+when+aggregated+it+can+give+a+frighteningly+detailed+picture+of+you%3A+where+you+live%2C+approximately+how+much+money+you+make%2C+approximately+how+much+you+paid+for+your+house%2C+where+your+kids+likely+go+to+school%2C+previous+residences%2C+criminal+record%2C+etc.The+point+of+this+article+is+not+to+judge+the+morality+or+ethics+of+these+notions+but+to+inform+readers+about+what+is+going+on+so+you+can+make+informed+deicsions+for+yourself.Protecting+your+privacy+requires+a+lot+of+diligence.+You+probably+routinely+give+out+information+without+even+realizing+it.+For+instance%2C+did+you+know+your+cell+phone+embeds+%22meta+data%22+in+every+photo+you+take.+So+when+you+upload+that+photo+to+Facebook%2C+they+know+exactly+when+you+took+the+photo+and+where+you+took+it%3F+I%27m+not+sure+if+any+PII+%28personally+identifiable+information%29+is+embedded+in+the+photo+but+it+could+be.As+a+software+developer%2C+it+is+my+job+to+think+like+my+clients%2C+many+of+them+involved+in+marketing%2C+and+to+anticipate+their+needs.+I+promise+you+that+developers+are+already+working+on+ways+to+track+your+moment-by-moment+movements+online+and+offline+-+because+that+is+exactly+what+I+would+be+doing.+This+informaion+is+worth+hundreds+of+billions+of+dollars+and+they+would+not+be+very+good+business+people+if+they+were+not+working+on+this.+It+is+inevitable.Short+Pump+Town+Center+is+not+violating+any+laws.+Whether+tracking+the+moment-by-moment+movements+of+citizen-customers+is+ethical+or+good+for+society+is+a+matter+for+debate+and+for+another+article.+My+opinion+is+that+shopping+there+is+as+safe+as+can+reasonably+be+expected.+Any+time+you+do+anything%2C+especially+in+a+society+as+%22wired%22+as+ours%2C+you+risk+your+actions+being+monitored.+Simply+turning+off+your+phone+prevents+you+from+being+tracked.&amp;tags=blog%2C+php%2C+cms%2C+css%2C+javascript%2C+ajax%2C+c%2B%2B%2C+web+developer%2C+programmer" type="text/html" />
	</item>
		<item>
		<title>bLaTheR: Part 1</title>
		<link>http://technify.me/user-experience/javascript/jquery/blather-part-1/</link>
		<comments>http://technify.me/user-experience/javascript/jquery/blather-part-1/#comments</comments>
		<pubDate>Tue, 08 Nov 2011 12:29:17 +0000</pubDate>
		<dc:creator>George Flanagin</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[User Experience]]></category>

		<guid isPermaLink="false">http://technify.me/?p=367</guid>
		<description><![CDATA[Breathes there a web designer with wallet so fed who never to himself hath said, &#8220;Cutting and pasting this Lorem Ipsum stuff is utter tedium. It doesn&#8217;t look like English, and the first word isn&#8217;t even Latin.&#8221; Technologies have come a long way since cut and paste, and the time has come to use technologies [...]]]></description>
		<wfw:commentRss>http://technify.me/user-experience/javascript/jquery/blather-part-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=iconify&amp;url=http%3A%2F%2Ftechnify.me%2Fuser-experience%2Fjavascript%2Fjquery%2Fblather-part-1%2F&amp;language=en_GB&amp;category=text&amp;title=bLaTheR%3A+Part+1&amp;description=Breathes+there+a+web+designer+with+wallet+so+fed+who+never+to+himself+hath+said%2C+%22Cutting+and+pasting+this+Lorem+Ipsum+stuff+is+utter+tedium.+It+doesn%27t+look+like+English%2C+and+the+first+word+isn%27t+even+Latin.%22+Technologies+have+come+a+long+way+since+cut+and+paste%2C+and+the+time+has+come+to+use+technologies+for+placeholder+text+in+web+design.%0D%0A%0D%0AThis+is+the+story+of+how%C2%A0bLaTheR%2C+a+Lorem+Ipsum+replacement%2C+was+born%2C+and+the+computer+science+behind+it.+In+part+2%2C+we+will+cover+the+use+of+bLaTheR%C2%A0for+populating+web+pages.%0D%0A%0D%0AThe+web+had+barely+been+invented+in+1992+when+I+first+developed+negative+feelings+about+Lorem+Ipsum.+I+was+working+at+HP+Labs+on+software+for+printers%2C+scanners%2C+and+plotters%2C+and+we+were+constantly+dealing+with+localization+issues+because+we+sold+the+same+hardware+around+the+world.+Languages+with+long+words+were+one+bane%2C+notably+Germanandfiinniissh.+I+don%27t+recall+our+ever+localizing+to+Latin%2C+although+we+may+have+tried+Pig+Latin.+Lorem+Ipsum+was+a+trendy+distraction.%0D%0A%0D%0ASkip+ahead+eleven+years+to+my+writing+a+text+scrambler+as+a+demonstration+for+an+undergraduate+computer+science+class+I+taught+at+VCU.+As+is+the+case+with+all+pedagogical+tools%2C+it+was+as+simple+as+it+could+be+to+make+my+point%2C+and+because%2C+according+to+my+wife%2C+I+never+throw+away+anything%2C+it+went+on+the+electronic+shelf+for+the+next+eight+years.%0D%0A%0D%0AJust+a+month+or+so+ago%2C+Scott+and+I+chatted+about+using+its+output+as+a+Lorem+Ipsum+replacement%2C+the+adhoc-itecture+of+design+set+in.+Scott+%28a.k.a.+jScottQuery%29+is+a+fan+of+JavaScript%2C+and+he+came+up+with+the+idea+of+obtaining+bLaTheR+via+a+jQuery+plugin%2C+and+thereby+populating+web+pages+with+the+text+we+now+call%C2%A0bLaTheR.+Over+the+next+weekend%2C+I+went+to+work.%0D%0A%0D%0AAt+this+point+it+is+probably+a+good+idea+for+the+reader+to+play+around+with+the%C2%A0bLaTheR%C2%A0demo.+%28Note%3A+The+demo+is+not+a+sleight+of+hand%2C+it+is+truly+running+the+authentic%C2%A0bLaTheR%C2%A0code.+You+would+not+want+in-authentic+bLaTheR+code%2C+would+you%3F%29%0D%0A%0D%0AHow+does%C2%A0bLaTheR%C2%A0do+its+work%3F+%C2%A0The+code+for%C2%A0bLaTheR%C2%A0runs+inside+a+daemon+framework+I+wrote+last+year+for+our+company%27s+product.+The+daemon+framework+handles+the+socket+I%2FO%2C+parses+the+incoming+request%2C+recognizes+the+request+for%C2%A0bLaTheR%2C+runs+the%C2%A0bLaTheR%C2%A0sub-program+for+a+few+milliseconds%2C+packs+up+the+resulting+garbled+text+in+JSON%2C+and+returns+it+to+the+caller.+ZZzzzz%E2%80%A6...%0D%0A%0D%0AOf+course%2C+perhaps+you+were+asking+something+else%3F+The+more+interesting+question+is+%22How+does%C2%A0bLaTheR%C2%A0create+the+pseudo-text%3F%22+Ah%2C+this+is+interesting%2C+and+it+is+a+good+lesson+in+the+occasional+value+of+computer+science+in+software+development.%0D%0A%0D%0ASQLite+and+Oracle+are+the+two+databases+I+know+better+than+I+know+MySQL%2C+and+I+prefer+SQLite+for+most+of+the+work+that+I+do.+I+built+an+SQLite+database+with+text+%22samples%2C%22+very+much+using+the+database+the+way+the+people+who+design+MIDI+rigs+make+use+of+a+database+of+sampled+sounds.%0D%0A%0D%0ARemember+the+long+words+of+Germanandfinniish%3F+We+would+like+to+generate+scrambled+text+with+the+same+statistical+properties+of+word+length%2C+sentence+length%2C+and+overall+look+and+feel+of+the+%22real+thing.%22+If+the+source+has+a+lot+of+long+words%2C+the+output+should+be+the+same.+If+the+source+is+filled+with+legal+jargon+and+TLAs%2C+the+output+should+be+similarly+populated.%0D%0A%0D%0AThe+necessary+data+structure+for+this+verbal+scrambling+is+a+radix+tree+or+a+PATRICIA+tree%2C+or+trie+as+it+is+sometimes+written.+The+text+shreds+go+through+a+%22compilation%22+phase+that+converts+them+from+their+original+sequence+of+bytes+into+the+trie.+The+trie+is+stored+in+the+database%2C+and+can+be+re-assembled+on+demand+without+further+parsing+or+compilation.%0D%0A%0D%0ADuring+the+compilation+phase%2C%C2%A0bLaTheR%C2%A0cuts+the+text+into+sequences+that+are+n-bytes+long%2C+where+n+can+take+a+value+between+1+and+the+entire+length+of+the+text+to+be+analyzed.+In+the+case+of+n%3D1%2C+the+output+is+just+a+random+stew+of+bytes+that+have+a+distribution+the+same+as+the+original.+In+other+words%2C+if+the+input+is+German%2C+and+the+letter+%22e%22+makes+up+17%25+of+German%2C+then+the+output+will+be+17%25+e%2C+with+other+letters+appearing+as+they+do+in+German.+At+the+other+extreme%2C+the+only+possible+output+is+the+same+as+the+input+and+you+are+back+to+cut+and+paste.+Neither+of+these+extremes+is+interesting+or+useful.%0D%0A%0D%0AThrough+experimentation%2C+I+have+found+that+the+most+satisfactory+output+is%C2%A0to+be+had+by+setting+n+to+a+value+between+5+and+8%2C+with+6+and+7+working+well+for+most+source+material.+Higher+values+produce+overly+long+runs+of+quoted+material.+Values+less+than+5+produce+output+that+lacks+the+elusive+characteristic+of+readability.%0D%0A%0D%0AUsing+%226%22+as+the+example%2C%C2%A0bLaTheR%C2%A0looks+at+all+the+six-byte+sequences%2C+and+builds+a+trie+from+the+first+five+bytes+of+each+six+byte+sequence.+The+randomness+of+the+text+is+synthesized+by+looking+at+the+trie%2C+and+choosing+the+next+character+at+random+so+that+its+probability+of+being+in+the+output+is+the+same+as+the+frequency+with+which+it+occurs+following+those+five+characters+in+the+source.%0D%0A%0D%0AIn+part+2%2C+we+will+put%C2%A0bLaTheR%C2%A0to+work+on+web+pages.%0D%0ACredits%0D%0ALike+most+structures+in+computer+science%2C+the+trie+has+been+around+for+a+long+time%2C+if+anything+in+computer+science+may+be+said+to+have+been+around+for+a+long+time.+There+is+a+substantial+discussion+of+these+structures+in+both+Volume+1+and+Volume+3+of+Dr.+Donald+Knuth%27s+book+The+Art+of+Computer+Programming.+No+computer+programmer+should+be+without+Knuth%27s+work%2C+or+at+least+knowledge+of+its+contents.%0D%0A%0D%0ADr.+Kasper+Peeters+has+provided+the+C%2B%2B+programming+world+with+a+truly+excellent+general+tree+class+from+which+it+is+fairly+easy+to+craft+or+graft+the+type+of+tree+you+need.+Peeters%27+tree+is+an+achievement+in+programming%2C+and+its+existence+has+saved+me+many+hours+of+work.+In+fact%2C+I+cannot+recall+the+last+C%2B%2B+program+I+wrote+that+does+not+use+it+somewhere.&amp;tags=blog%2C+php%2C+cms%2C+css%2C+javascript%2C+ajax%2C+c%2B%2B%2C+web+developer%2C+programmer" type="text/html" />
	</item>
		<item>
		<title>Still no silver bullet</title>
		<link>http://technify.me/strategy/still-no-silver-bullet/</link>
		<comments>http://technify.me/strategy/still-no-silver-bullet/#comments</comments>
		<pubDate>Thu, 13 Oct 2011 11:48:35 +0000</pubDate>
		<dc:creator>George Flanagin</dc:creator>
				<category><![CDATA[Management]]></category>
		<category><![CDATA[Strategy]]></category>
		<category><![CDATA[Systems]]></category>

		<guid isPermaLink="false">http://technify.me/?p=356</guid>
		<description><![CDATA[From the time of publication of the essay &#8220;No Silver Bullet&#8221; in 1986, we have been looking for the silver bullet ever more diligently.  Even the essay&#8217;s author, Dr. Fred Brooks, Jr., wrote a sequel called &#8220;&#8216;No Silver Bullet&#8217; Refired&#8221; that appeared in 1995. On a less grand scale, five years later, I gave a [...]]]></description>
		<wfw:commentRss>http://technify.me/strategy/still-no-silver-bullet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=iconify&amp;url=http%3A%2F%2Ftechnify.me%2Fstrategy%2Fstill-no-silver-bullet%2F&amp;language=en_GB&amp;category=text&amp;title=Still+no+silver+bullet&amp;description=From+the+time+of+publication+of+the+essay+%22No+Silver+Bullet%22+in+1986%2C+we+have+been+looking+for+the+silver+bullet+ever+more+diligently.+%C2%A0Even+the+essay%27s+author%2C+Dr.+Fred+Brooks%2C+Jr.%2C+wrote+a+sequel+called+%22%27No+Silver+Bullet%27+Refired%22+that+appeared+in+1995.+On+a+less+grand+scale%2C+five+years+later%2C+I+gave+a+sad+keynote+address+at+Software+Methods+and+Tools+2000%2C+a+part+of+which+was+a+prediction+that+project+management+would+become+another+failed+silver+bullet+in+this+century.%0D%0A%0D%0ASadly%2C+all+of+the+above+predictions+have+turned+out+to+be+true.%0D%0A%0D%0AThe+silver+bullet+we+claim+to+want+is+the+concept+of+%22reusable+parts%22+---+not+reusable+code.+While+IT+is+super-saturated+with+bad+analogies%2C+there+is+a+good+analogy+for+this+particular+quest.+If+I+am+building+my+dream+home+from+scratch%2C+I+would+not+be+forced+to+build+everything+in+it+from+scratch.+I+would+figure+that+the+house+is+2700+sq.+ft.%2C+in+Virginia%2C+well+shaded+from+the+afternoon+sun%2C+and+I+would+order+a+3-ton+air+conditioner+from+Lennox+rather+than+build+such+a+unit+starting+with+the+copper+pipes.+If+nothing+else%2C+I+am+even+less+experienced+building+air+conditioners+than+houses.%0D%0A%0D%0AThat%27s+what+I+want+when+I+program%3A+something+standard.%0D%0A%0D%0AIn+IT%2C+this+was+once+called+%22shrink+wrap+re-use%2C%22+meaning+that+for+things+like+databases%2C+my+choice+is+simply+to+go+down+the+list+of+available+pre-built+parts+and+choose+Oracle%2C+MySQL%2C+SQL+Server%2C+SQLite%2C+or+maybe+even+DB2.+No+one+should+think+seriously+about+writing+a+database+from+scratch+just+because+the+end+product+requires+the+use+of+one%2C+and+indeed%2C+no+one+does.+Unfortunately%2C+this+type+of+component-level+reuse+is+scarce.%0D%0A%0D%0AWe+are+now+fighting+a+war+over+libraries.%C2%A0For+example%2C+jQuery+is+library.+.NET+is+a+library.+A+review+of+my+staggering+number+of+searches+of+php.net+in+Safari%27s+history+reveals+that+PHP+is+almost+entirely+a+giant+library%2C+at+least+the+way+I+use+it.+More+than+60%25+of+the+lines+of+code+in+my+C%2B%2B+programming+are+function+calls+of+some+variety%2C+and+I+think+most+of+the+rest+consist+of+basic+assignments.+I+hear+Ruby+is+the+same.+And+Python%2C+too.+Libraries+can+be+simple.%0D%0A%0D%0ADoes+this+truly+and+finally+give+us+the+victory+we+want%3F%C2%A0Apparently+not.+When+working+as+a+consultant%2C+I+primarily+look+for+work+doing+Linux%2FUNIX+server-side+development%2C+often+in+C%2B%2B.+%22Interview%22+questions+about+C%2B%2B+are+completely+standardized+to+the+extent+that+there+must+be+a+C%2B%2B+meme+going+around.+The+questions+generally+involve+some+sort+of+cursory+interrogation+about+the+STL+%28Standard+Template+Library%29%2C+which+is+an+enormous+part+of+the+language.%0D%0A%0D%0AWhen+it+is+my+turn+to+ask+questions+in+the+last+30+nanoseconds+of+the+interview%27s+time+slot%2C+I+often+ask+what+the+company+does+with+the+STL.+Inevitably%2C+the+answer+begins+with+how+they+do+not+use+it+despite+the+interviewer%27s+having+spent+several+minutes+gauging+my+familiarity+with+the+subject.+How+often+does+this+happen%3F+Almost+every+time+it+is+discussed.%0D%0A%0D%0ABut+in+the+past+two+or+three+years+I+have+never+heard+a+specific+complaint+backed+with+an+example.+No+one+volunteers+an+anecdote+of+a+particular+problem%2C+its+negative+effect%2C+and+explains+their+solution.+You+would+think+that+if+the+perceived+problems+were+real%2C+common%2C+and+well+substantiated+that+someone+on+the+GNU+project+would+have+repaired+the+STL+by+now.+It+is+even+harder+to+believe+that+the+repair+involves+an+odd+difficulty+such+that+%5Ba%5D+only+people+who+are+not+working+on+the+STL+can+write+the+code%2C+and+%5Bb%5D+none+of+the+people+working+on+the+STL+are+motivated+to+do+so.%0D%0A%0D%0ASo+why+the+constant+re-engineering%3F+Of+course%2C+there+are+some+reasons+to+grasp+for+every+efficiency+possible.+For+example%2C+I+recently+popped+in+ten+lines+of+assembly+to+speed+up+a+string+move+that+was+being+done+2500+times+in+a+loop%2C+and+I+shaved+about+10ms+off+an+80ms+task+by+doing+so.+But+did+I+feel+the+need+to+re-write%2C+pre-bug%2C+re-bug%2C+and+re-debug+%26lt%3Bstd%3A%3Astring%26gt%3B%3F+Of+course+not.%0D%0A%0D%0AI+suspect+that+the+majority+of+re-engineering+of+standard+libraries+comes+from+feeding+programmer+egos%2C+after+all+we+call+them+%22programmers%22+and+we+expect+them+to+%22program.%22+The+second+most+common+cause+is+programmers+doing+a+bit+of+that+thing+that+dogs+do+because+they+can%2C+just+like+many+test+plans+conduct+tests+on+the+most+obvious+parts+of+a+product+rather+than+the+ones+that+are+difficult+and+need+our+attention.%0D%0A%0D%0A%22Will+a+brass+bullet+do%3F%22+This+was+the+title+of+one+of+the+sections+of+Brooks%27+second+Silver+Bullet+essay%2C+and+it+is+attached+to+the+section+on+object+oriented+programming.%C2%A0Lately%2C+I+have+had+some+reason+to+hope%2C+but+not+for+OOP.+Instead%2C+JavaScript%2C+and+more+specifically+jQuery%2C+provide+tight%2C+well+written+libraries+with+two+important+features+that+have+been+missing+from+previous+%22shrink+wrap%22+cases%3A+%5B1%5D+It+is+clear+how+to+add+something+to+the+jQuery+library+rather+than+rewriting+parts+of+it.+%5B2%5D+It+is+possible+to+distribute+the+plugins+%28additional+jQuery+library+code%29+without+disturbing+the+original.%0D%0A%0D%0AI+guess+I+am+willing+to+live+with+the+brass+bullet%2C+but+I+need+a+belt+of+them.&amp;tags=blog%2C+php%2C+cms%2C+css%2C+javascript%2C+ajax%2C+c%2B%2B%2C+web+developer%2C+programmer" type="text/html" />
	</item>
		<item>
		<title>Change Disqus Comment Count Text</title>
		<link>http://technify.me/user-experience/change-disqus-comment-count-text/</link>
		<comments>http://technify.me/user-experience/change-disqus-comment-count-text/#comments</comments>
		<pubDate>Wed, 05 Oct 2011 07:05:45 +0000</pubDate>
		<dc:creator>Scott Lewis</dc:creator>
				<category><![CDATA[User Experience]]></category>
		<category><![CDATA[disqus]]></category>
		<category><![CDATA[how-to]]></category>

		<guid isPermaLink="false">http://technify.me/?p=341</guid>
		<description><![CDATA[I recently implemented the Disqus comment system on this and another of my blogs. I am really pleased with the service. It works extremely well, allows me to moderate all of the comments on my multiple blogs and my online conversations in one location, and the user interface is seriously kick-ass. My only complaint was [...]]]></description>
		<wfw:commentRss>http://technify.me/user-experience/change-disqus-comment-count-text/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=iconify&amp;url=http%3A%2F%2Ftechnify.me%2Fuser-experience%2Fchange-disqus-comment-count-text%2F&amp;language=en_GB&amp;category=text&amp;title=Change+Disqus+Comment+Count+Text&amp;description=I+recently+implemented+the+Disqus+comment+system+on+this+and+another+of+my+blogs.+I+am+really+pleased+with+the+service.+It+works+extremely+well%2C+allows+me+to+moderate+all+of+the+comments+on+my+multiple+blogs+and+my+online+conversations+in+one+location%2C+and+the+user+interface+is+seriously+kick-ass.+My+only+complaint+was+that+there+is+no+way+to+change+the+look+of+the+Comments+and+Reactions+count.+Or+so+I+thought.+Thanks+to+Ryan+at+Disqus%2C+I+learned+there+is+a+very+simple%2C+but+admittedly+unknown%2C+way+to+do+this.%0D%0A%0D%0AIt+turns+out+that+in+the+Settings+section+for+your+Disqus+approved+sites%2C+you+can+change+the+text+of+the+comment+counts.+That+part+is+well+known.+What+is+not+well+known+is+that+the+text+fields+where+you+change+the+text+will+accept+HTML.%0D%0A%0D%0ANOTE%3A+You+can+find+the+settings+to+which+I+refer+in+this+post+by+logging+into+your+Disqus.com+account.+From+your+Dashboard%2C+click+on+the+site+for+which+you+want+to+implement+this+change+from+the+section+labeled+%22Your+Sites%22%2C+then+click+the+%22Settings%22+tab+at+the+top+of+the+page.+Then+click+on+the+%22Appearance%22+tab+in+the+left-hand+side+of+the+page.+The+Comments+and+Reactions+count+settings+are+towards+the+bottom+of+the+page.%0D%0A%0D%0AIn+my+case%2C+I+wanted+to+show+only+the+integer+value+that+represents+the+comment+count.+I+do%2C+however%2C+have+Reactions+enabled+so+the+text+output+for+the+count+looks+something+like+this%3A%0D%0A%0D%0A%5Bsourcecode+language%3D%22html%22%5D%0D%0A10+Comments+and+8+Reactions.%0D%0A%5B%2Fsourcecode%5D%0D%0A%0D%0AThe+settings+allows+me+to+change+each+part+but+it+won%27t+let+me+show+only+the+%2210%22+form+the+example+above.+The+example+above+is+represented+in+the+settings+via+two+text+fields+containing+one+each+of+%2210+Comments%22+and+%228+Reactions%22.+You+can+delete+the+contents+of+the+%22Reactions%22+field%2C+but+Disqus+will+still+display+the+%22and%22+even+if+the+field+is+empty.%0D%0A%0D%0AThe+Workaround%0D%0A%0D%0AThe+work+around+is+to+add+an+opening+SPAN+tag+to+the+end+of+the+%2210+Comments%22+field+and+a+close+SPAN+tag+to+the+%228+Reactions%22+field+like+this%3A%0D%0A%0D%0A%5Bsourcecode+language%3D%22html%22%5D%0D%0A10+%26lt%3Bspan+class%3D%26quot%3Bhide%26quot%3B%26gt%3BComments%0D%0A8+Reactions%26lt%3B%2Fspan%26gt%3B%0D%0A%5B%2Fsourcecode%5D%0D%0A%0D%0ASo+when+the+fields+are+concatenated+in+the+page%2C+the+output+will+look+like+this%3A%0D%0A%0D%0A%5Bsourcecode+language%3D%22html%22%5D%0D%0A10+%26lt%3Bspan+class%3D%26quot%3Bhide%26quot%3B%26gt%3B+and+8+Reactions%26lt%3B%2Fspan%26gt%3B%0D%0A%5B%2Fsourcecode%5D%0D%0A%0D%0AThe+form+even+allows+you+to+add+custom+CSS+in+the+handy+textarea+labeled+%22Custom+CSS%22.+So+I+can+simply+add+the+following+code+to+hide+the+text+enclosed+in+my+SPANs%3A%0D%0A%0D%0A%5Bsourcecode+language%3D%22css%22%5D%0D%0A.hide+%7B+display%3A+none%3B+%7D%0D%0A%5B%2Fsourcecode%5D%0D%0A%0D%0ANote+that+There+are+three+text+fields+for+comments+and+three+for+reactions.%0D%0A%0D%0A%5Bsourcecode+language%3D%22html%22%5D%0D%0A0+Comments%0D%0A1+Comment%0D%0A%7Bnum%7D+Comments%0D%0A%0D%0A0+Reactions%0D%0A1+Reaction%0D%0A%7Bnum%7D+Reactions%0D%0A%5B%2Fsourcecode%5D%0D%0A%0D%0AMake+sure+you+enter+the+HTML+in+each+field+like+this%3A%0D%0A%0D%0A%5Bsourcecode+language%3D%22html%22%5D%0D%0A0+%26lt%3Bspan+class%3D%26quot%3Bhide%26quot%3B%26gt%3BComments%0D%0A1+%26lt%3Bspan+class%3D%26quot%3Bhide%26quot%3B%26gt%3BComment%0D%0A%7Bnum%7D+%26lt%3Bspan+class%3D%26quot%3Bhide%26quot%3B%26gt%3BComments%0D%0A%0D%0A0+Reactions%26lt%3B%2Fspan%26gt%3B%0D%0A1+Reaction%26lt%3B%2Fspan%26gt%3B%0D%0A%7Bnum%7D+Reactions%26lt%3B%2Fspan%26gt%3B%0D%0A%5B%2Fsourcecode%5D%0D%0A%0D%0AThis+trick+could+also+be+used+to+change+the+look+of+the+different+parts+of+the+string+as+well.+You+could+do+something+like+this%3A%0D%0A%0D%0A%5Bsourcecode+language%3D%22html%22%5D%0D%0A%7Bnum%7D+%26lt%3Bspan+class%3D%26quot%3Bcomments%26quot%3B%26gt%3BComments%26lt%3B%2Fspan%26gt%3B%0D%0A%0D%0A%26lt%3Bspan+class%3D%26quot%3Breactions%26quot%3B%26gt%3B%7Bnum%7D+Reactions%26lt%3B%2Fspan%26gt%3B%0D%0A%5B%2Fsourcecode%5D%0D%0A%0D%0AThe+output+of+the+above+would+look+like+this%3A%0D%0A%0D%0A%5Bsourcecode+language%3D%22html%22%5D%0D%0A%7Bnum%7D+%26lt%3Bspan+class%3D%26quot%3Bcomments%26quot%3B%26gt%3BComments%26lt%3B%2Fspan%26gt%3B+and%0D%0A%26lt%3Bspan+class%3D%26quot%3Breactions%26quot%3B%26gt%3B%7Bnum%7DReactions%26lt%3B%2Fspan%26gt%3B%0D%0A%5B%2Fsourcecode%5D%0D%0A%0D%0A%0D%0A&amp;tags=disqus%2Chow-to%2Cblog%2C+php%2C+cms%2C+css%2C+javascript%2C+ajax%2C+c%2B%2B%2C+web+developer%2C+programmer" type="text/html" />
	</item>
		<item>
		<title>Problem 7: Cryptography 101</title>
		<link>http://technify.me/systems/cryptography-101/</link>
		<comments>http://technify.me/systems/cryptography-101/#comments</comments>
		<pubDate>Wed, 28 Sep 2011 13:50:02 +0000</pubDate>
		<dc:creator>George Flanagin</dc:creator>
				<category><![CDATA[Problems]]></category>
		<category><![CDATA[Systems]]></category>

		<guid isPermaLink="false">http://technify.me/?p=328</guid>
		<description><![CDATA[Cryptography fascinates the inner thief in almost everyone, from children who have tried to steal a cookie while their mothers were not looking, to professionals attempting to steal secrets. This interview question is a good one to discuss for a 45 minute hour to determine if a candidate understands the basic principles of cryptography as [...]]]></description>
		<wfw:commentRss>http://technify.me/systems/cryptography-101/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=iconify&amp;url=http%3A%2F%2Ftechnify.me%2Fsystems%2Fcryptography-101%2F&amp;language=en_GB&amp;category=text&amp;title=Problem+7%3A+Cryptography+101&amp;description=Cryptography+fascinates+the+inner+thief+in+almost+everyone%2C+from+children+who+have+tried+to+steal+a+cookie+while+their+mothers+were+not+looking%2C+to+professionals+attempting+to+steal+secrets.+This+interview+question+is+a+good+one+to+discuss+for+a+45+minute+hour+to+determine+if+a+candidate+understands+the+basic+principles+of+cryptography+as+opposed+to+security.%0D%0A%0D%0A%0D%0A%0D%0A%5BNote+for+the+reader%3A+We+do+not+intend+to+have+many+specialty+questions+in+this+series.+Given+the+number+of+jobs+in+IT+that+relate+somehow+to+%22security%2C%22+it+seemed+wise+to+present+one+question+about+the+computer+science+flip-side%2C+which+is+cryptography.+%5D%0D%0AProblem+Summary%3A%0D%0ASyferlock%2C+Inc.+makes+a+software+product+that+provides+additional+security+for+authentication+by+conventional+passwords.+If+you+have+pondered+the+security+risks+of+passwords+stored+in+the+browser%2C+or+the+possibility+that+someone+watches+over+your+shoulder+as+you+type+in+your+PIN+at+the+magic+money+machines%2C+then+you+have+considered+how+easy+it+is+to+lose+the+level+of+protection+afforded+by+basic+passwords.%0D%0A%0D%0A%5Bcaption+id%3D%22attachment_329%22+align%3D%22alignleft%22+width%3D%22201%22+caption%3D%22Pad+1%22%5D%5B%2Fcaption%5D%0D%0A%0D%0ASyferlock%27s+product+shows+a+substitution+pad+as+a+method+for+scrambling+your+PIN.+Consider+Pad+%231.+Suppose+your+PIN+is+that+most+famous+of+all+taxicab+numbers%2C+and+that+your+substitution+rule+is+to+choose+the+number+from+the+12+o%E2%80%99clock+position+of+each+number+on+the+PIN+pad.+In+that+case%2C+you+would+type+in+5204.+We+will+call+5204+the+encrypted+password%2C+and+your+undisclosed+password+the+plaintext+password.%0D%0A%0D%0AThe+substitution+numbers%2C+i.e.%2C+the+red%C2%A0and+blue+numbers%2C+are+generated+with+a+good%2C+long+period+pseudo-random+number+generator.+The+each+pad+you+see+will+undoubtedly+be+different+from+its+predecessor%2C+so+if+a+thief+observes+you+type+in+5204%2C+the+thief+would+not+be+able+to+use+it+on+the+next+pad+to+be+shown+because+the+pad+will+have+changed.+The+fact+that+the+encrypted+password+changes+prevents+loss+of+the+plain+text+password+by+this+method+of+observation.%0D%0A%0D%0AIn+fact%2C+5204+corresponds+to+a+few+other+numbers+and+rules%3A%0D%0A%0D%0A%097390+using+numbers+from+the+top+left+corner.%0D%0A%09%2A245+using+numbers+from+the+bottom+right+corner.%0D%0A%092960+using+numbers+from+the+bottom+center.%0D%0A%09...and+so+on.%0D%0A%0D%0A%5Bcaption+id%3D%22attachment_330%22+align%3D%22alignleft%22+width%3D%22199%22+caption%3D%22Pad+2%22%5D%5B%2Fcaption%5D%0D%0AQuestions%3A%0D%0AConsider+Pad+%232.+On+Pad+%232%2C+the+taxicab+number+will+be+encoded+as+4459.+Assume+that+you+can+record+the+PIN+pad+patterns+and+the+keys+typed+in+by+the+user%2C+much+as+was+done+by+the+%E2%80%9CCoreflood%E2%80%9D+botnet.%0D%0A%0D%0A%09Suppose+you+are+doing+a+little+%22social+engineering%2C%22+and+you+intend+to+hack+the+PINs+of+ten+people+who+work+on+math+and+statistics+problems+for+Nate+Silver.+What+ten+four+digit+PINs+would+you+try+first%2C+and+why%3F%0D%0A%09What+is+the+essential+premise+%28and+caution%29+behind+one-time-pad+cryptography%3F%0D%0A%09Does+the+grid%E2%80%99s+generation+with+a+high-quality+pseudo-random+number+generator+have+any+effect+on+the+security+of+this+system%3F+Or+stated+differently%2C+does+%E2%80%9Cknowing%E2%80%9D+the+next+pad+or+the+next+100+pads+effect+the+systems+crack-ability%3F+If+so%2C+how%3F%0D%0A%09Explain+the+essential+method+of+determining+the+plaintext+password+using+the+above+described+observational+methods.%0D%0A%09In+the+United+States%2C+PINs+are+usually+four+digits+long.+In+Europe%2C+they+are+six+digits+long.+Does+password+length+alter+difficulty+of+determining+the+plaintext+password+using+the+type+of+observational+analysis+described+in+this+scenario%3F%0D%0A%09Suppose+the+user+can+change+the+orientation+of+the+substitution+rule+with+each+digit+rather+than+being+locked+to+a+single+substitution+rule+for+all+four+or+six+digits.+For+example%2C+%E2%80%9Cnorth%E2%80%9D+for+the+first+and+last+digits%2C+and+%E2%80%9Cnortheast%E2%80%9D+for+the+second+digit%2C+and+%E2%80%9Csouth%E2%80%9D+for+the+third+digit.+Setting+aside+the+complexities+for+the+user+of+remembering+separate+rules+for+each+digit%2C+what+effect+would+this+extra+degree+of+freedom+have+on+the+system%3F%0D%0A&amp;tags=blog%2C+php%2C+cms%2C+css%2C+javascript%2C+ajax%2C+c%2B%2B%2C+web+developer%2C+programmer" type="text/html" />
	</item>
		<item>
		<title>Remove an Element from an HTML String with jQuery</title>
		<link>http://technify.me/user-experience/javascript/jquery/remove-an-element-from-an-html-string-with-jquery/</link>
		<comments>http://technify.me/user-experience/javascript/jquery/remove-an-element-from-an-html-string-with-jquery/#comments</comments>
		<pubDate>Thu, 15 Sep 2011 02:58:57 +0000</pubDate>
		<dc:creator>Scott Lewis</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[LinkedIn]]></category>

		<guid isPermaLink="false">http://technify.me/?p=261</guid>
		<description><![CDATA[While working on a project for work today, I encountered a problem that I apparently have never encountered before. What I thought was a very simple function call in jQuery turned out to be a bit more complicated. I needed to removed an HTML element from a string representation of an HTML snippet. jQuery doesn&#8217;t [...]]]></description>
		<wfw:commentRss>http://technify.me/user-experience/javascript/jquery/remove-an-element-from-an-html-string-with-jquery/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=iconify&amp;url=http%3A%2F%2Ftechnify.me%2Fuser-experience%2Fjavascript%2Fjquery%2Fremove-an-element-from-an-html-string-with-jquery%2F&amp;language=en_GB&amp;category=text&amp;title=Remove+an+Element+from+an+HTML+String+with+jQuery&amp;description=While+working+on+a+project+for+work+today%2C+I+encountered+a+problem+that+I+apparently+have+never+encountered+before.+What+I+thought+was+a+very+simple+function+call+in+jQuery+turned+out+to+be+a+bit+more+complicated.+I+needed+to+removed+an+HTML+element+from+a+string+representation+of+an+HTML+snippet.+jQuery+doesn%27t+quite+behave+the+way+I+expected+and+I+had+trouble+finding+a+solution%0D%0A%0D%0AAttempt+%231+%28Incorrect%29%0D%0A%5Bsourcecode+language%3D%22html%22%5D%0D%0Avar+theString+%3D+%26quot%3B%26lt%3Bp%26gt%3BA+string+%26lt%3Bspan%26gt%3Bwith+a+span+in+it%26lt%3B%2Fspan%26gt%3B%26lt%3B%2Fp%26gt%3B%26quot%3B%3B%0D%0Avar+theResult+%3D+%24%28%26quot%3Bspan%26quot%3B%2C+theString%29.remove%28%29.html%28%29%3B%0D%0A%0D%0A%2F%2F+Returns%3A+%27with+a+span+in+it%27%0D%0A%5B%2Fsourcecode%5D%0D%0A%0D%0AThe+code+above+will+return+the+element+I+want+to+remove%2C+not+the+original+string+with+the+element+removed.+Not+quite+what+I+want.%0D%0AAttempt+%232+%28Incorrect%29%0D%0A%5Bsourcecode+language%3D%22html%22%5D%0D%0Avar+theString+%3D+%26quot%3B%26lt%3Bp%26gt%3BA+string+%26lt%3Bspan%26gt%3Bwith+a+span+in+it%26lt%3B%2Fspan%26gt%3B%26lt%3B%2Fp%26gt%3B%26quot%3B%3B%0D%0Avar+theResult+%3D+%24%28%26quot%3Bspan%26quot%3B%2C+theString%29.remove%28%29.end%28%29.html%28%29%3B%0D%0A%0D%0A%2F%2F+Returns%3A+%27A+string%27%0D%0A%5B%2Fsourcecode%5D%0D%0A%0D%0AThe+code+above%2C+at+least%2C+gets+the+reference+right%2C+but+unfortunatley%2C+jQuery+returns+the+%27inner%27+HTML+but+what+I+need+is+the+%27outer%27+HTML.+For+some+reason%2C+it+strips+the+enclosing+element+and+gives+me+back+jut+the+contents+of+the+element.%0D%0AAttempt+%233+%28Incorrect%29%0D%0A%5Bsourcecode+language%3D%22html%22%5D%0D%0Avar+theString+%3D+%26quot%3B%26lt%3Bp%26gt%3BA+string+%26lt%3Bspan%26gt%3Bwith+a+span+in+it%26lt%3B%2Fspan%26gt%3B%26lt%3B%2Fp%26gt%3B%26quot%3B%3B%0D%0Avar+theResult+%3D+%24%28%26quot%3Bspan%26quot%3B%2C+theString%29.remove%28%29.end%28%29%5B0%5D%3B%0D%0A%0D%0A%2F%2F+Returns%3A+%28Object%29+%5BHTMLParagraphElement%5D%0D%0A%5B%2Fsourcecode%5D%0D%0A%0D%0AThe+code+above%2C+gives+me+back+the+correct+result+but+as+the+wrong+type.+This+code+returns+an+HTMLParagraphElement+object.+I+can+easily+append+this+return+value+to+another+element+or+the+document+body%2C+but+I+started+with+a+string+and+I+want+to+get+a+string+back.%0D%0AThe+Solution%0D%0AI+ended+up+using+a+little+bit+of+jQuery+slight-of-hand+to+get+the+result+I+want.+The+second+incorrect+approach+above+actually+does+return+what+I+want%2C+but+when+I+call+the+jQuery.html%28%29+method%2C+it+returns+the+innerHTML.%0D%0A%0D%0ASo+my+approach+is+to+first+append+the+element+to+a+new+%28temporary%29+DIV%2C+then+call+jQuery.html%28%29+on+the+DIV+and+so+get+back+the+full+HTML+string+I+started+with%2C+minus+the+element+I+removed.%0D%0A%0D%0A%5Bsourcecode+language%3D%22javascript%22%5D%0D%0A%28function%28%24%29+%7B%0D%0A++++%24.strRemove+%3D+function%28theTarget%2C+theString%29+%7B%0D%0A++++++++return+%24%28%26quot%3B%26lt%3Bdiv%2F%26gt%3B%26quot%3B%29.append%28%0D%0A++++++++++++%24%28theTarget%2C+theString%29.remove%28%29.end%28%29%0D%0A++++++++%29.html%28%29%3B%0D%0A++++%7D%3B%0D%0A%7D%29%28jQuery%29%3B%0D%0A%5B%2Fsourcecode%5D%0D%0A%0D%0ANow+I+can+get+exactly+the+result+I+expect+with+the+code+below.%0D%0A%0D%0A%5Bsourcecode+language%3D%22javascript%22%5D%0D%0Avar+theString+%3D+%26quot%3B%26lt%3Bp%26gt%3BA+string+%26lt%3Bspan%26gt%3Bwith+a+span+in+it%26lt%3B%2Fspan%26gt%3B%26lt%3B%2Fp%26gt%3B%26quot%3B%3B%0D%0Avar+theResult+%3D+%24.strRemove%28%26quot%3Bspan%26quot%3B%2C+theString%29%3B%0D%0A%0D%0A%2F%2F+Returns%3A+%27%26lt%3Bp%26gt%3BA+string+%26lt%3B%2Fp%26gt%3B%27%0D%0A%5B%2Fsourcecode%5D&amp;tags=javascript%2Cjquery%2CLinkedIn%2Cblog%2C+php%2C+cms%2C+css%2C+javascript%2C+ajax%2C+c%2B%2B%2C+web+developer%2C+programmer" type="text/html" />
	</item>
		<item>
		<title>SkyBlue CMS is now on GitHub</title>
		<link>http://technify.me/cms/skyblue-cms-is-now-on-github/</link>
		<comments>http://technify.me/cms/skyblue-cms-is-now-on-github/#comments</comments>
		<pubDate>Wed, 14 Sep 2011 01:20:40 +0000</pubDate>
		<dc:creator>Scott Lewis</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[SkyBlue]]></category>
		<category><![CDATA[LinkedIn]]></category>

		<guid isPermaLink="false">http://technify.me/?p=247</guid>
		<description><![CDATA[All things must eventually come to an end. SkyBlueCanvas lightweight CMS is officially at the end of its life. I built the very first incarnation of the software in 2003. Over the course of 8 years I spent thousands of hours developing the software and providing support. All of this was done for free. The [...]]]></description>
		<wfw:commentRss>http://technify.me/cms/skyblue-cms-is-now-on-github/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=iconify&amp;url=http%3A%2F%2Ftechnify.me%2Fcms%2Fskyblue-cms-is-now-on-github%2F&amp;language=en_GB&amp;category=text&amp;title=SkyBlue+CMS+is+now+on+GitHub&amp;description=All+things+must+eventually+come+to+an+end.+SkyBlueCanvas+lightweight+CMS+is+officially+at+the+end+of+its+life.+I+built+the+very+first+incarnation+of+the+software+in+2003.+Over+the+course+of+8+years+I+spent+thousands+of+hours+developing+the+software+and+providing+support.+All+of+this+was+done+for+free.+The+software+was+downloaded+over+50%2C000+times.+I+had+an+opportunity+to+interact+with+many+very+nice+people+around+the+world+and+made+a+few+good+friends+in+the+process.+But+it+is+time+to+move+on+to+other+things.%0D%0A%0D%0ASkyBlue+CMS+version+1.1+is+available+on+GitHub+here.+SkyBlue+CMS+version+2.0+is+also+available+on+GitHub.+You+are+free+to+download+or+to+fork+either+project+as+you+see+fit.+Keep+in+mind+that+while+I+will+not+provide+support+and+the+code+is+free%2C+the+copyright+is+a+legal+agreement.+If+you+download+it+and+use+it%2C+you+are+agreeing+to+be+bound+by+the+terms+of+the+GNU%2FGPL+version+3.%0D%0A%0D%0ADownload+version+1.1%0D%0A%0D%0A%5Bdm%5D4%5B%2Fdm%5D%0D%0A%0D%0AIt+should+be+noted+that+the+SkyBlue+CMS+version+2.0+code+is+not+production+ready.+You+will+need+decent+PHP%2C+Linux+and+debugging+skills+to+be+able+to+use+it.+I+have+included+some+very+basic+setup+instructions+in+the+README+for+the+project.+I+will+not+be+providing+any+support.+The+code+is+free.%0D%0A%0D%0ADownload+version+2.0+%28Alpha%29%0D%0A%0D%0A%5Bdm%5D5%5B%2Fdm%5D&amp;tags=LinkedIn%2Cblog%2C+php%2C+cms%2C+css%2C+javascript%2C+ajax%2C+c%2B%2B%2C+web+developer%2C+programmer" type="text/html" />
	</item>
		<item>
		<title>Word-of-mouth as a form of Payment</title>
		<link>http://technify.me/marketing/word-of-mouth-as-a-form-of-payment/</link>
		<comments>http://technify.me/marketing/word-of-mouth-as-a-form-of-payment/#comments</comments>
		<pubDate>Mon, 22 Aug 2011 00:25:08 +0000</pubDate>
		<dc:creator>Scott Lewis</dc:creator>
				<category><![CDATA[Marketing]]></category>

		<guid isPermaLink="false">http://technify.me/?p=231</guid>
		<description><![CDATA[This evening I stumbled across what I think is one of the simplest and yet most brilliant ideas I have seen in years. The name of the service is &#8220;Pay with a Tweet&#8221;. I own a few web properties on which I give away open source products for free. Giving away my wares for free [...]]]></description>
		<wfw:commentRss>http://technify.me/marketing/word-of-mouth-as-a-form-of-payment/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=iconify&amp;url=http%3A%2F%2Ftechnify.me%2Fmarketing%2Fword-of-mouth-as-a-form-of-payment%2F&amp;language=en_GB&amp;category=text&amp;title=Word-of-mouth+as+a+form+of+Payment&amp;description=This+evening+I+stumbled+across+what+I+think+is+one+of+the+simplest+and+yet+most+brilliant+ideas+I+have+seen+in+years.+The+name+of+the+service+is+%22Pay+with+a+Tweet%22.+I+own+a+few+web+properties+on+which+I+give+away+open+source+products+for+free.+Giving+away+my+wares+for+free+is+not+completely+altruistic.+While+I+am+happy+to+contribute+to+the+web+design+and+development+communities%2C+my+goal+is+to+build+my+web+traffic+to+be+able+to+sell+advertising+and+useful+web-related+products+on+my+sites.+%0D%0A%0D%0ATypically+I+let+users+download+the+wares+with+no+strings+attached+but+beg+ask+them+to+donate+or+share+my+site%28s%29+via+Twitter%2C+Facebook%2C+and+other+social+networks.+Pay+With+a+Tweet+allows+me+to+request+payment+up+front+so-to-speak+by+making+a+tweet+the+a+condition+for+download.+It+costs+the+user+nothing+and+only+requires+1+additional+click+to+get+to+the+download.+So+in+exchange+for+the+download%2C+I+get+advertising+to+a+few+hundred+to+several+thousand+people+and+the+user+still+gets+the+product+for+free.%0D%0A%0D%0AThat+would+be+cool+enough+but+the+idea+doesn%27t+end+there.+The+most+brilliant+part+of+their+service+is+that+when+you+create+your+unique+URL+to+hook+into+the+service%2C+the+site+also+generates+a+CRQ+Code+that+you+can+use+offline.+So+for+instance%2C+if+you+won+a+small+brick-and-mortar+store%2C+you+could+offer+a+5%25+discount+to+anyone+who+scans+the+code+with+their+iPhone.+So+in+exchange+for+giving+me+some+immediate+word-of-mouth+advertising%2C+I%27ll+give+you+5%25+off+of+you+purchase.%0D%0A%0D%0AI+think+this+is+a+truly+exciting+word-of-mouth+advertising+idea.+The+service+appears+to+be+fairly+new+but+I+am+excited+to+follow+their+progress.+I+think+Pay+With+a+Tweet+is+going+to+do+very+well.+It+has+all+the+markings+of+an+idea+that+could+be+huge.+It+is+really+simple+to+explain%2C+anyone+can+understand+it%2C+it+is+very+easy+for+end+users+to+do+and+it+couldn%27t+be+simpler+to+implement+into+a+web+site.&amp;tags=blog%2C+php%2C+cms%2C+css%2C+javascript%2C+ajax%2C+c%2B%2B%2C+web+developer%2C+programmer" type="text/html" />
	</item>
	</channel>
</rss>

