<?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>FewBar.com - Make it good &#187; facebook</title>
	<atom:link href="http://fewbar.com/tag/facebook/feed/" rel="self" type="application/rss+xml" />
	<link>http://fewbar.com</link>
	<description>Technology, life, and mischief, not in that order</description>
	<lastBuildDate>Fri, 23 Dec 2011 01:41:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.5</generator>
		<item>
		<title>Why hasn&#8217;t OpenID, or something else, taken over yet?</title>
		<link>http://fewbar.com/2010/04/why-hasnt-openid-or-something-else-taken-over-yet/</link>
		<comments>http://fewbar.com/2010/04/why-hasnt-openid-or-something-else-taken-over-yet/#comments</comments>
		<pubDate>Thu, 22 Apr 2010 21:54:14 +0000</pubDate>
		<dc:creator>clint</dc:creator>
				<category><![CDATA[Geeky]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[foaf]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[identity]]></category>
		<category><![CDATA[openid]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://fewbar.com/?p=165</guid>
		<description><![CDATA[I just happened upon a site that mentioned bubbl.us as a way to brainstorm. Cool tool. I played with it and decided I wanted to keep the data I had put in it to play with later, but was annoyed that I had to create yet another user id+email+password combination on yet another site that [...]]]></description>
			<content:encoded><![CDATA[<p>I just happened upon a site that mentioned <a href="http://bubbl.us/">bubbl.us</a> as a way to brainstorm. Cool tool. I played with it and decided I wanted to keep the data I had put in it to play with later, but was annoyed that I had to create yet another user id+email+password combination on yet another site that I probably won&#8217;t visit again for a long while. Plus, say I want to add it onto my facebook wall. Facebook might be able to extract the images, but they might now. How lame is that?</p>
<p>My current solution for the login problem is less than ideal. I use the java program <a href="http://jpwsafe.sourceforge.net/">Password Safe</a> to save my accounts+passwords, which it generates randomly. The pass phrase for my password safe is pretty complex, and I change it on about an annual basis. The program re-locks the safe after 5 minutes of inactivity, so this is reasonably safe against casual compromise. Of course, keyboard shoulder surfing and a subsequent theft of my machine (or temporary control) could render it useless, but I&#8217;m willing to accept those risks and do what I can to maintain control of the laptop. If somebody steals my laptop, unless they can crack the encryption quickly, I feel pretty good that I&#8217;ll have enough time to restore from backup, change all the passwords, and set a new combination.</p>
<p>However, this is basically as good as our current &#8220;status quo&#8221; of online fractured identity can get. And I still don&#8217;t have anything to bring all of my online presence together.<br />
<span id="more-165"></span><br />
I recall with fond memories watching <a href="http://identity20.com/media/OSCON2005/">Dick Hardt&#8217;s amazing Identity 2.0 presentation</a> from the audience at OSCON 2005. I came away thinking to myself &#8220;oh good, somebody is on it.&#8221; I put it out of my mind as a systems administrator with a lot of things to think about on the backend, and no real concern for the frontend.</p>
<p>Fast forward 5 years, and I see that we&#8217;re not much better off now. Dick Hardt&#8217;s company Sxip produced <a href="http://www.sxipper.com/">Sxipper</a>, which is pretty cool, but still puts it on the users to safeguard and manage their data. Oh and really, I never heard about it until I went looking for Sxip again, and I don&#8217;t know anybody using it, I think its just a cool curiosity, not a solution.</p>
<p>This really is an issue that affects people, but they may not know it. Look at <a href="http://www.equalsdrummond.name/?p=267">the trouble this guy went through to make google accounts useful for people with multiple email addresses</a>. As we start sharing and sending and moving data, our identities clearly can&#8217;t be defined as email addresses anymore. I have 3 that I use a lot, and a couple of others that just refuse to die for whatever reason. Changing them means trying to find every site on which I&#8217;ve used them. UGH.</p>
<p><a href="http://openid.net">OpenID</a> was, and still is, a promising direction. There are some definite security pitfalls in the way its been done in the past, but I think they&#8217;ve solved most of them. It doesn&#8217;t really satisfy Dick&#8217;s Photo ID requirement where the issuer doesn&#8217;t get to know what you&#8217;re using it for. Still I love when I sign up for a site and I can use my OpenID login. I use my launchpad.net account for this, mostly because it was the first site that had a very clear &#8220;this is your open ID url&#8221; link.</p>
<p><a href="http://esw.w3.org/Foaf%2Bssl">FOAF-SSL</a> or &#8220;WebID&#8221; also seems interesting as a way to promote social credibility and utilize existing technologies rather than try to invent the whole thing. Even twitter seems to have rudimentary support. But its still a long way off from being in control of our identity. Given the meager number of <a href="http://esw.w3.org/Foaf%2Bssl/RelyingParties">relying parties</a>, I&#8217;d say it may not ever get there, which is too bad.</p>
<p>So now I&#8217;m just confused. How and when are we going to get this done? When can I say &#8220;this is me, here&#8217;s some proof that this is me, now lets get something done.&#8221;?</p>
<p>Social networks sort of try to do this with the social proof of many friends. But at issue there is how closed off those social relationships are. Facebook wants me *on Facebook*. They don&#8217;t want to enable me to also use myspace or my Ning community seamlessly.</p>
<p>Until we as users know why we&#8217;d want that, and somebody is able to provide it, I guess I&#8217;m just stuck with my password safe.</p>
]]></content:encoded>
			<wfw:commentRss>http://fewbar.com/2010/04/why-hasnt-openid-or-something-else-taken-over-yet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Facebook&#8217;s scribe makes a meal out of me, and comes back for more</title>
		<link>http://fewbar.com/2009/02/facebooks-scribe-makes-a-meal-out-of-me-and-comes-back-for-more/</link>
		<comments>http://fewbar.com/2009/02/facebooks-scribe-makes-a-meal-out-of-me-and-comes-back-for-more/#comments</comments>
		<pubDate>Mon, 09 Feb 2009 18:51:03 +0000</pubDate>
		<dc:creator>clint</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[scribe]]></category>
		<category><![CDATA[thrift]]></category>

		<guid isPermaLink="false">http://fewbar.com/?p=40</guid>
		<description><![CDATA[So, I was working on getting Facebook&#8217;s seemingly amazing Scribe logging architecture setup to check it out. One of the requirements it has is &#8216;fb303&#8242;, which is included with Thrift in the contrib directory. I ran into this: [root@wolverine fb303]# ./configure --with-thriftpath=/usr/local --with-boost=/usr/local checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is [...]]]></description>
			<content:encoded><![CDATA[<p>So, I was working on getting Facebook&#8217;s seemingly amazing <a href="http://developers.facebook.com/scribe/">Scribe</a> logging architecture setup to check it out. One of the requirements it has is &#8216;fb303&#8242;, which is included with <a href="http://incubator.apache.org/thrift/">Thrift</a> in the contrib directory. I ran into this:<br />
<span id="more-40"></span><br />
<code><br />
[root@wolverine fb303]# ./configure --with-thriftpath=/usr/local --with-boost=/usr/local<br />
checking for a BSD-compatible install... /usr/bin/install -c<br />
checking whether build environment is sane... yes<br />
checking for gawk... gawk<br />
checking whether make sets $(MAKE)... yes<br />
checking for style of include used by make... GNU</p>
<p>checking for gcc... gcc<br />
checking for C compiler default output file name... a.out<br />
checking whether the C compiler works... yes<br />
checking whether we are cross compiling... no<br />
checking for suffix of executables...<br />
checking for suffix of object files... o<br />
checking whether we are using the GNU C compiler... yes<br />
checking whether gcc accepts -g... yes<br />
checking for gcc option to accept ANSI C... none needed<br />
checking dependency style of gcc... gcc3<br />
checking for g++... g++<br />
checking whether we are using the GNU C++ compiler... yes<br />
checking whether g++ accepts -g... yes<br />
checking dependency style of g++... gcc3<br />
checking for ranlib... ranlib<br />
checking for bash... /bin/sh<br />
checking for perl... /usr/bin/perl<br />
checking for python... /usr/bin/python<br />
checking for ar... /usr/bin/ar<br />
checking for ant... no<br />
checking Checking EXTERNAL_PATH set to... /usr/local/src/scribetest/thrift/contrib/fb303<br />
checking whether to enable optimized build... yes<br />
checking whether to enable static mode... yes<br />
checking Checking thrift_home set to... /usr/local<br />
checking for boostlib >= 1.33.1... yes<br />
configure: creating ./config.status<br />
config.status: creating Makefile<br />
config.status: creating cpp/Makefile<br />
config.status: creating py/Makefile<br />
config.status: executing depfiles commands<br />
EXTERNAL_PATH /usr/local/src/scribetest/thrift/contrib/fb303<br />
[root@wolverine fb303]# make<br />
make  all-recursive<br />
make[1]: Entering directory `/usr/local/src/scribetest/thrift/contrib/fb303'<br />
Making all in .<br />
make[2]: Entering directory `/usr/local/src/scribetest/thrift/contrib/fb303'<br />
make[2]: Nothing to be done for `all-am'.<br />
make[2]: Leaving directory `/usr/local/src/scribetest/thrift/contrib/fb303'<br />
Making all in cpp<br />
make[2]: Entering directory `/usr/local/src/scribetest/thrift/contrib/fb303/cpp'<br />
make  all-am<br />
make[3]: Entering directory `/usr/local/src/scribetest/thrift/contrib/fb303/cpp'<br />
if g++ -DPACKAGE_NAME=\"libfb303\" -DPACKAGE_TARNAME=\"libfb303\" -DPACKAGE_VERSION=\"20080209\" -DPACKAGE_STRING=\"libfb303\ 20080209\" -DPACKAGE_BUGREPORT=\"\" -DHAVE_BOOST=  -I. -I.  -I.. -Igen-cpp -I/usr/local/include/thrift -I/usr/local/include/boost-1_37     -Wall -O3 -MT FacebookService.o -MD -MP -MF ".deps/FacebookService.Tpo" -c -o FacebookService.o `test -f 'gen-cpp/FacebookService.cpp' || echo './'`gen-cpp/FacebookService.cpp; \<br />
then mv -f ".deps/FacebookService.Tpo" ".deps/FacebookService.Po"; else rm -f ".deps/FacebookService.Tpo"; exit 1; fi<br />
In file included from gen-cpp/FacebookService.cpp:6:<br />
gen-cpp/FacebookService.h:28: error: `facebook::thrift' has not been declared<br />
gen-cpp/FacebookService.h:28: error: `Service' has not been declared<br />
gen-cpp/FacebookService.h:28: error: ISO C++ forbids declaration of `_return' with no type<br />
gen-cpp/FacebookService.h:72: error: `facebook::thrift' has not been declared<br />
gen-cpp/FacebookService.h:72: error: `Service' has not been declared<br />
gen-cpp/FacebookService.h:72: error: ISO C++ forbids declaration of `parameter' with no type<br />
gen-cpp/FacebookService.h:1077: error: `facebook::thrift' has not been declared<br />
gen-cpp/FacebookService.h:1077: error: ISO C++ forbids declaration of `Service' with no type<br />
gen-cpp/FacebookService.h:1077: error: expected `;' before "success"<br />
gen-cpp/FacebookService.h: In member function `bool facebook::fb303::FacebookService_getLimitedReflection_result::operator==(const facebook::fb303::FacebookService_getLimitedReflection_result&#038;) const':<br />
gen-cpp/FacebookService.h:1086: error: `success' was not declared in this scope<br />
gen-cpp/FacebookService.h:1086: error: 'const class facebook::fb303::FacebookService_getLimitedReflection_result' has no member named 'success'<br />
gen-cpp/FacebookService.h:1086: warning: unused variable 'success'<br />
gen-cpp/FacebookService.h: At global scope:<br />
gen-cpp/FacebookService.h:1107: error: `facebook::thrift' has not been declared<br />
gen-cpp/FacebookService.h:1107: error: ISO C++ forbids declaration of `Service' with no type<br />
gen-cpp/FacebookService.h:1107: error: expected `;' before '*' token<br />
gen-cpp/FacebookService.h:1241: error: `facebook::thrift' has not been declared<br />
gen-cpp/FacebookService.h:1241: error: `Service' has not been declared<br />
gen-cpp/FacebookService.h:1241: error: ISO C++ forbids declaration of `_return' with no type<br />
gen-cpp/FacebookService.h:1243: error: `facebook::thrift' has not been declared<br />
gen-cpp/FacebookService.h:1243: error: `Service' has not been declared<br />
gen-cpp/FacebookService.h:1243: error: ISO C++ forbids declaration of `_return' with no type<br />
gen-cpp/FacebookService.h:1434: error: `facebook::thrift' has not been declared<br />
gen-cpp/FacebookService.h:1434: error: `Service' has not been declared<br />
gen-cpp/FacebookService.h:1434: error: ISO C++ forbids declaration of `_return' with no type<br />
gen-cpp/FacebookService.cpp: In member function `uint32_t facebook::fb303::FacebookService_getLimitedReflection_result::read(apache::thrift::protocol::TProtocol*)':<br />
gen-cpp/FacebookService.cpp:1795: error: 'class facebook::fb303::FacebookService_getLimitedReflection_result' has no member named 'success'<br />
gen-cpp/FacebookService.cpp: In member function `uint32_t facebook::fb303::FacebookService_getLimitedReflection_result::write(apache::thrift::protocol::TProtocol*) const':<br />
gen-cpp/FacebookService.cpp:1821: error: 'const class facebook::fb303::FacebookService_getLimitedReflection_result' has no member named 'success'<br />
gen-cpp/FacebookService.cpp: In member function `uint32_t facebook::fb303::FacebookService_getLimitedReflection_presult::read(apache::thrift::protocol::TProtocol*)':<br />
gen-cpp/FacebookService.cpp:1851: error: 'class facebook::fb303::FacebookService_getLimitedReflection_presult' has no member named 'success'<br />
gen-cpp/FacebookService.cpp: At global scope:<br />
gen-cpp/FacebookService.cpp:2614: error: `facebook::thrift' has not been declared<br />
gen-cpp/FacebookService.cpp:2614: error: variable or field `getLimitedReflection' declared void<br />
gen-cpp/FacebookService.cpp:2614: error: `int facebook::fb303::FacebookServiceClient::getLimitedReflection' is not a static member of `class facebook::fb303::FacebookServiceClient'<br />
gen-cpp/FacebookService.cpp:2614: error: `Service' was not declared in this scope<br />
gen-cpp/FacebookService.cpp:2614: error: `_return' was not declared in this scope<br />
gen-cpp/FacebookService.cpp:2615: error: expected `,' or `;' before '{' token<br />
gen-cpp/FacebookService.cpp:2633: error: `facebook::thrift' has not been declared<br />
gen-cpp/FacebookService.cpp:2633: error: variable or field `recv_getLimitedReflection' declared void<br />
gen-cpp/FacebookService.cpp:2633: error: `int facebook::fb303::FacebookServiceClient::recv_getLimitedReflection' is not a static member of `class facebook::fb303::FacebookServiceClient'<br />
gen-cpp/FacebookService.cpp:2633: error: `Service' was not declared in this scope<br />
gen-cpp/FacebookService.cpp:2633: error: `_return' was not declared in this scope<br />
gen-cpp/FacebookService.cpp:2634: error: expected `,' or `;' before '{' token<br />
gen-cpp/FacebookService.cpp: In member function `void facebook::fb303::FacebookServiceProcessor::process_getLimitedReflection(int32_t, apache::thrift::protocol::TProtocol*, apache::thrift::protocol::TProtocol*)':<br />
gen-cpp/FacebookService.cpp:3070: error: 'class facebook::fb303::FacebookService_getLimitedReflection_result' has no member named 'success'<br />
make[3]: *** [FacebookService.o] Error 1<br />
make[3]: Leaving directory `/usr/local/src/scribetest/thrift/contrib/fb303/cpp'<br />
make[2]: *** [all] Error 2<br />
make[2]: Leaving directory `/usr/local/src/scribetest/thrift/contrib/fb303/cpp'<br />
make[1]: *** [all-recursive] Error 1<br />
make[1]: Leaving directory `/usr/local/src/scribetest/thrift/contrib/fb303'<br />
make: *** [all] Error 2<br />
</code></p>
<p>I googled around but found nothing. I tried logging into #thrift on Freenode, and &#8220;SteveC_&#8221; informed me that he had the same problem, and pointed me at this <a href="https://issues.apache.org/jira/browse/THRIFT-292">thrift</a> bug report that explains it a little better. It would seem that Thrift is no longer in the  &#8216;facebook&#8217; namespace, but rather &#8216;apache&#8217;. This makes perfect sense. However, fb303 still expects it to be facebook. So, on Steve&#8217;s advice of replacing the word &#8216;facebook&#8217; with &#8216;apache&#8217; in the fb303 tree, I did this in fb303:</p>
<p>find . -type f | xargs perl -p -i -e &#8216;s/facebook/apache/g&#8217;</p>
<p>And the make continued a little further until I hit this:</p>
<p><code><br />
make[2]: Leaving directory `/usr/local/src/scribetest/thrift/contrib/fb303/cpp'<br />
Making all in py<br />
make[2]: Entering directory `/usr/local/src/scribetest/thrift/contrib/fb303/py'<br />
/usr/bin/python setup.py build<br />
running build<br />
running build_py<br />
error: package directory 'fb303' does not exist<br />
make[2]: *** [all-local] Error 1<br />
make[2]: Leaving directory `/usr/local/src/scribetest/thrift/contrib/fb303/py'<br />
make[1]: *** [all-recursive] Error 1<br />
make[1]: Leaving directory `/usr/local/src/scribetest/thrift/contrib/fb303'<br />
make: *** [all] Error 2<br />
</code></p>
<p>However, this error seemed to be irrelevant, as &#8216;make install&#8217; put fb303 where it was supposed to go.</p>
<p>Building scribe, the same &#8216;find&#8217; command from above was required. I ran it after running into the first &#8216;no such thing as facebook&#8217; error, and the make continued, and scribe seemed to work just fine.</p>
<p>Hopefully this will find its way into google&#8217;s indexes and help somebody.</p>
]]></content:encoded>
			<wfw:commentRss>http://fewbar.com/2009/02/facebooks-scribe-makes-a-meal-out-of-me-and-comes-back-for-more/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.156 seconds -->

