<?xml version="1.0"?>
<rss version="2.0">

<channel>
	<title>Planet Fellowship (en)</title>
	<link>http://planet.fsfe.org/en</link>
	<language>en</language>
	<description>Planet Fellowship (en) - http://planet.fsfe.org/en</description>

<item>
	<title>Inductive Bias: JAX: Logging best practices</title>
	<guid isPermaLink="false">http://blog.isabel-drost.de/?p=485</guid>
	<link>http://blog.isabel-drost.de/index.php/archives/485/jax-logging-best-practices</link>
	<description>&lt;p&gt;The ideal outcome of Peter RoÃŸbach’s talk on logging best practices was to have&lt;br /&gt;
attendees leave the room thinking “we know all this already and are applying&lt;br /&gt;
it successfully” - most likely though the majority left thinking about how to&lt;br /&gt;
implement even the most basic advise discussed.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
From his consultancy and fire fighter background he has a good overview of what&lt;br /&gt;
logging in the average corporate environment looks like: No logging plan, no&lt;br /&gt;
rules, dozens of logging frameworks in active use, output in many different&lt;br /&gt;
languages, no structured log events but a myriad of different quoting,&lt;br /&gt;
formatting and bracketing standards instead.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
So what should the ideal log line contain? First of all it should really be a&lt;br /&gt;
log line instead of a multi line something that cannot be reconstructed when&lt;br /&gt;
interleaved with other messages. The line should not only contain the class&lt;br /&gt;
name that logged the information (actually that is the least important piece of&lt;br /&gt;
information), it should contain the thread id, server name, a (standardised and&lt;br /&gt;
always consistently formatted) timestamp in a decent resolution (hint: one new&lt;br /&gt;
timestamp per second is not helpful when facing several hundred requests per&lt;br /&gt;
second). Make sure to have timing aligned across machines if timestamps are&lt;br /&gt;
needed for correlating logs. Ideally there should be context in the form of&lt;br /&gt;
request id, flow id, session id.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
When thinking about logs, do not think too much about human readability - think&lt;br /&gt;
more in terms of machine readability and parsability. Treat your logging system&lt;br /&gt;
as the db in your data center that has to deal with most traffic. It is what&lt;br /&gt;
holds user interactions and system metrics that can be used as business&lt;br /&gt;
metrics, for debugging performance problems, for digging up functional issues.&lt;br /&gt;
Most likely you will want to turn free text that provides lots of flexibility&lt;br /&gt;
for screwing up into a more structured format like json, or even some binary&lt;br /&gt;
format that is storage efficient (think protocol buffers, thrift, avro).&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
In terms of log levels, make sure to log development traces on trace, provide&lt;br /&gt;
detailed problem analysis stuff on debug, put normal behaviour onto info. In&lt;br /&gt;
case of degraded functionality, log to warn. In case of things you cannot&lt;br /&gt;
easily recovered from put them on error. When it comes to logging hierarchies -&lt;br /&gt;
do not only think in class hierarchies but also in terms of use cases: Just&lt;br /&gt;
because your http connector is used in two modules doesn’t mean that there&lt;br /&gt;
should be no way to turn logging on just for one of the modules alone.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
When designing your logging make sure to talk to all stakeholders to get clear&lt;br /&gt;
requirements. Make sure you can find out how the system is being used in the&lt;br /&gt;
wild, be able to quantify the number of exceptions; max, min and average&lt;br /&gt;
duration of a request and similar metrics.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
Tools you could look at for help include but are not limited to splunk, jmx,&lt;br /&gt;
jconsole, syslog, logstash, statd, redis for log collection and queuing.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
As a parting exercise: Look at all of your own logfiles and count the different&lt;br /&gt;
formats used for storing time.&lt;/p&gt;</description>
	<pubDate>Wed, 22 May 2013 20:37:59 +0000</pubDate>
</item>
<item>
	<title>Inductive Bias: JAX: Java performance myths</title>
	<guid isPermaLink="false">http://blog.isabel-drost.de/?p=484</guid>
	<link>http://blog.isabel-drost.de/index.php/archives/484/jax-java-performance-myths</link>
	<description>&lt;p&gt;This talk was one of the famous talks on Java performance myths by Arno Haase.&lt;br /&gt;
His main point - supported with dozens of illustrative examples was for&lt;br /&gt;
software developers to stop trusting in word of mouth, cargo cult like myths&lt;br /&gt;
that are abundant among engineers. Again the goal should be to write readable&lt;br /&gt;
code above all - for one the Java compiler and JIT are great at optimising. In&lt;br /&gt;
addition many of the myths being spread in the Java community that are claimed&lt;br /&gt;
to lead to better performance are simply not true.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
It was interesting to learn how many different aspects of both software and&lt;br /&gt;
hardware contribute to code performance. Micro benchmarks are considered&lt;br /&gt;
dangerous for a reason - creating a well controlled environment that matches&lt;br /&gt;
what the code will encounter in production is influenced by things like just in&lt;br /&gt;
time compilation, cpu throttling, etc.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
Some myths that Arno proved wrong include final making code faster (in case of&lt;br /&gt;
method parameters it doesn’t make a difference up to bytecode being identical&lt;br /&gt;
with and without), inheritance being always expensive (even with an abstract&lt;br /&gt;
class between the interface and the implementation Java 6 and 7 can still&lt;br /&gt;
inline the method in question). Another one was on often wrongly scoped Java&lt;br /&gt;
vs. C comparisons. One myth resolved around the creation of temporary objects -&lt;br /&gt;
since Java 6 and 7 in simple cases even these can be optimised away.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
When it comes to (un-)boxing and reflection there is a performance penalty. For&lt;br /&gt;
the latter mostly for method lookup, not so much for calling the method. What we&lt;br /&gt;
are talking about however are penalties in the range of about 1000 compute&lt;br /&gt;
cycles. Compared to doing any remote calls this is still dwarfed. Reflection on&lt;br /&gt;
fields is even cheaper.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
One of the more wide spread myths resolved around string concatenation being&lt;br /&gt;
expensive - doing a “A” + “B” in code will be turned into “AB” in&lt;br /&gt;
bytecode. Even doing the same with a variable will be turned into the use of&lt;br /&gt;
StringBuilder ever since -XX:OptimizeStringConcat was turned on by default.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
The main message here is to stop trusting your intuition when reasoning about a&lt;br /&gt;
system’s performance and performance bottlenecks. Instead the goal should be to&lt;br /&gt;
go and measure what is really going on. Those are simple examples where your&lt;br /&gt;
average Java intuition goes wrong. Make sure to stay on top with what the JVM&lt;br /&gt;
turns your code into and how that is than executed on the hardware you have&lt;br /&gt;
rolled out if you really want to get the last bit of speed out of your&lt;br /&gt;
application.&lt;/p&gt;</description>
	<pubDate>Wed, 22 May 2013 20:37:07 +0000</pubDate>
</item>
<item>
	<title>Inductive Bias: JAX: Does parallel equal performant?</title>
	<guid isPermaLink="false">http://blog.isabel-drost.de/?p=483</guid>
	<link>http://blog.isabel-drost.de/index.php/archives/483/jax-does-parallel-equal-performant</link>
	<description>&lt;p&gt;In general there is a tendency to set parallel implementations to being equal&lt;br /&gt;
to performant implementations. Except in the really naive case there is always&lt;br /&gt;
going to be some overhead due to scheduling work, managing memory sharing and&lt;br /&gt;
network communication overhead. Essentially that knowledge is reflected in&lt;br /&gt;
Amdahl’s law (the amount of serial work limits the benefit from running parts&lt;br /&gt;
of your implementation in parallel, http://en.wikipedia.org/wiki/Amdahl’s_law),&lt;br /&gt;
and Little’s law (http://en.wikipedia.org/wiki/Little’s_law) in case of queuing&lt;br /&gt;
problems.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
When looking at current Java optimisations there is quite a bit going on to&lt;br /&gt;
support better parallelisation: Work is being done to provide for improving&lt;br /&gt;
lock contention situations, the GC adaptive sizing policy has been improved to&lt;br /&gt;
a usable state, there is added support for parallel arrays and lampbda’s&lt;br /&gt;
splitable interface.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
When it comes to better locking optimisations what is most notable is work&lt;br /&gt;
towards coarsening locks at compile and JIT time (essentially moving locks from&lt;br /&gt;
the inside of a loop to the outside); eliminating locks if objects are being&lt;br /&gt;
used in a local, non-threaded context anyway; and support for biased locking&lt;br /&gt;
(that is forcing locks only when a second thread is trying to access an&lt;br /&gt;
object). All three taken together can lead to performance improvements that&lt;br /&gt;
will almost render StringBuffer and StringBuilder to exhibit equal performance&lt;br /&gt;
in a single threaded context.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
For pieces of code that suffer from false sharing (two variables used in&lt;br /&gt;
separate threads independently that end up in the same CPU cacheline and as a&lt;br /&gt;
result are both flushed on update) there is a new annotation: Adding the&lt;br /&gt;
“@contended” annotation can help the compiler for which pieces of code to add&lt;br /&gt;
cacheline padding (or re-arrange entirely) to avoid that false sharing from&lt;br /&gt;
happening. One other way to avoid false sharing seems to be to look for class&lt;br /&gt;
cohesion - coherent classes where methods and variables are closely related&lt;br /&gt;
tend to suffer less from false sharing. If you would like to view the resulting&lt;br /&gt;
layout use the “-XX:PrintFieldLayout” option.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
Java 8 will bring a few more notable improvements including changes to the&lt;br /&gt;
adaptive sizing GC policy, the introduction of parallel arrays that allow for&lt;br /&gt;
parallel execution of predicates on array entries, changes to the concurrency&lt;br /&gt;
libraries, internalised iterators.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;</description>
	<pubDate>Tue, 21 May 2013 20:34:40 +0000</pubDate>
</item>
<item>
	<title>Bits from the Basement: Introducing TeleBT</title>
	<guid isPermaLink="true">http://www.gag.com/bdale/blog/posts/Introducing_TeleBT.html</guid>
	<link>http://www.gag.com/bdale/blog/posts/Introducing_TeleBT.html</link>
	<description>&lt;p&gt;Keith and I are pleased to announce the immediate availability of
&lt;a href=&quot;http://altusmetrum.org/TeleBT&quot;&gt;TeleBT&lt;/a&gt;, a new
&lt;a href=&quot;http://altusmetrum.org&quot;&gt;Altus Metrum&lt;/a&gt;
ground station product providing the equivalent of
&lt;a href=&quot;http://www.gag.com/bdale/blog/../TeleDongle&quot;&gt;TeleDongle&lt;/a&gt; plus &lt;a href=&quot;http://www.bluetooth.com&quot;&gt;Bluetooth&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;TeleBT working with &lt;a href=&quot;http://altusmetrum.org/AltosDroid&quot;&gt;AltosDroid&lt;/a&gt;
on an &lt;a href=&quot;http://www.android.com/&quot;&gt;Android&lt;/a&gt; device provides
everything needed to monitor a rocket in flight, record telemetry, and know
how to walk right to the airframe after it's back on the ground.&lt;/p&gt;

&lt;p&gt;The Bluetooth capability of TeleBT is also supported by AltosUI on Linux,
and with a micro USB cable TeleBT works just like TeleDongle on Windows, Mac,
and Linux systems running AltOS version 1.2.1 or later.&lt;/p&gt;</description>
	<pubDate>Tue, 21 May 2013 19:55:18 +0000</pubDate>
</item>
<item>
	<title>emergency exit: Free commenting disabled</title>
	<guid isPermaLink="false">http://blogs.fsfe.org/h2/?p=237</guid>
	<link>http://blogs.fsfe.org/h2/2013/05/21/free-commenting-disabled/</link>
	<description>&lt;p&gt;Since I have had more and more spam coming through the filters and annoying me no end, I decided to restrict commenting to registered users (which are only FSFE fellows). I regret to do this, but the ratio of spam to content is 5,245 to 22 (do the math yourself) and I don’t want to spend what time I have for the blog with removing spam. I hope to change it in the future again, once a better anti-spam solution has been found.&lt;/p&gt;</description>
	<pubDate>Tue, 21 May 2013 16:57:08 +0000</pubDate>
</item>
<item>
	<title>you can't do that online anymore » English: Google Talk discontinued</title>
	<guid isPermaLink="false">http://blogs.fsfe.org/hugo/?p=545</guid>
	<link>http://blogs.fsfe.org/hugo/2013/05/google-talk-discontinued-will-google-keep-its-promise-and-give-xmpp-users-a-way-out/</link>
	<description>&lt;h1 id=&quot;will-google-keep-its-promise-and-give-xmpp-users-a-way-out&quot;&gt;Will Google keep its promise and give xmpp users a way out?&lt;/h1&gt;
&lt;p&gt;As you may have seen, Google announced at their Google I/O conference that they were discontinuing their XMPP service, Google Talk. It’s very unfortunate, because XMPP is the most deployed open standard for instant messaging. It gave Google users the ability to communicate instantly with anyone using an XMPP federated service (like &lt;a href=&quot;https://wiki.fsfe.org/XMPP&quot;&gt;FSFE’s fellows XMPP server&lt;/a&gt;). &lt;a href=&quot;http://windowspbx.blogspot.fr/2013/05/hangouts-wont-hangout-with-other.html&quot;&gt;Even Microsoft&lt;/a&gt; recently enabled its users to communicate to the outside world through XMPP. Now, Google is “replacing” Google Talk with Google+ Hangouts which will &lt;a href=&quot;https://developers.google.com/talk/&quot;&gt;no longer support XMPP&lt;/a&gt;&lt;a href=&quot;http://blogs.fsfe.org/hugo/category/english/feed/#fn-google-talk-discontinued&quot; id=&quot;ref-xmpp-support&quot;&gt;¹&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Note: We announced a new communications product, Hangouts, in May 2013. Hangouts will replace Google Talk and does not support XMPP.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;What we know is that Google stops XMPP federation. Soon, Google users won’t be able to chat with anybody but other Google users. If I were paranoid, I’d say this makes their recent move on Google Talk &lt;a href=&quot;https://www.fsf.org/blogs/sysadmin/google-backslides-on-federated-instant-messaging-on-purpose&quot;&gt;look suspicious&lt;/a&gt;. But enough whining. What can we do about this? Well, there might be a way out for those of you who were using Google Talk as their XMPP service and who had a lot of non-Google contacts. Did you read Google’s Terms of Service? I bet &lt;a href=&quot;http://tosdr.org/#google&quot;&gt;you didn’t &lt;img src=&quot;http://blogs.fsfe.org/hugo/wp-includes/images/smilies/icon_wink.gif&quot; alt=&quot;;-)&quot; class=&quot;wp-smiley&quot; /&gt; .&lt;/a&gt; No worries, we sum it up for you at &lt;a href=&quot;http://tosdr.org/#google&quot;&gt;Terms of Service; Didn’t Read&lt;/a&gt;. So, you might have noticed this interesting bit:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Google enables you to get your information out when a service is discontinued &lt;a href=&quot;https://groups.google.com/d/topic/tosdr/PD5ZWzgv2RI/discussion&quot;&gt;Discussion&lt;/a&gt; Google gives you reasonable advance notice when a service is discontinued and “a chance to get information out of that Service.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The full terms state:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;We believe that you own your data and preserving your access to such data is important. If we discontinue a Service, where reasonably possible, we will give you reasonable advance notice and a chance to get information out of that Service.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;So far, the only notice I have seen is on a &lt;a href=&quot;https://developers.google.com/talk/&quot;&gt;developer page&lt;/a&gt; so I don’t think that counts for a “reasonable advance notice”; we yet have to wait for this when Google announces to their users that they discontinue Google Talk. Or maybe Google’s going to argue that they don’t “discontinue” a Service because Talk is replaced by Hangouts (which does not support XMPP and which isn’t federated). I’d argue it’s not true and that XMPP chat is discontinued. Hence Google should give users a way out. Let’s hope that those who have decided to &lt;a href=&quot;https://www.schneier.com/blog/archives/2012/12/feudal_sec.html&quot;&gt;pay allegiance to Google&lt;/a&gt; will be able to get their chat contact list out of Google Talk, with a way to import them into &lt;a href=&quot;http://xmpp.net&quot;&gt;XMPP providers&lt;/a&gt; which are federated.&lt;/p&gt;
&lt;hr /&gt;
&lt;a id=&quot;fn-google-talk-discontinued&quot;&gt; &lt;/a&gt;&lt;p&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;it remains unclear whether XMPP support is entirely gone for xmpp-client-to-server according to &lt;a href=&quot;http://arstechnica.com/information-technology/2013/05/hands-on-with-hangouts-googles-new-text-and-video-chat-architecture/&quot;&gt;Ars&lt;/a&gt;&lt;a href=&quot;http://blogs.fsfe.org/hugo/category/english/feed/#ref-xmpp-support&quot;&gt;↩&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;a href=&quot;https://pad.fsfe.org/p/google-talk-discontinued&quot;&gt;Edit&lt;/a&gt; &lt;a href=&quot;https://github.com/hugoroy/blog/blob/master/google-talk-discontinued-will-google-keep-its-promise-and-give-xmpp-users-a-way-out.md&quot;&gt;Source&lt;/a&gt; &lt;a href=&quot;http://blogs.fsfe.org/hugo/?p=545&quot;&gt;Link&lt;/a&gt;&lt;/p&gt;
 &lt;p&gt;&lt;a href=&quot;http://blogs.fsfe.org/hugo/?flattrss_redirect&amp;amp;id=545&amp;amp;md5=6f8b9ad2b8c163b79fc6528dfc747233&quot; target=&quot;_blank&quot; title=&quot;Flattr&quot;&gt;&lt;img src=&quot;http://blogs.fsfe.org/hugo/wp-content/plugins/flattr/img/flattr-badge-large.png&quot; alt=&quot;flattr this!&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description>
	<pubDate>Tue, 21 May 2013 13:18:54 +0000</pubDate>
</item>
<item>
	<title>Losca: Network from laptop to Android device over USB</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-31939153.post-1595609610329906191</guid>
	<link>http://losca.blogspot.com/2013/05/network-from-laptop-to-android-device.html</link>
	<description>If you're running an Android device with GNU userland Linux in a chroot and need a full network access over USB cable (so that you can use your laptop/desktop machine's network connection from the device), here's a quick primer on how it can be set up.&lt;br /&gt;&lt;br /&gt;When doing Openmoko hacking, one always first plugged in the USB cable and forwarded network, or like I did later forwarded network &lt;a href=&quot;http://wiki.openmoko.org/wiki/Manually_using_Bluetooth&quot;&gt;over Bluetooth&lt;/a&gt;. It was mostly because the WiFi was quite unstable with many of the kernels.&lt;br /&gt;&lt;br /&gt;I recently found out myself using a chroot on a Nexus 4 without working WiFi, so instead of my usual WiFi usage I needed network over USB... trivial, of course, except that there's Android on the way and I'm a Android newbie. Thanks to ZDmitry on Freenode, I got the bits for the Android part so I got it working.&lt;br /&gt;&lt;br /&gt;On device, have eg. data/usb.sh with the following contents.&lt;br /&gt;&lt;blockquote class=&quot;tr_bq&quot;&gt;&lt;pre&gt;#!/system/xbin/sh&lt;br /&gt;CHROOT=&quot;/data/chroot&quot;&lt;br /&gt;&lt;br /&gt;ip addr add 192.168.137.2/30 dev usb0&lt;br /&gt;ip link set usb0 up&lt;br /&gt;ip route delete default&lt;br /&gt;ip route add default via 192.168.137.1;&lt;br /&gt;setprop net.dns1 8.8.8.8&lt;br /&gt;echo 'nameserver 8.8.8.8' &amp;gt;&amp;gt; $CHROOT/run/resolvconf/resolv.conf&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;On the host, execute the following:&lt;br /&gt;&lt;blockquote class=&quot;tr_bq&quot;&gt;&lt;pre&gt;adb shell setprop sys.usb.config rndis,adb&lt;br /&gt;adb shell data/usb.sh&lt;br /&gt;sudo ifconfig usb0 192.168.137.1&lt;br /&gt;sudo iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.137.0/24&lt;br /&gt;echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward &lt;br /&gt;sudo iptables -P FORWARD ACCEPT&lt;/pre&gt;&lt;/blockquote&gt;This works at least with Ubuntu saucy chroot. The main difference in some other distro might be whether the resolv.conf has moved to /run or not. You should be now all set up to browse / apt-get stuff from the device again.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Update: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Clarified that this is to forward the desktop/laptop's network connection to the device so that network is accessible from the device over USB.&lt;/span&gt;</description>
	<pubDate>Tue, 21 May 2013 14:23:21 +0000</pubDate>
	<author>noreply@blogger.com (Timo Jyrinki)</author>
</item>
<item>
	<title>Inductive Bias: JAX: Pigs, snakes and deaths by 1k cuts</title>
	<guid isPermaLink="false">http://blog.isabel-drost.de/?p=482</guid>
	<link>http://blog.isabel-drost.de/index.php/archives/482/jax-pigs-snakes-and-deaths-by-1k-cuts</link>
	<description>&lt;p&gt;In his talk on performance problems Rainer Schuppe gave a great introduction to&lt;br /&gt;
which kinds of performance problems can be observed in production and how to&lt;br /&gt;
best root-cause them.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
Simply put performance issues usually arise due to a difference in either data&lt;br /&gt;
volumn, concurrency levels or resource usage between the dev, qa and production&lt;br /&gt;
environments. The tooling to uncover and explain them is pretty well known:&lt;br /&gt;
Staring with looking at logfiles, ARM tools, using aspects, bytecode&lt;br /&gt;
instrumentalisation, sampling, watching JMX statistics, and PMI tools.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
All of theses tools have their own unique advantages and disadvantages. With&lt;br /&gt;
logs you get the most freedom, however you have to know what to log at&lt;br /&gt;
development time. In addition logging is i/o heavy, so doing too much can slow&lt;br /&gt;
the application down itself. In a common distributed system logs need to be&lt;br /&gt;
aggregated somehow. As a simple example of what can go wrong are cascading&lt;br /&gt;
exceptions spilled to disk that cause machines to run out of disk space one&lt;br /&gt;
after the other. When relying on logging make sure to keep transaction&lt;br /&gt;
contexts, in particular transaction ids across machines and services to&lt;br /&gt;
correlate outages. In terms of tool support, look at scribe, splunk and flume.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
A tool often used for tracking down performance issues in development is the&lt;br /&gt;
well known profiler. Usually it creates lots of very detailed data. However it&lt;br /&gt;
is most valuable in development - in production profiling a complete server&lt;br /&gt;
stack produces way too much load and data to be feasable. In addition there’s&lt;br /&gt;
usually no transaction context available for correlation again.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
A third way of watching applications do their work is to watch via JMX. This&lt;br /&gt;
capability is built in for any Java application, in particular for servlet&lt;br /&gt;
containers. Again there is not transaction context. Unless you take care of it&lt;br /&gt;
there won’t be any historic data.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
When it comes to diagnosing problems, you are essentially left with fixing&lt;br /&gt;
either the “it does not work” case or the “it is slow case”.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
For the “it is slow case” there are a few incarnations:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;ul&gt;&lt;br /&gt;
&lt;li&gt;It was always slow, we got used to it.&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;It gets slow over time.&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;It gets slower exponentially.&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;It suddenly gets slow.&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;There is a spontanous crash.&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
In the case of “it does not work” you are left with the following observations:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;ul&gt;&lt;br /&gt;
&lt;li&gt;Sudden outages.&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;Always flaky.&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;Sporadic error messages.&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;Silent death.&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;Increasing error rates.&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;Misleading error messages.&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
In the end you will always be spinning in a Look at symptoms, Elimnate&lt;br /&gt;
non-causes, Identifiy suspects, Confirm and Eliminate comparing to normal. If&lt;br /&gt;
not done with that, leather, rinse, repeat. When it comes to causes for errors&lt;br /&gt;
and slowness you will usually will run into one of the following causes: In&lt;br /&gt;
many cases bad coding practices are a problem, too much load, missing backends,&lt;br /&gt;
resource conflicts, memory and resource leakage as well as hardware/networking&lt;br /&gt;
issues are causes.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
Some symptoms you may observe include foreseeable lock ups (it’s always slow&lt;br /&gt;
after four hours, so we just reboot automatically before that), consistent&lt;br /&gt;
slowness, sporadic errors (it always happens after a certain request came in),&lt;br /&gt;
getting slow and slower (most likely leaking resources), sudden chaos (e.g.&lt;br /&gt;
someone pulling the plug or someone removing a hard disk), and high utilisation&lt;br /&gt;
of resources.&lt;/p&gt;
&lt;h2&gt;Linear memory leak&lt;/h2&gt;
&lt;p&gt;In case of a linear memory leak, the application usually runs into an OOM&lt;br /&gt;
eventually, getting ever slower before that due to GC pressure. Reasons could&lt;br /&gt;
be linear structures being filled but never emptied. What you observe are&lt;br /&gt;
growing heap utilisation and growing GC times. In order to find such leakage&lt;br /&gt;
make sure to turn on verbose GC logging, do heapdumps to find leaks. One&lt;br /&gt;
challenge though: It may be hard to find the leakage if the problem is not one&lt;br /&gt;
large object, but many, many small ones that lead to a death by 1000 cuts&lt;br /&gt;
bleeding the application to death.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
In development and testing you will do heap comparisons. Keep in mind that&lt;br /&gt;
taking a heap dump causes the JVM to stop. You can use common profilers to look&lt;br /&gt;
at the heap dump. There are variants that help with automatic leak detection.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
A variant is the pig in a python issue where sudden unusually large objects&lt;br /&gt;
cause the application to be overloaded.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name=&quot;SECTION00332000000000000000&quot;&gt;&lt;br /&gt;
Resource leaks and conflicts&lt;/a&gt;&lt;br /&gt;
&lt;/h2&gt;&lt;br /&gt;
Another common problem is leaking resources other than memory - not closing&lt;br /&gt;
file handles can be one incarnation. Those problems cause a slowness over time,&lt;br /&gt;
they may lead to having the heap grow over time - usually that is not the most&lt;br /&gt;
visible problem though. If instance tracking does not help here, your last&lt;br /&gt;
resort should be doing code audits.&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
In case of conflicting resource usage you usually face code that was developed&lt;br /&gt;
with overly cautious locking and data integrity constraints. The way to go are&lt;br /&gt;
threaddumps to uncover threads in block and wait states.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name=&quot;SECTION00333000000000000000&quot;&gt;&lt;br /&gt;
Bad coding practices&lt;/a&gt;&lt;br /&gt;
&lt;/h2&gt;&lt;br /&gt;
When it comes to bad coding practices what is usually seen is code in endless&lt;br /&gt;
loops (easy to see in thread dumps), cpu bound computations where no result&lt;br /&gt;
caching is done. Also layeritis with too much (de-)serialisation can be a&lt;br /&gt;
problem. In addition there is a general “the ORM will save us all” problem that&lt;br /&gt;
may lead to massive SQL statements, or to using the wrong data fetch strategy.&lt;br /&gt;
When it comes to caching - if caches are too large, access times of course grow&lt;br /&gt;
as well. There could be never ending retry loops, ever blocking networking&lt;br /&gt;
calls. Also people tend to catch exceptions but not do anything about them&lt;br /&gt;
other than adding a little #fixme annotation to the code.&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
When it comes to locking you might run into dead-/live-lock problems. There&lt;br /&gt;
could be chokepoints (resources that all threads need for each processing&lt;br /&gt;
chain). In a thread dump you will typically see lots of wait instead of block&lt;br /&gt;
time.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
In addition there could be internal and external bottlenecks. In particular&lt;br /&gt;
keep those in mind when dealing with databases.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
The goal should be to find an optimum for your application between too many too&lt;br /&gt;
small requests that waste resources getting dispatched, and one huge request&lt;br /&gt;
that everyone else is waiting for.&lt;/p&gt;</description>
	<pubDate>Mon, 20 May 2013 20:32:16 +0000</pubDate>
</item>
<item>
	<title>Inductive Bias: JAX: Java HPC by Norman Maurer</title>
	<guid isPermaLink="false">http://blog.isabel-drost.de/?p=481</guid>
	<link>http://blog.isabel-drost.de/index.php/archives/481/jax-java-hpc-by-norman-maurer</link>
	<description>&lt;p&gt;For slides see also: &lt;a href=&quot;https://speakerdeck.com/normanmaurer/high-performance-networking-on-the-jvm-less&amp;lt;br /&amp;gt; ons-learned&quot;&gt;Speakerdeck: High performance networking on the JVM&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
Norman started his talk clarifying what he means by high scale: Anything above&lt;br /&gt;
1000 concurrent connections in his talk are considered high scale, anything&lt;br /&gt;
below 100 concurrent connections is fine to be handled with threads and blocking&lt;br /&gt;
IO. Before tuning anything, make sure to measure if you have any problem at&lt;br /&gt;
all: Readability should always go before optimisation.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
He gave a few pointers as to where to look for optimisations: Get started by&lt;br /&gt;
studying the socket options - TCP-NO-DELAY as well as the send and receive&lt;br /&gt;
buffer sizes are most interesting. When under GC pressure (check the GC locks&lt;br /&gt;
to figure out if you are) make sure to minimise allocation and deallocation of&lt;br /&gt;
objects. In order to do that consider making objects static and final where&lt;br /&gt;
possible. Make sure to use CMS or G1 for garbage collection in order to&lt;br /&gt;
maximise throughput. Size areas in the JVM heap according to your access&lt;br /&gt;
patterns. The goal should always be to minimise the chance of running into a&lt;br /&gt;
stop the world garbage collection.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
When it comes to using buffers you have the choice of using direct or heap&lt;br /&gt;
buffers. While the former are expensive to create, the latter come with the&lt;br /&gt;
cost of being zero’ed out. Often people start buffer pooling, potentially&lt;br /&gt;
initialising the pool in a lazy manner. In order to avoid memory fragmentation&lt;br /&gt;
in the Java heap, it can be a good idea to create the buffer at startup time&lt;br /&gt;
and re-use it later on.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
In particular when parsing structured messages like they are common in&lt;br /&gt;
protocols it usually makes sense to use gathering writes and scattering reads&lt;br /&gt;
to minimise the number of system calls for reading and writing. Also try to&lt;br /&gt;
buffer more if you want to minimise system calls. Use slice and duplicate to&lt;br /&gt;
create views on your buffers to avoid mem copies. Use a file channel when&lt;br /&gt;
copying files without modifications.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
Make sure you do not block - think of DNS servers being unavailable or slow as&lt;br /&gt;
an example.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
As a parting note,  make sure to define and document your threading model. It&lt;br /&gt;
may ease development to know that some objects will always only be used in a&lt;br /&gt;
single threaded context. It usually helps to reduce context switches as well as&lt;br /&gt;
may ease development to know that some objects will always only be used in a&lt;br /&gt;
single threaded context. It usually helps to reduce context switches as well as&lt;br /&gt;
keeping data in the same thread to avoid having to use synchronisation and the&lt;br /&gt;
use of volatile.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
Also make a conscious decision about which protocol you would like to use for&lt;br /&gt;
transport - in addition to tcp there’s  also udp, udt, sctp. Use pipelining in&lt;br /&gt;
order to parallelise.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;</description>
	<pubDate>Sun, 19 May 2013 20:31:16 +0000</pubDate>
</item>
<item>
	<title>Inductive Bias: JAX: Hadoop overview by Bernd Fondermann</title>
	<guid isPermaLink="false">http://blog.isabel-drost.de/?p=480</guid>
	<link>http://blog.isabel-drost.de/index.php/archives/480/jax-hadoop-overview-by-bernd-fondermann</link>
	<description>&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
After breakfast was over the first day started with a talk by Bernd on the&lt;br /&gt;
Hadoop ecosystem. He did a good job selecting the most important and&lt;br /&gt;
interesting projects related to storing data in HDFS and processing it with Map&lt;br /&gt;
Reduce. After the usual “what is Hadoop”, “what does the general architecture&lt;br /&gt;
look like”, “what will change with YARN” Bernd gave a nice overview of which&lt;br /&gt;
publications each of the relevant projects rely on:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;ul&gt;&lt;br /&gt;
&lt;li&gt;HDFS is mainly based on the paper on GFS.&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;Map Reduce comes with it’s own publication.&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;The big table paper mainly inspired Cassandra (to some extend), HBase,&lt;br /&gt;
Accumulo and Hypertable.&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;Protocol Buffers inspired Avro and Thrift, and is available as free&lt;br /&gt;
software itself.&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;Dremel (the storage side of things) inspired Parquet.&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;The query language side of Dremel inspired Drill and Impala.&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;Power Drill might inspire Drill.&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;Pregel (a graph database) inspired Giraph.&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;Percolator provided some inspiration to HBase.&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;Dynamo by Amazon kicked of Cassandra and others.&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;Chubby inspired Zookeeper, both are based on Paxos.&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;On top of Map Reduce today there are tons of higher level languages,&lt;br /&gt;
starting with Sawzall inside of Google, continuing with Pig and Hive at Apache&lt;br /&gt;
we are now left with added languages like Cascading, Cascalog, Scalding and&lt;br /&gt;
many more.&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;There are many other interesting publications (Megastore, Spanner, F1 to&lt;br /&gt;
name just a few) for which there is no free implementation yet. In addition&lt;br /&gt;
with Storm, Hana and Haystack there are implementations lacking canonical&lt;br /&gt;
publications.&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;p&gt;&lt;br /&gt;
After this really broad clarification of names and terms used, Bernd went into&lt;br /&gt;
some more detail on how Zookeeper is being used for defining the namenode in&lt;br /&gt;
Hadoop 2, how high availablility and federation works for namenodes. In&lt;br /&gt;
addition he gave a clear explanation of how block reports work on cluster&lt;br /&gt;
bootup. The remainder of the talk was reserved for giving an intro to HBase,&lt;br /&gt;
Giraph and Drill.&lt;/p&gt;</description>
	<pubDate>Sat, 18 May 2013 20:29:57 +0000</pubDate>
</item>
<item>
	<title>Inductive Bias: BigDataCon</title>
	<guid isPermaLink="false">http://blog.isabel-drost.de/?p=479</guid>
	<link>http://blog.isabel-drost.de/index.php/archives/479/bigdatacon</link>
	<description>&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
Together with Uwe Schindler I had published a series of articles on Apache&lt;br /&gt;
Lucene at Software and Support Media’s Java Mag several years ago. Earlier this&lt;br /&gt;
year S&amp;amp;S kindly invited my to their BigDataCon - co-located with JAX to give a&lt;br /&gt;
talk of my choosing that at least touches upon Lucene.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
Thinking back and forth about what topic to cover what came to my mind was to&lt;br /&gt;
give a talk on how easy it is to do text classification with Mahout when&lt;br /&gt;
relying on Apache Lucene for text analysis, tokenisation and token filtering.&lt;br /&gt;
All classes essentially are in place to integrate Lucene Analyzers with Mahout&lt;br /&gt;
vector generation - needed e.g. as a pre-processing step for classification or&lt;br /&gt;
text clustering.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
Feel free to check out some of my sandbox code over at &amp;lt;a&lt;br /&gt;
href=“http://github.org/MaineC/sofia”&amp;gt;github&amp;lt;/a&amp;gt;.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
After attending the conference I can only recommend everyone interested in Java&lt;br /&gt;
programming and able to understand German to buy a ticket for the conference.&lt;br /&gt;
It’s really well executed, great selection of talks (though the sponsored&lt;br /&gt;
keynotes usually aren’t particularly interesting), tasty meals, interesting&lt;br /&gt;
people to chat with.&lt;/p&gt;</description>
	<pubDate>Fri, 17 May 2013 20:29:03 +0000</pubDate>
</item>
<item>
	<title>anna.morris's blog: Formatted a drive but “you are not the owner, you cannot…”</title>
	<guid isPermaLink="false">http://blogs.fsfe.org/anna.morris/?p=219</guid>
	<link>http://blogs.fsfe.org/anna.morris/2013/05/17/219/</link>
	<description>&lt;div&gt;I bought a new hard drive, 3tb, to use inside my pc for data only (not an OS) – a bit like a massive thumb-drive. I put it in my machine, and, as it was a 3tb drive, made a gpt (GUID) partition and formatted it in exp4. This all went fine, however, when I tried to put data on the drive, I couldn’t. I kept getting errors about the drive being owned by root.&lt;/div&gt;
&lt;div&gt;&lt;a href=&quot;http://blogs.fsfe.org/anna.morris/files/2013/05/Screenshot-from-2013-05-17-185344.png&quot;&gt;&lt;img src=&quot;http://blogs.fsfe.org/anna.morris/files/2013/05/Screenshot-from-2013-05-17-185344.png&quot; style=&quot;margin: 10px;&quot; height=&quot;567&quot; width=&quot;589&quot; alt=&quot;&quot; class=&quot;alignnone size-full wp-image-222&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;I looked around on-line and found several people with the same trouble, but none of their solutions worked., either at all, or some step involved did not work in fedora/in my case (most of the guides were on Ubuntu sites). Eventually I went onto the fedora IRC. Below is the solution i got (WARNING – DO NOT DO THIS ON A DISK WITH AN OPERATING SYSTEM ON IT – BE SURE!!)&lt;/div&gt;
&lt;div&gt;1) Make sure your drive is mounted. If you click on your files you should be able to see inside the drive and you should see a little eject symbol too.&lt;/div&gt;
&lt;div&gt;&lt;a href=&quot;http://blogs.fsfe.org/anna.morris/files/2013/05/Screenshot-from-2013-05-17-203338.png&quot;&gt;&lt;img src=&quot;http://blogs.fsfe.org/anna.morris/files/2013/05/Screenshot-from-2013-05-17-203338.png&quot; style=&quot;margin: 10px;&quot; height=&quot;145&quot; width=&quot;623&quot; alt=&quot;&quot; class=&quot;alignnone size-full wp-image-223&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;2) open a command line and write&lt;/div&gt;
&lt;div&gt;sudo chown -R&lt;/div&gt;
&lt;div&gt;don’t hit return yet, you need to put some info in now. The info pattern is like this&lt;/div&gt;
&lt;div&gt;youruser:youruser (or yourgroup, if your primary group has a different name; ‘id’ will show this) /path/to/mounted/filesystem&lt;/div&gt;
&lt;div&gt;Its the same information you can see in the black box on  the image above, but you can copy and paste it from here:&lt;/div&gt;
&lt;div&gt;&lt;a href=&quot;http://blogs.fsfe.org/anna.morris/files/2013/05/Screenshot-from-2013-05-17-202700.png&quot;&gt;&lt;img src=&quot;http://blogs.fsfe.org/anna.morris/files/2013/05/Screenshot-from-2013-05-17-202700.png&quot; style=&quot;margin: 10px;&quot; height=&quot;541&quot; width=&quot;587&quot; alt=&quot;&quot; class=&quot;alignnone size-full wp-image-221&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;Select the part that says “location” – in my case it is /run/media/missannafjmorris and copy it (control+c or right click copy)&lt;/div&gt;
&lt;div&gt;Go back to your command line and press control+shift+v (or right click and select paste) and then type forward slash. Don’t hit return yet.&lt;/div&gt;
&lt;div&gt;Go back to the window about and select and copy the info after name, in my case a long number string. Paste it into your command line. The while thing should look like this:&lt;/div&gt;
&lt;p&gt;&lt;a href=&quot;http://blogs.fsfe.org/anna.morris/files/2013/05/Screenshot-from-2013-05-17-202718._2.png&quot;&gt;&lt;img src=&quot;http://blogs.fsfe.org/anna.morris/files/2013/05/Screenshot-from-2013-05-17-202718._2-1024x17.png&quot; style=&quot;margin: 10px;&quot; height=&quot;17&quot; width=&quot;1024&quot; alt=&quot;&quot; class=&quot;alignnone size-large wp-image-224&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div&gt;Once you have written the command and checked to make sure it is correct, you can hit enter. The problem should now be solved!Your terminal will just look like its ready for the next command., but you will be able to use your disk as you wish becuase it now belongs you you – and not root &lt;img src=&quot;http://blogs.fsfe.org/anna.morris/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; /&gt; &lt;/div&gt;
&lt;div&gt;&lt;a href=&quot;http://blogs.fsfe.org/anna.morris/files/2013/05/Screenshot-from-2013-05-17-202718.png&quot;&gt;&lt;img src=&quot;http://blogs.fsfe.org/anna.morris/files/2013/05/Screenshot-from-2013-05-17-202718.png&quot; style=&quot;margin: 10px;&quot; height=&quot;57&quot; width=&quot;959&quot; alt=&quot;&quot; class=&quot;alignnone size-full wp-image-220&quot; /&gt;&lt;/a&gt;&lt;/div&gt;</description>
	<pubDate>Fri, 17 May 2013 19:42:39 +0000</pubDate>
</item>
<item>
	<title>Jens Lechtenbörger » English: FairPhone starting a movement</title>
	<guid isPermaLink="false">http://blogs.fsfe.org/jens.lechtenboerger/?p=103</guid>
	<link>http://blogs.fsfe.org/jens.lechtenboerger/2013/05/17/fairphone-starting-a-movement/</link>
	<description>&lt;p&gt;Currently, our phones are stained with blood, literally, as exemplified by the well-known &lt;a href=&quot;https://en.wikipedia.org/wiki/Foxconn_suicides&quot;&gt;Foxconn suicides&lt;/a&gt; or the less well-known &lt;a href=&quot;http://www.raisehopeforcongo.org/content/initiatives/conflict-minerals&quot;&gt;role of conflict minerals to sustain war and murder in Congo&lt;/a&gt;. &lt;a href=&quot;http://www.fairphone.com/&quot;&gt;FairPhone&lt;/a&gt; is an endeavor to produce smartphones in a fairer way, and after three years of preparatory work, the Dutch start-up just started its &lt;a href=&quot;http://buy-a-phone-start-a-movement.fairphone.com/fairphone-excl-charger.html&quot;&gt;pre-order campaign&lt;/a&gt; (restricted to Europe). &lt;a href=&quot;http://www.fairphone.com/road-to-a-fairer-phone/index.html&quot;&gt;This page explains their approach in detail&lt;/a&gt;, while &lt;a href=&quot;http://buy-a-phone-start-a-movement.fairphone.com/specs/&quot;&gt;technical specs are available here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Today I ordered my FairPhone (two, actually). If FairPhone receives 5000 orders, production will start in June (delivery is estimated for October). The phone will come with Android pre-installed but &lt;a href=&quot;http://www.fairphone.com/faq.1.html#q13&quot;&gt;installation of alternative OSes should be possible&lt;/a&gt;. I’ll certainly &lt;a href=&quot;https://fsfe.org/campaigns/android/android.en.html&quot;&gt;free my devices&lt;/a&gt; once I receive them.&lt;/p&gt;
&lt;p&gt;If you think about buying a new phone, why not &lt;a href=&quot;http://buy-a-phone-start-a-movement.fairphone.com/fairphone-excl-charger.html&quot;&gt;start a movement&lt;/a&gt;?&lt;/p&gt;</description>
	<pubDate>Fri, 17 May 2013 13:31:25 +0000</pubDate>
</item>
<item>
	<title>DanielPocock.com: Zermatt, Matterhorn and Gornergrat</title>
	<guid isPermaLink="false">http://danielpocock.com/58 at http://danielpocock.com</guid>
	<link>http://danielpocock.com/zermatt-matterhorn-and-gornergrat</link>
	<description>&lt;div class=&quot;field field-name-body field-type-text-with-summary field-label-hidden&quot;&gt;&lt;div class=&quot;field-items&quot;&gt;&lt;div class=&quot;field-item even&quot;&gt;&lt;p&gt;The &lt;a href=&quot;http://debconf13.debconf.org&quot;&gt;DebConf13 registration deadline&lt;/a&gt; for developers requesting sponsorship has been &lt;a href=&quot;http://lists.debconf.org/lurker/message/20130508.153654.6aa20e12.en.html&quot;&gt;extended up to Sunday&lt;/a&gt;, so for those still undecided or anybody else thinking about a visit to &lt;em&gt;.ch&lt;/em&gt;, I'm sharing some more pictures today.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://danielpocock.com/sites/danielpocock.com/files/IMG_6047.png&quot; align=&quot;right&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;http://en.wikipedia.org/wiki/Matterhorn&quot;&gt;Matterhorn&lt;/a&gt; is one of the iconic symbols of Switzerland's natural beauty and appears on many postcards.  The car-free town of &lt;a href=&quot;http://en.wikipedia.org/wiki/Zermatt&quot;&gt;Zermatt&lt;/a&gt; is at the bottom and is the final stop on the &lt;a href=&quot;http://en.wikipedia.org/wiki/Matterhorn-Gotthard-Bahn&quot;&gt;Matterhorn Gotthard Bahn railway&lt;/a&gt;, so it is really easy to get there with one or two trains every hour of the day.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://danielpocock.com/sites/danielpocock.com/files/IMG_6078.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;One of the most exciting places to view the Matterhorn is from the nearby observatory at &lt;a href=&quot;http://en.wikipedia.org/wiki/Gornergrat&quot;&gt;Gornergrat&lt;/a&gt;, which is 3,089m above sea level.  It is great for a single day trip of hiking and there is a convenient train station there too.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://danielpocock.com/sites/danielpocock.com/files/IMG_6082.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The scenic train to Zermatt is included in any of the Swiss rail passes, but the train up to Gornergrat is a private railway and a special ticket must be purchased.  Discounts are sometimes offered at rail stations in Swiss cities or &lt;a href=&quot;http://www.sbb.ch/en&quot;&gt;online&lt;/a&gt; or it is possible to hike up and down.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://danielpocock.com/sites/danielpocock.com/files/IMG_6101.png&quot; /&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description>
	<pubDate>Fri, 17 May 2013 09:46:11 +0000</pubDate>
</item>
<item>
	<title>nikos.roussos » libre: Hacking Firefox OS Developer Phone</title>
	<guid isPermaLink="false">http://www.roussos.cc/?p=46359</guid>
	<link>http://www.roussos.cc/2013/05/17/hacking-firefox-os-developer-phone/</link>
	<description>&lt;p&gt;&lt;img src=&quot;http://www.roussos.cc/wp-content/uploads/2013/05/geeksphone-300x274.jpg&quot; alt=&quot;keon&quot; height=&quot;274&quot; class=&quot;alignleft size-medium wp-image-46360&quot; width=&quot;300&quot; /&gt;Probably you already know about &lt;a href=&quot;http://www.geeksphone.com/&quot; target=&quot;_blank&quot;&gt;Geeksphone&lt;/a&gt;‘s Firefox OS Developer Phones. A couple of days ago I received mine (the Keon version) as a &lt;a href=&quot;https://reps.mozilla.org/&quot; target=&quot;_blank&quot;&gt;Mozilla Rep&lt;/a&gt; for testing and showcasing Firefox OS on upcoming events.&lt;/p&gt;
&lt;p&gt;Keon comes with an old Firefox OS build, which means that it misses many cool features already landed on the current release branch (for instance most of the contacts import options), but also makes bug reporting difficult since you have to determine if a bug you’ve found has already been resolved before reporting it.&lt;/p&gt;
&lt;p&gt;So with a little help from &lt;a href=&quot;http://adamkalis.github.io/&quot; target=&quot;_blank&quot;&gt;(Flash)Fredy&lt;/a&gt; here are some quick steps to get your Keon device updated :-)&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;Flash a new Firefox OS build&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;At Geeksphone forum you’ll find a &lt;a href=&quot;http://forum.geeksphone.com/index.php?topic=4834&quot; target=&quot;_blank&quot;&gt;relevant thread&lt;/a&gt; with unofficial recent builds and detailed guidelines on how to flash it on your device. Nothing else to add here, besides the fact that flashing a build comes with a certain amount of risk :-)&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;Update Gaia&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;If you are feeling less adventurous you could just update Firefox OS UI (&lt;a href=&quot;https://wiki.mozilla.org/Gaia&quot; target=&quot;_blank&quot;&gt;Gaia&lt;/a&gt;). The steps are really easy. Plug your device and run:&lt;/p&gt;
&lt;pre&gt;git clone https://github.com/mozilla-b2g/gaia.git
git checkout v1-train
make reset-gaia&lt;/pre&gt;
&lt;p&gt;This will restart your device and when it comes back you’ll have the new Gaia.&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;The tools you need&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;In order for all the above steps to work you need adb, which stands for &lt;a href=&quot;https://developer.android.com/tools/help/adb.html&quot; target=&quot;_blank&quot;&gt;Android Debug Bridge&lt;/a&gt; and it’s a simple command line tool that helps you communicate with a connected Androd/Linux phone device.&lt;/p&gt;
&lt;p&gt;Here are the steps needed to have adb working (at least on &lt;a href=&quot;https://fedoraproject.org/&quot; target=&quot;_blank&quot;&gt;Fedora&lt;/a&gt;). First download the &lt;a href=&quot;https://developer.android.com/sdk/index.html&quot; target=&quot;_blank&quot;&gt;SDK tools&lt;/a&gt; from Android. Let’s assume that you uncompressed the archive on ~/android-sdk/.&lt;/p&gt;
&lt;pre&gt;cd ~/android-sdk/tools
./android&lt;/pre&gt;
&lt;p&gt;Then you check to install the “Tools”, that would probably have a “Not Installed” status on your system. This will download and install everything you need under ~/android-sdk/platform-tools.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.roussos.cc/wp-content/uploads/2013/05/adb1.jpg&quot; alt=&quot;adb&quot; height=&quot;418&quot; class=&quot;aligncenter size-full wp-image-46368&quot; width=&quot;550&quot; /&gt;&lt;/p&gt;
&lt;p&gt;If you want to use adb from everywhere you have to add it on your system’s PATH. In this case:&lt;/p&gt;
&lt;pre&gt;export PATH=$PATH:~/android-sdk/platform-tools&lt;/pre&gt;
&lt;p&gt;You can add this to your ~/.bash_profile for permanent effect.&lt;/p&gt;
&lt;p&gt;One last step is to add a udev rule for the specific device. Running lsusb on a terminal gives you the vendor identifier. For Keon this is “05c6″. So you have to add the line below at /etc/udev/rules.d/51-android.rules&lt;/p&gt;
&lt;pre&gt;SUBSYSTEM==&quot;usb&quot;, ATTR{idVendor}==&quot;05c6&quot;, MODE=&quot;0666&quot;, GROUP=&quot;plugdev&quot;&lt;/pre&gt;
&lt;p&gt;and tell udev to re-read the rules:&lt;/p&gt;
&lt;pre&gt;sudo udevadm control --reload-rules&lt;/pre&gt;
&lt;p&gt;If you did everything correctly then plug your Keon device and run:&lt;/p&gt;
&lt;pre&gt;adb devices&lt;/pre&gt;
&lt;p&gt;You should see a line for keon.&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;Hack&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;If you are developing an Open Web App then you could just use Firefox OS Simulator to push it on the Keon device. See &lt;a href=&quot;https://hacks.mozilla.org/2013/05/pushing-firefox-os-apps-to-the-geeksphone/&quot; target=&quot;_blank&quot;&gt;how simple that is&lt;/a&gt;. The only thing you’ll need for this to work is the udev rule above. You won’t need adb, since the simulator comes with it’s own copy.&lt;/p&gt;
&lt;p&gt;If you want to hack around Gaia and the core apps, then just fork the code, do all the changes you want and use your repo to flash Gaia on the phone as described above.&lt;/p&gt;
&lt;p&gt;Happy Hacking :-)&lt;/p&gt;
&lt;p&gt; &lt;br /&gt;
&lt;em&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;Important&lt;/span&gt;: Don’t ever choose to reset your phone to Factory defaults. It seems that currently you &lt;a href=&quot;http://forum.geeksphone.com/index.php?topic=4783.0&quot; target=&quot;_blank&quot;&gt;get stuck&lt;/a&gt; if you do it and the only way to undo it is by flashing a new build (I speak from experience :P).&lt;/em&gt;&lt;/p&gt;
 &lt;p&gt;&lt;a href=&quot;http://www.roussos.cc/?flattrss_redirect&amp;amp;id=46359&amp;amp;md5=1bb8c02a177f817b62b2ded4d09e94d0&quot; target=&quot;_blank&quot; title=&quot;Flattr&quot;&gt;&lt;img src=&quot;http://www.roussos.cc/wp-content/plugins/flattr/img/flattr-badge-large.png&quot; alt=&quot;flattr this!&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description>
	<pubDate>Fri, 17 May 2013 09:20:05 +0000</pubDate>
</item>
<item>
	<title>Inductive Bias: Hadoop Summit Amsterdam</title>
	<guid isPermaLink="false">http://blog.isabel-drost.de/?p=478</guid>
	<link>http://blog.isabel-drost.de/index.php/archives/478/hadoop-summit-amsterdam</link>
	<description>&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
About a month ago I attended the first European Hadoop Summit, organised by&lt;br /&gt;
Hortonworks in Amsterdam. The two day conference brought together both vendors&lt;br /&gt;
and users of Apache Hadoop for talks, exhibition and after conference beer&lt;br /&gt;
drinking.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
Russel Jurney kindly asked me to chair the Hadoop applied track during&lt;br /&gt;
Apache Con EU. As a result I had a good excuse to attend the event. Overall&lt;br /&gt;
there were at least three times as many submissions than could reasonably be&lt;br /&gt;
accepted. Accordingly accepting proposals was pretty hard.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
Though some of the Apache community aspect was missing at Hadoop summit it was&lt;br /&gt;
interesting nevertheless to see who is active in this space both as users as&lt;br /&gt;
well as vendors.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
If you check out the talks on Youtube make sure to not miss the two sessions by&lt;br /&gt;
Ted Dunning as well as the talk on handling logging data by Twitter.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;</description>
	<pubDate>Thu, 16 May 2013 20:27:56 +0000</pubDate>
</item>
<item>
	<title>DanielPocock.com: Debian to rescue Skype users?</title>
	<guid isPermaLink="false">http://danielpocock.com/57 at http://danielpocock.com</guid>
	<link>http://danielpocock.com/debian-to-rescue-skype-users</link>
	<description>&lt;div class=&quot;field field-name-body field-type-text-with-summary field-label-hidden&quot;&gt;&lt;div class=&quot;field-items&quot;&gt;&lt;div class=&quot;field-item even&quot;&gt;&lt;p&gt;Last year at &lt;a href=&quot;http://penta.debconf.org/dc12_schedule/events/933.en.html&quot;&gt;DebConf12&lt;/a&gt; and the &lt;a href=&quot;http://fr2012.mini.debconf.org/&quot;&gt;Paris mini-DebConf&lt;/a&gt; I mentioned some of the sophisticated techniques that the likes of Microsoft and Facebook are using to monitor their customers.&lt;/p&gt;
&lt;p&gt;So when &lt;a href=&quot;http://yro.slashdot.org/story/13/05/14/1516247/microsoft-reads-your-skype-chat-messages&quot;&gt;Skype was busted spying on the content of chat messages&lt;/a&gt;, it was no surprise for many people in the &lt;a href=&quot;http://www.debian.org&quot;&gt;Debian&lt;/a&gt; community.&lt;/p&gt;
&lt;p&gt;People are already &lt;a href=&quot;http://lists.jitsi.org/pipermail/dev/2013-May/016896.html&quot;&gt;rushing to find alternatives like XMPP and Jitsi&lt;/a&gt;.  Debian 7 has been released just in time, with powerful features like &lt;a href=&quot;http://wiki.debian.org/NewInWheezy#Communications&quot;&gt;TURN support&lt;/a&gt; that finally allow users to make free calls and chats with seamless NAT traversal.  Sadly, Debian's built-in VoIP/RTC client, Empathy, &lt;a href=&quot;http://lists.freedesktop.org/archives/telepathy/2013-April/006402.html&quot;&gt;only uses Google's TURN servers&lt;/a&gt; and not native Debian servers, but hopefully a solution will come soon, but it is easy enough to install &lt;a href=&quot;http://jitsi.org&quot;&gt;Jitsi&lt;/a&gt; instead and configure it to use any of the free TURN server software on Debian.&lt;/p&gt;
&lt;p&gt;It should be emphasized that Skype does not just spy on URLs in chat - it has simply been possible to detect this form of spying by detecting when the URL is accessed.  Microsoft has &lt;a href=&quot;http://www.networkworld.com/community/blog/patent-wars-over-wiretapping-voip-surveillance-backdoors-internet-chats&quot;&gt;taken out various patents for secretive monitoring of Internet phone calls&lt;/a&gt; and the analysis of speech patterns to detect both the &lt;a href=&quot;http://www.geekwire.com/2012/microsoft-idea-deduce-users-mood-smarts-facebook-posts-adjust-search-results/&quot;&gt;content and emotions&lt;/a&gt; during a conversation.  This allows them to get a very thorough analysis of the state of mind of every user at almost every moment and fine-tune the type of advertising and branding that is delivered to that person through conventional means and also through biased `news' reporting and other means.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description>
	<pubDate>Thu, 16 May 2013 07:16:53 +0000</pubDate>
</item>
<item>
	<title>Inductive Bias: ApacheConNA: Misc</title>
	<guid isPermaLink="false">http://blog.isabel-drost.de/?p=477</guid>
	<link>http://blog.isabel-drost.de/index.php/archives/477/apacheconna-misc</link>
	<description>&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
In his talk on Spdy Mathew Steele explained how he implemented the spdy protocol&lt;br /&gt;
as an Apache httpd module - working around most of the safety measures and&lt;br /&gt;
design decisions in the current httpd version. Essentially to get httpd to&lt;br /&gt;
support the protocol all you need now is mod_spdy plus a modified version of&lt;br /&gt;
mod_ssl.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
The keynote on the last day was given by the Puppet founder. Some interesting&lt;br /&gt;
points to take away from that:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;ul&gt;&lt;br /&gt;
&lt;li&gt;Though hard in the beginning (and half way through, and after years) it&lt;br /&gt;
is important to learn giving up control: It usually is much more productive and&lt;br /&gt;
leads to better results to encourage people to do something than to be&lt;br /&gt;
restrictive about it. A single developer only has so much bandwidth - by&lt;br /&gt;
farming tasks out to others - and giving them full control - you substantially&lt;br /&gt;
increase your throughput without having to put in more energy.&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;Be transparent - it’s ok to have commercial goals with your project. Just&lt;br /&gt;
make sure that the community knows about it and is not surprised to learn about&lt;br /&gt;
it.&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;Be nice - not many succeed at this, not many are truely able to ignore&lt;br /&gt;
religion (vi vs. emacs). This also means to be welcoming to newbies, to hustle&lt;br /&gt;
at conferences, to engage the community as opposed to announcing changes.&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
Overall good advise for those starting or working on an OSS project and seeking&lt;br /&gt;
to increase visibility and reach.&lt;/p&gt;
&lt;p&gt;If you want to learn more on what other talks were given at ApacheCon NA or want to follow up in more detail on some of the talks described here check out &lt;a href=&quot;http://archive.apachecon.com/na2013/presentations/&quot;&gt;the slides archive&lt;/a&gt; online.&lt;/p&gt;</description>
	<pubDate>Wed, 15 May 2013 20:26:39 +0000</pubDate>
</item>
<item>
	<title>mkesper's blog » English: Make it like Facebook…or not?! Or: From WordPress to Drupal</title>
	<guid isPermaLink="true">http://blogs.fsfe.org/mkesper/?p=164</guid>
	<link>http://blogs.fsfe.org/mkesper/?p=164</link>
	<description>&lt;p&gt;My colleague and me had got the task of creating an intranet site “like Facebook”. OK, so we checked alternatives and installed a site with &lt;a href=&quot;http://wordpress.org&quot; target=&quot;_blank&quot;&gt;WordPress&lt;/a&gt; and &lt;a href=&quot;http://buddypress.org/&quot; target=&quot;_blank&quot;&gt;BuddyPress&lt;/a&gt;.&lt;br /&gt;
Guess what, after we showed the result to our boss, friendships had to be removed, groups had to be removed etc. etc.&lt;br /&gt;
After realising we had disabled virtually every BuddyPress feature and after struggling with getting some sort of rights system into the site, we finally recognized WordPress was not the right base for our site and went looking for alternatives again. Imagine we had settled on a proprietary platform, we’d been stuck!&lt;/p&gt;
&lt;p&gt;Then I discovered Drupal. “Oh look, they’ve got something like a &lt;a href=&quot;https://drupal.org/getting-started/before/overview&quot; target=&quot;_blank&quot;&gt;structure&lt;/a&gt;. Oh, wow, permissions are in &lt;a href=&quot;https://en.wikipedia.org/wiki/Drupal#Core_modules&quot; target=&quot;_blank&quot;&gt;core modules&lt;/a&gt;. Cool!”&lt;/p&gt;
&lt;p&gt;Drupal just is much more structured and generalized than WordPress. The downside is it takes you longer to figure out how things work. Maybe I should have looked into &lt;a href=&quot;https://drupal.org/documentation/understand&quot; target=&quot;_blank&quot;&gt;“Understanding Drupal”&lt;/a&gt; earlier but I just “had no time for that”. &lt;img src=&quot;http://blogs.fsfe.org/mkesper/wp-includes/images/smilies/icon_wink.gif&quot; alt=&quot;;)&quot; class=&quot;wp-smiley&quot; /&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://drupal.org/support&quot; target=&quot;_blank&quot;&gt;Community support&lt;/a&gt; is super helpful in irc or managing issues. &lt;a href=&quot;http://drupal.org/project/l10n_install&quot; target=&quot;_blank&quot;&gt;Translation&lt;/a&gt; process is really cool, making it possible to &lt;a href=&quot;http://drupal.org/project/l10n_client&quot; target=&quot;_blank&quot;&gt;edit translations in-site&lt;/a&gt; and (after a little configuration) also giving back to the &lt;a href=&quot;http://groups.drupal.org/frontpage&quot; target=&quot;_blank&quot;&gt;Drupal community&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;So, if you want to hack together a simple page in short time, take WordPress, but if you need a little bit more structure, I’d recommend Drupal!&lt;/p&gt;
&lt;p&gt;Side note: As a Python fan I also tried https://www.django-cms.org/ but alas, it’s &lt;a href=&quot;http://docs.django-cms.org/en/latest/getting_started/tutorial.html&quot; target=&quot;_blank&quot;&gt;very hard to install&lt;/a&gt; compared to the two other systems. And if users won’t get your system installed, they won’t use it! And no, it isn’t helpful to first give you a toy server and then let you figure out how you turn it into a production system via &lt;a href=&quot;https://docs.djangoproject.com/en/1.2/howto/deployment/modwsgi/&quot; target=&quot;_blank&quot;&gt;several&lt;/a&gt; &lt;a href=&quot;http://code.google.com/p/modwsgi/wiki/IntegrationWithDjango&quot; target=&quot;_blank&quot;&gt;unconnected&lt;/a&gt; &lt;a href=&quot;http://blog.dscpl.com.au/2010/03/improved-wsgi-script-for-use-with.html&quot; target=&quot;_blank&quot;&gt;help&lt;/a&gt; documents.&lt;/p&gt;</description>
	<pubDate>Tue, 14 May 2013 20:30:26 +0000</pubDate>
</item>
<item>
	<title>Inductive Bias: ApacheConNA: Hadoop metrics</title>
	<guid isPermaLink="false">http://blog.isabel-drost.de/?p=476</guid>
	<link>http://blog.isabel-drost.de/index.php/archives/476/apacheconna-hadoop-metrics</link>
	<description>&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
Have you ever measured the general behaviour of your Hadoop jobs? Have you&lt;br /&gt;
sized your cluster accordingly? Do you know whether your work load really is IO&lt;br /&gt;
bound or CPU bound? Legend has it noone expecpt Allen Wittenauer over at&lt;br /&gt;
Linked.In, formerly Y! ever did this analysis for his clusters.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
Steve Watt gave a pitch for actually going out into your datacenter measuring&lt;br /&gt;
what is going on there and adjusting the deployment accordingly: In small&lt;br /&gt;
clusters it may make sense to rely on raided disks instead of additional&lt;br /&gt;
storage nodes to guarantee “replication levels”. When going out to vendors to&lt;br /&gt;
buy hardware don’t rely on paper calculations only: Standard servers in Hadoop&lt;br /&gt;
clusters are 1 or 2u. This is quite unlike beefy boxes being sold otherwise.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
Figure out what reference architecture is being used by partners, run your&lt;br /&gt;
standard workloads, adjust the configuration. If you want to run the 10TB&lt;br /&gt;
Terrasort to benchmark your hardware and system configuration. Make sure to&lt;br /&gt;
capture data during all your runs - have Ganglia or SAR, watch out for&lt;br /&gt;
intersting behaviour in io rates, cpu utilisation, network traffic. The goal is&lt;br /&gt;
to get the cpu busy, not wait for network or disk.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
After the instrumentation and trial run look for over- and underprovisionings,&lt;br /&gt;
adjust, leather, rinse, repeat.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
Also make sure to talk to the datacenter people: There are floor space, power&lt;br /&gt;
and cooling constraints to keep in mind. Don’t let the whole datacenter go down&lt;br /&gt;
because your cpu intensive job is drawing more power than the DC was designed&lt;br /&gt;
for. Ther are also power constraints per floor tile due to cooling issues -&lt;br /&gt;
those should dictate the design.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
Take a close look at the disks you deploy: SATA vs. SAS can make a 40%&lt;br /&gt;
performance difference at a 20% cost difference. Also the number of cores per&lt;br /&gt;
machines dictates the number of disks to spread the likelyhood of random read&lt;br /&gt;
access. As a rule of thumb - in a 2U machine today there should be at least&lt;br /&gt;
twelve large form factor disks.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
When it comes to controllers he goal should be to get a dedicated lane to disc,&lt;br /&gt;
safe one controller if price is an issue. Trade off compute power against power&lt;br /&gt;
consumption.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
Designing your network keep in mind that one switch going down means that one&lt;br /&gt;
rack will be gone. This may be a non-issue in a Y! size cluster, in your&lt;br /&gt;
smaller scale world it might be worth the money investing in a second switch&lt;br /&gt;
though: Having 20 nodes go black isn’t a lot of fun if you cannot farm out the&lt;br /&gt;
work and re-replication to other nodes and racks. Also make sure to have enough&lt;br /&gt;
ports in rack switches for the machines you are planning to provision.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
Avoid playing the ops whake-a-mole game by having one large cluster in the&lt;br /&gt;
organisation than many different ones where possible. Multi-tenancy in Hadoop is&lt;br /&gt;
still pre-mature though.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
If you want to play with future deployments - watch out for HP currently&lt;br /&gt;
packing 270 servers where today are just two via system on a chip designs.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;</description>
	<pubDate>Tue, 14 May 2013 20:25:25 +0000</pubDate>
</item>
<item>
	<title>Inductive Bias: ApacheConNA: Monitoring httpd and Tomcat</title>
	<guid isPermaLink="false">http://blog.isabel-drost.de/?p=475</guid>
	<link>http://blog.isabel-drost.de/index.php/archives/475/apacheconna-monitoring-httpd-and-tomcat</link>
	<description>&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
Monitoring - a task generally neglected - or over done - during development.&lt;br /&gt;
But still vital enough to wake up people from well earned sleep at night when&lt;br /&gt;
done wrong. Rainer Jung provided some valuable insights on how to monitor Apache httpd and Tomcat.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
Of course failure detection, alarms and notifications are all part of good&lt;br /&gt;
monitoring. However so is avoidance of false positives and metric collection,&lt;br /&gt;
visualisation, and collection in advance to help with capacity planning and&lt;br /&gt;
uncover irregular behaviour.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
In general the standard pieces being monitored are load, cache utilisation,&lt;br /&gt;
memory, garbage collection and response times. What we do not see from all that&lt;br /&gt;
are times spent waiting for the backend, looping in code, blocked threads.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
When it comes to monitoring Java - JMX is pretty much the standard choice. Data&lt;br /&gt;
is grouped in management beans (MBeans). Each Java process has default beans,&lt;br /&gt;
on top there are beans provided by Tomcat, on top there may be application&lt;br /&gt;
specific ones.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
For remote access, there are Java clients that know the protocol - the server&lt;br /&gt;
must be configured though to accept their connection. Keep in mind to open the&lt;br /&gt;
firewall in between as well if there is any. Well known clients include&lt;br /&gt;
JVisualVM (nice for interactive inspection), jmxterm as a command line client.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
The only issue: Most MBeans encode source code structure, where what you really&lt;br /&gt;
need is change rates. In general those are easy to infer though.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
On the server side for Tomcat there is the JMXProxy in Tomcat manager that&lt;br /&gt;
exposes MBeans. In addition there is Jolohia (including JSon serialisation) or&lt;br /&gt;
the option to roll your own.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
So what kind of information is in MBeans:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;ul&gt;&lt;br /&gt;
&lt;li&gt;OS - load, process cpu time, physical memory, global OS level&lt;br /&gt;
stats. As an example: Here deviding cpu time by time  geves you the average cpu&lt;br /&gt;
concurrency.&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;Runtime MBean gives uptime.&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;Threading MBean gives information on count, max available threads etc&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;Class Loading MBean should get stable unless you are using dynamic&lt;br /&gt;
languaes or have enabled class unloading for jsps in Tomcat.&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;Compliation contains HotSpot compiler information.&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;Memory contains information on all regions thrown in one pot. If you need&lt;br /&gt;
more fine grained information look out for the Memory Pool and GC MBeans.&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
As for Tomcat specific things:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;ul&gt;&lt;br /&gt;
&lt;li&gt;Threadpool (for each connector) has information on size, number of busy&lt;br /&gt;
threads.&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;GlobalRequestProc has request counts, processing times, max time bytes&lt;br /&gt;
received/sent, error count (those that Tomcat notices that is).&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;RequestProcessor exists once per thread, it shows if a request is&lt;br /&gt;
currently running and for how long. Nice to see if there are long running&lt;br /&gt;
requests.&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;DataSource provides information on Tomcat provided database connections.&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
Per Webapp there are a couple of more MBeans:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;ul&gt;&lt;br /&gt;
&lt;li&gt;ManagerMBean has information on session management - e.g. session&lt;br /&gt;
counter since start, login rate, active sessions, expired sessions, max active&lt;br /&gt;
sinse restart sessions (here a restart is possible), number of rejected&lt;br /&gt;
sessions, average alive time, processing time it took to clean up sessions,&lt;br /&gt;
create and required rate for last 100 sessions&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;ServletMBean contains request count, accumulated processing time.&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;JspMBean (together with activated loading/unloading policy) has&lt;br /&gt;
information on unload and reload stats and provides the max number of loaded&lt;br /&gt;
jsps.&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
For httpd the goals with monitoring are pretty similar. The only difference is&lt;br /&gt;
the protocol used - in this case provided by the status module. As an&lt;br /&gt;
alternative use the scoreboard connections.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
You will find information on&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;ul&gt;&lt;br /&gt;
&lt;li&gt;restart time, uptime&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;serverload&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;total number of accesses and traffic&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;idle workers and number of requests currently processed&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;cpu usage - though that is only accurate when all children are stopped&lt;br /&gt;
which in production isn’t particularly likely.&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
Lines that indicate what threads do contain waitinng, request read, send reply&lt;br /&gt;
- more information is documented online.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
When monitoring make sure to monitor not only production but also your stress&lt;br /&gt;
tests to make meaningful comparisons.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;</description>
	<pubDate>Mon, 13 May 2013 20:23:23 +0000</pubDate>
</item>
<item>
	<title>anna.morris's blog: Setting up GPG keys on second machine: importing your existning key</title>
	<guid isPermaLink="false">http://blogs.fsfe.org/anna.morris/?p=217</guid>
	<link>http://blogs.fsfe.org/anna.morris/2013/05/13/setting-up-gpg-keys-on-second-machine-importing-your-existning-key/</link>
	<description>&lt;p&gt;I had a little trouble today while trying to set up my GPG encryption on a second computer, using Wnigmail. The key importing process is rather unintuitive. Once you install Enigmail on your second machine, the natural thing to do is run the Set-up Wizard, which appears to give you the option to import your public and private keys. Once I had found out how to export my keys from my current set-up, I discovered that they get exported as one file, not two, but the set-up wizard wants you to import using separate files, one for your public and one for your private key. After a while I found needed to import them using a separate process. Here is what I did:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;To export current GPG pair:&lt;/strong&gt; In your email client go to Open-GPG &amp;gt; Key Management. I found my key by clicking the “display all keys” box on the window, but un-clicking “Display keys from other people” in the View menu.  Selected your key by clicking on it, so it is highlighted in blue, and go File &amp;gt; Export keys to File. Click the option to  “include your private key” and save the file to a memory stick or external drive (don’t email it to yourself!)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;To Import current GPG pair on a second machine:&lt;/strong&gt; Go to that same dialogue on your new machine, under Open-GPG &amp;gt; Key Management. Go to File &amp;gt; Import keys from file. Chose your file and import them. You should now be set up. You can check by trying to read an encrypted mail – if you don’t have one, send one to yourself from your other machine.&lt;/p&gt;
&lt;p&gt;All done!&lt;/p&gt;
&lt;p&gt;However, I think the set up wizard needs some work!!&lt;/p&gt;
&lt;p&gt;Anna&lt;/p&gt;
&lt;p&gt;xxxx&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;</description>
	<pubDate>Mon, 13 May 2013 16:31:03 +0000</pubDate>
</item>
<item>
	<title>DanielPocock.com: Get WebRTC going fast</title>
	<guid isPermaLink="false">http://danielpocock.com/56 at http://danielpocock.com</guid>
	<link>http://danielpocock.com/get-webrtc-going-fast</link>
	<description>&lt;div class=&quot;field field-name-body field-type-text-with-summary field-label-hidden&quot;&gt;&lt;div class=&quot;field-items&quot;&gt;&lt;div class=&quot;field-item even&quot;&gt;&lt;p&gt;A question that comes up more and more these days: what's the quickest way to try WebRTC and see it working?  How can a web developer start experimenting with WebRTC in their blog or demo site?&lt;/p&gt;
&lt;p&gt;Good news: &lt;em&gt;it's no longer necessary to compile anything from source - and many of the components are available on Debian-based systems (including Ubuntu) or RPM-based solutions like Fedora&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;A quick look at how easy it is, explanation below:&lt;/p&gt;
&lt;pre&gt;# apt-get update
# apt-get install -t experimental repro resiprocate-turn-server
# apt-get install -t unstable chromium sipml5-web-phone
# cd /var/www &amp;amp;&amp;amp; mkdir jssip &amp;amp;&amp;amp; cd jssip
# wget -r -nH http://tryit.jssip.net
# vi /etc/repro/repro.config
# vi /etc/reTurnServer.config
# vi /var/www/jssip/js/custom.REMOVE_THIS.js

&lt;/pre&gt;&lt;p&gt;and then try browsing to &lt;em&gt;/jssip&lt;/em&gt; or &lt;em&gt;/sipml5-web-phone&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;Start with a SIP proxy&lt;/h3&gt;
&lt;p&gt;As explained in the &lt;a href=&quot;http://www.rtcquickstart.org&quot;&gt;RTC Quick Start guide&lt;/a&gt; for regular RTC, a SIP proxy is a clean and simple component to start with.  The same is true for WebRTC: start with a proxy.  There are two I'll emphasize here:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://www.resiprocate.org/About_Repro&quot;&gt;repro&lt;/a&gt; from reSIProcate is quick and easy to set up and has built in TLS support.  A 1.9 alpha release with WebSocket support for WebRTC has just been &lt;a href=&quot;http://packages.debian.org/search?keywords=repro&quot;&gt;uploaded to Debian experimental&lt;/a&gt; and is ready to use on wheezy. RPM users just need to download the &lt;a href=&quot;http://www.resiprocate.org/files/pub/reSIProcate/alpha/&quot;&gt;alpha release tarball&lt;/a&gt; and use rpmbuild to get packages from it.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.kamailio.org&quot;&gt;Kamailio&lt;/a&gt; provides very good WebRTC support too.  The packages are available but due to GPL license issues must be recompiled with TLS, see the &lt;a href=&quot;http://anonscm.debian.org/viewvc/pkg-voip/kamailio/trunk/debian/kamailio.README.Debian?view=markup&quot;&gt;README.Debian file&lt;/a&gt; for details.  Also feel free to try the &lt;a href=&quot;http://www.kamailio.org/w/download/&quot;&gt;upstream package repository&lt;/a&gt; for binaries that do include TLS&lt;/li&gt;
&lt;/ul&gt;&lt;h3&gt;Get a TURN server&lt;/h3&gt;
&lt;p&gt;TURN servers help media streams traverse NAT.  They are very easy to set up, but must have real IP addresses.&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://www.resiprocate.org/ReTurn_Overview&quot;&gt;reTurn from reSIProcate&lt;/a&gt; is in &lt;a href=&quot;http://packages.debian.org/search?keywords=resiprocate-turn-server&quot;&gt;Debian packages&lt;/a&gt; and it is in &lt;a href=&quot;https://admin.fedoraproject.org/pkgdb/acls/name/resiprocate&quot;&gt;Fedora too&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.turnserver.org&quot;&gt;TurnServer.org&lt;/a&gt; from the makers of &lt;a href=&quot;http://www.jitsi.org&quot;&gt;Jitsi&lt;/a&gt; is also packaged on &lt;a href=&quot;http://packages.debian.org/search?keywords=turnserver&quot;&gt;Debian&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/rfc5766-turn-server/&quot;&gt;RFC5766 TURN server&lt;/a&gt; is another open-source TURN server with some advanced features that is in the final stages of Debian package, on the &lt;a href=&quot;http://mentors.debian.net/package/rfc5766-turn-server&quot;&gt;mentors site for review&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;h3&gt;Put the JavaScript in the web server&lt;/h3&gt;
&lt;p&gt;Adding WebRTC to a web site can be as simple as cutting and pasting some JavaScript code into the HTML.&lt;/p&gt;
&lt;p&gt;Three working samples to start with:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Use the &lt;a href=&quot;http://packages.debian.org/sid/sipml5-web-phone&quot;&gt;SIPml5 web phone package&lt;/a&gt; on Debian and add it to a virtual host, browse to /sipml5-web-phone&lt;/li&gt;
&lt;li&gt;Use &lt;em&gt;wget&lt;/em&gt; to fetch a copy of the &lt;a href=&quot;http://jssip.net&quot;&gt;JsSIP&lt;/a&gt; sample page from &lt;a href=&quot;http://tryit.jssip.net&quot;&gt;tryit.jssip.net&lt;/a&gt; and edit the &lt;a href=&quot;http://tryit.jssip.net/js/custom.REMOVE_THIS.js&quot;&gt;provided custom.js file&lt;/a&gt; to hard-code your SIP proxy address&lt;/li&gt;
&lt;li&gt;QoffeeSIP is another alternative - &lt;a href=&quot;http://lists.sip-router.org/pipermail/sr-users/2013-May/077929.html&quot;&gt;this email gives details&lt;/a&gt; how to get started with it&lt;/li&gt;
&lt;/ul&gt;&lt;h3&gt;Browser&lt;/h3&gt;
&lt;p&gt;Users need a recent browser.&lt;/p&gt;
&lt;p&gt;The latest &lt;a href=&quot;http://packages.debian.org/sid/chromium&quot;&gt;Chromium packages in Debian&lt;/a&gt; are based on Google Chrome M26 code and this should work.&lt;/p&gt;
&lt;h3&gt;Help and support&lt;/h3&gt;
&lt;p&gt;Please come and ask on the users mailing lists or IRC channels for any of the packages mentioned here.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description>
	<pubDate>Mon, 13 May 2013 15:05:44 +0000</pubDate>
</item>
<item>
	<title>hesa's Weblog » Free Software: To Gnome or not Gnome</title>
	<guid isPermaLink="false">http://sandklef.wordpress.com/?p=1011</guid>
	<link>http://sandklef.wordpress.com/2013/05/13/to-gnome-or-not-gnome/</link>
	<description>&lt;p&gt;Hired a trailer yesterday and saw this sticker on it.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://sandklef.files.wordpress.com/2013/05/20130512_160320.jpg&quot;&gt;&lt;img src=&quot;http://sandklef.files.wordpress.com/2013/05/20130512_160320.jpg?w=371&amp;amp;h=278&quot; alt=&quot;20130512_160320&quot; height=&quot;278&quot; class=&quot; wp-image-1012 alignleft&quot; width=&quot;371&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Someone doesn’t seem to like &lt;a href=&quot;http://www.gnome.org&quot;&gt;Gnome&lt;/a&gt;. Compare with Gnome’s official logo.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://sandklef.files.wordpress.com/2013/05/402px-gnomelogo-svg.png&quot;&gt;&lt;img src=&quot;http://sandklef.files.wordpress.com/2013/05/402px-gnomelogo-svg.png?w=281&amp;amp;h=342&quot; alt=&quot;402px-Gnomelogo.svg&quot; height=&quot;342&quot; class=&quot;alignright  wp-image-1013&quot; width=&quot;281&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Will &lt;a href=&quot;http://kde.org&quot;&gt;KDE&lt;/a&gt; start using it?&lt;/p&gt;
&lt;br /&gt;  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/sandklef.wordpress.com/1011/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/comments/sandklef.wordpress.com/1011/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;img src=&quot;http://stats.wordpress.com/b.gif?host=sandklef.wordpress.com&amp;amp;blog=4840604&amp;amp;post=1011&amp;amp;subd=sandklef&amp;amp;ref=&amp;amp;feed=1&quot; alt=&quot;&quot; height=&quot;1&quot; border=&quot;0&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Mon, 13 May 2013 08:28:05 +0000</pubDate>
</item>
<item>
	<title>Inductive Bias: ApacheConNA: On Security</title>
	<guid isPermaLink="false">http://blog.isabel-drost.de/?p=474</guid>
	<link>http://blog.isabel-drost.de/index.php/archives/474/apacheconna-on-security</link>
	<description>&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
During the security talk at Apache Con a topic commonly glossed over by&lt;br /&gt;
developers was covered in quite some detail: With software being developed that&lt;br /&gt;
is being deployed rather widely online (over 50% of all websites are powered&lt;br /&gt;
by the Apache webserver) natually security issues are of large concern.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
Currently there are eight trustworthy people on the foundation-wide security&lt;br /&gt;
response team, subscribed to security@apache.org. The team was started by&lt;br /&gt;
William A. Rowe when he found a volnarability in httpd. The general work mode -&lt;br /&gt;
as opposed to the otherwise “all things open” way of doing things at Apache -&lt;br /&gt;
is to keep the issues found private until fixed and publicise widely&lt;br /&gt;
afterwards.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
So when running Apache software on your servers - how do you learn about&lt;br /&gt;
security issues? There is no such thing as a priority list for specific&lt;br /&gt;
vendors. The only way to get an inside scoop is to join the respective&lt;br /&gt;
project’s PMC list - that is to get active yourself.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
So what is being found? 90% of all security issues are found be security&lt;br /&gt;
researches. The remaining 10% are usually published accidentially - e.g. by&lt;br /&gt;
users submitting the issue through the regular public bug tracker of the&lt;br /&gt;
respective project.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
In Tomcat currently no issues was disclosed w/o letting the project know. httpd&lt;br /&gt;
still is the prime target - even of security researchers who are in favour of&lt;br /&gt;
a full disclosure policy - the PMC cannot do a lot here other than fix issues&lt;br /&gt;
quickly (usually within 24 hours).&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
As a general rule of thumb: Keep your average release cycle time in mind - how&lt;br /&gt;
long will it take to get fixes into people’s hands? Communicate transparently&lt;br /&gt;
which version will get security fixes - and which won’t.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
As for static analysis tools - many of those are written for web apps and as&lt;br /&gt;
such not very helpful for a container. What is highly dangerous in a web app&lt;br /&gt;
may just be the thing the container has to do to provide features to web apps.&lt;br /&gt;
As for Tomcat, they have made good experiences with Findbugs - most others have&lt;br /&gt;
too many false positives.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
When dealing with a volnarability yourself, try to get guidance from the&lt;br /&gt;
security team on what is actually a security volnarability - though the final&lt;br /&gt;
decision is with the project.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
Dealing with the tradeoff of working in private vs. exposing users affected by&lt;br /&gt;
the volnarability to attacks is up to the PMC. Some work in public but call the&lt;br /&gt;
actual fix a refactoring or cleanup. Given enough coding skills on the attacker&lt;br /&gt;
side this of course will not help too much as sort of reverse engineering what&lt;br /&gt;
is being fixed by the patches is still possible. On the other hand doing&lt;br /&gt;
everything in private on a separate branch isn’t public development anymore.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
After this general introduction Mark gave a good overview of the good, the bad&lt;br /&gt;
and the ugly way of handling security issues in Tomcat. For his slides&lt;br /&gt;
(including an anecdote of what according to the timing and topic looks like it&lt;br /&gt;
was highly related to the 2011 Java Hash Collision talk at Chaos Communication&lt;br /&gt;
Congress).&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;</description>
	<pubDate>Sun, 12 May 2013 20:22:19 +0000</pubDate>
</item>
<item>
	<title>Inductive Bias: ApacheConNA: On documentation</title>
	<guid isPermaLink="false">http://blog.isabel-drost.de/?p=473</guid>
	<link>http://blog.isabel-drost.de/index.php/archives/473/apacheconna-on-documentation</link>
	<description>&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
In her talk on documentation on OSS Noirin gave a great wrap up of the topic of&lt;br /&gt;
what documentation to create for a project and how to go about that task.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
One way to think about documentation is to keep in mind that it fulfills&lt;br /&gt;
different tasks: There is conceptual, procedural and task-reference&lt;br /&gt;
documentation. When starting to analyse your docs you may first want to debug&lt;br /&gt;
the way it fails to help its users: “I can’t read my mail” really could mean&lt;br /&gt;
“My computer is under water”.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
A good way to find awesome documentation can be to check out Stackoverflow&lt;br /&gt;
questions on your project, blog posts and training articles. Users today really&lt;br /&gt;
are searching instead of browsing docs. So where to find documentation actually&lt;br /&gt;
is starting to matter less. What does matter though is that those pages with&lt;br /&gt;
relevant information are written in a way that makes it easy to find them&lt;br /&gt;
through search engines: Provide a decent title, stable URLs, reasonable tags&lt;br /&gt;
and descriptions. By the way, both infra and docs people are happy to talk to&lt;br /&gt;
*good* SEO guys.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
In terms of where to keep documentation:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
For conceptual docs that need regular review it’s probably best to keep them in&lt;br /&gt;
version control. For task documentation steps should be easy to upgrade once&lt;br /&gt;
they fail for users. Make sure to accept bug reports in any form - be it on&lt;br /&gt;
Facebook, Twitter or in your issue tracker.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
When writing good documentation always keep your audience in mind: If you don’t&lt;br /&gt;
have a specific one, pitch one. Don’t try to cater for everyone - if your docs&lt;br /&gt;
are too simplistic or too complex for others, link out to further material.&lt;br /&gt;
Understand their level of understanding. Understand what they will do after&lt;br /&gt;
reading the docs.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
On a general level always include an about section, a system overview, a&lt;br /&gt;
description of when to read the doc, how to achieve the goal, provide&lt;br /&gt;
examples, provide a trouble shooting section and provide further information&lt;br /&gt;
links. Write breadth first - details are hard to fill in without a bigger&lt;br /&gt;
picture. Complete the overview section last. Call out context and&lt;br /&gt;
pre-requesites explicitly, don’t make your audience do more than they really&lt;br /&gt;
need to do. Reserve the details for a later document.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
In general the most important and most general stuff as well as the basics&lt;br /&gt;
should come first. Mention the number of steps to be taken early. When it comes&lt;br /&gt;
to providing details: The more you provide, the more important the reader will&lt;br /&gt;
deem that part.&lt;/p&gt;</description>
	<pubDate>Sat, 11 May 2013 20:20:34 +0000</pubDate>
</item>
<item>
	<title>anna.morris's blog: Experiment: There may be confidential content in your search results. Please do not share outside Google. – Missing Q and A’s?</title>
	<guid isPermaLink="false">http://blogs.fsfe.org/anna.morris/?p=213</guid>
	<link>http://blogs.fsfe.org/anna.morris/2013/05/11/experiment-there-may-be-confidential-content-in-your-search-results-please-do-not-share-outside-google-missing-q-and-as/</link>
	<description>&lt;p&gt;as a follow up to the recent “Experiment: There may be confidential content in your search results. Please do not share outside Google.” incident which I blogged about here, I searched for more info using Google. Found a few odd little things…&lt;/p&gt;
&lt;p&gt;Some* questions about it on Yahoo have been removed.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blogs.fsfe.org/anna.morris/files/2013/05/google-3.png&quot;&gt;&lt;img src=&quot;http://blogs.fsfe.org/anna.morris/files/2013/05/google-3.png&quot; alt=&quot;&quot; height=&quot;411&quot; class=&quot;alignnone size-full wp-image-215&quot; width=&quot;578&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I wonder which part of their Community Guidelines forbid discussing GoogleBugs?&lt;/p&gt;
&lt;p&gt;Perhaps stranger still, looks like some user replies have been deleted and some redirects have been made too.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blogs.fsfe.org/anna.morris/files/2013/05/google-4.png&quot;&gt;&lt;img src=&quot;http://blogs.fsfe.org/anna.morris/files/2013/05/google-4.png&quot; alt=&quot;&quot; height=&quot;690&quot; class=&quot;alignnone size-full wp-image-214&quot; width=&quot;389&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;A little later in this thread, some one named  epontius said that other threads had been redirected to this single thread because “This one is being monitored by staff… so the other threads concerning this issue have been redirected to this one to keep things in one place.”&lt;/p&gt;
&lt;p&gt;Given that Google &lt;a href=&quot;http://www.bbc.co.uk/programmes/b01pnn4m&quot; target=&quot;_blank&quot;&gt;recently proclaimed&lt;/a&gt; search results should be &lt;em&gt;impartial&lt;/em&gt; (and so should not (necessarily) be included in the “right to be forgotten” protection), I really trust that they wouldn’t mess about with links and users questions for something so trivial as a technical hiccup….&lt;/p&gt;
&lt;p&gt;jus’sayin…&lt;/p&gt;
&lt;p&gt;* (one or more, hard to tell: several links in search results but all leading one URL)&lt;/p&gt;</description>
	<pubDate>Sat, 11 May 2013 14:18:59 +0000</pubDate>
</item>
<item>
	<title>Inductive Bias: ApacheConNA: On delegation</title>
	<guid isPermaLink="false">http://blog.isabel-drost.de/?p=472</guid>
	<link>http://blog.isabel-drost.de/index.php/archives/472/on-delegation</link>
	<description>&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
In her talk on delegation Deb Nicholson touched upon a really important topic in&lt;br /&gt;
OSS: Your project may live longer than you are willing to support it yourself.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
The first important point about delegation is to delegate - and to not wait&lt;br /&gt;
until you have to do it. Soon you will realise that mentoring and delegation&lt;br /&gt;
actually is a way to multiply your resources.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
In order to delegate people to delegate to are needed. To find those it can be&lt;br /&gt;
helpful to understand what motivates people to work in general as well as on&lt;br /&gt;
open source in particular: Sure, fixing a given problem and working on great&lt;br /&gt;
software projects may be part of it. As important though is recognition&lt;br /&gt;
individually and in groups of people.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
Keeping that in mind, “Thanking” is actually a license to print free money in&lt;br /&gt;
the open source world. Do it in a verbose manner to be believable, do it in&lt;br /&gt;
public and in a way that makes your contributors feel a little bit of glory.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
Another way to lead people in is to help out socially: Facilitate connections,&lt;br /&gt;
suggest connections, introduce people. Based on the diversity of the project&lt;br /&gt;
you are working on you may be in a way larger network and have access to much&lt;br /&gt;
more corporations and communities than any peer who is not active. Use that&lt;br /&gt;
potential.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
Also when leading OSS projects keep in eye on people being rude: Your project&lt;br /&gt;
should be accessible to facilitate participation.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
In case of questions treat them as a welcome opportunity to pull a new&lt;br /&gt;
community member in: Answer quickly, answer on your list, delegate to middle&lt;br /&gt;
seniors to pull them in. Have training missions for people who want to get&lt;br /&gt;
started and don’t know your tooling yet. Have prepared documents to provide&lt;br /&gt;
links to in case questions occur.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
In Apache we tend to argue people should not fall victim of volunteeritis.&lt;br /&gt;
Another way to put that is to make sure to avoid the licked cookie syndrom:&lt;br /&gt;
When people volunteer to do a task and never re-appear that task is tainted&lt;br /&gt;
until explicitly marked as “not taken” later on. One way to automate that is&lt;br /&gt;
to have a fixed deadline after which tasks are automatically marked as free to&lt;br /&gt;
take and tackle by anyone.&lt;br /&gt;
&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
When it comes to the question of When to write documentation: There really is&lt;br /&gt;
no point in time that should stop you from contributing docs - all the way from&lt;br /&gt;
just above getting started level (writing the getting started docs for those&lt;br /&gt;
following you) up to the “I’m an awesome super-hacker” mode for those trying&lt;br /&gt;
to hack on similar areas.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
Especially when delegating to newbies make sure to set the right expectations:&lt;br /&gt;
How long is it going to take to fix an issue, what is the task complexity, tell&lt;br /&gt;
them who is going to be involved, who is there to help out in case of road&lt;br /&gt;
blocks.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
In general make sure to be a role model for the behaviour you want in your&lt;br /&gt;
project: Ask questions yourself, step back when your have taken on too much,&lt;br /&gt;
appreciate people stepping back.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
Understand the motivation of your new comers - try to talk to them one on one&lt;br /&gt;
to understand their motivation and help to align work on the project with their&lt;br /&gt;
life goal. When starting to delegate, start with tasks that seem to small to&lt;br /&gt;
delegate at all to get new people familiar with the process - and to get&lt;br /&gt;
yourself familiar with the feeling of giving up control. Usually you will need&lt;br /&gt;
to pull tasks apart that before were done by one person. Don’t look for a&lt;br /&gt;
person replacement - instead look for separate tasks and how people can best&lt;br /&gt;
perform these.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
Make visible and clear what you need: Is it code or reviews? Documentation or&lt;br /&gt;
translations, UX helpers? Incentivise what you really need - have code sprints,&lt;br /&gt;
gamify the process of creating better docs, put the logo creation under a&lt;br /&gt;
challenge.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
All of this is great if you have only people who all contribute in a very&lt;br /&gt;
positive way. What if there is someone who’s contributions are actually&lt;br /&gt;
detrimental to the project? How to deal with bad people? They may not even do&lt;br /&gt;
so intentionally… One option is to find a task that better suits their&lt;br /&gt;
skills. Another might be to find another project for them that better fits&lt;br /&gt;
their way of communicating. Talk to the person in question, address head on&lt;br /&gt;
what is going on. Talking around or avoiding that conversation usually only&lt;br /&gt;
delays and enlarges your problem. One simple but effective strategy can be to&lt;br /&gt;
tell people what you would like them to do in order to help them find out that&lt;br /&gt;
this is not what they want to do - that they are not the right people for you&lt;br /&gt;
and should find a better place.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
More on this can be found in material like “How assholes are killing your&lt;br /&gt;
project” as well as the “Poisonous people talk” and the book “Producing&lt;br /&gt;
open source software”.&lt;br /&gt;
&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
On the how of dealing with bad people make sure to criticise privately first,&lt;br /&gt;
chack in a backchannel of other committers for their opinion - otherwise you&lt;br /&gt;
might be lonely very quickly. Keep to criticising the bahaviour instead of the&lt;br /&gt;
person itself. Most people really do not want to be a jerk.&lt;/p&gt;</description>
	<pubDate>Fri, 10 May 2013 20:19:51 +0000</pubDate>
</item>
<item>
	<title>Inductive Bias: ApacheConNA: First keynote</title>
	<guid isPermaLink="false">http://blog.isabel-drost.de/?p=470</guid>
	<link>http://blog.isabel-drost.de/index.php/archives/470/apacheconna-first-keynote</link>
	<description>&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
All three ApacheCon keynotes were focussed around the general theme of open&lt;br /&gt;
source communities. The first on given by Theo had very good advise to the&lt;br /&gt;
engineer not only striving to work on open source software but become an&lt;br /&gt;
excellent software developer:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;ul&gt;&lt;br /&gt;
&lt;li&gt;Be loyal to the problem instead of to the code: You shouldn’t be&lt;br /&gt;
addicted to any particular programming language or framework and refuse to work&lt;br /&gt;
and get familiar with others. Avoid high specialisation and seek cross&lt;br /&gt;
fertilisation. Instead of addiction to your tooling you should seek to&lt;br /&gt;
diversify your toolset to use the best for your current problem.&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;Work towards becoming a generalist: Understand your stack top to bottom -&lt;br /&gt;
starting with your code, potentially passing the VM it runs in up down to the&lt;br /&gt;
hardware layer. Do the same to requirements you are exposed to: Being 1s old&lt;br /&gt;
may be just good enough to be “always current” when thinking of a news&lt;br /&gt;
serving web site. Try to understand the real problem that underpins a certain&lt;br /&gt;
technical requirement that is being brought up to you. This deep understanding&lt;br /&gt;
of how your system works can make the difference in fixing a production issue&lt;br /&gt;
in three days instead of twelve weeks.&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
The last point is particularly interesting for those aiming to write scalable&lt;br /&gt;
code: Software and frameworks today are intended to make development easier -&lt;br /&gt;
with high probability they will break when running at the edge.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
What is unique about the ASF is the great opportunity to meet people with&lt;br /&gt;
experience in many different technologies. In addition there is an unparalleled&lt;br /&gt;
level of trust in a community as diverse as the ASF. One open question that&lt;br /&gt;
remains is how to leverage this potential successfully within the foundation.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;</description>
	<pubDate>Thu, 09 May 2013 20:13:51 +0000</pubDate>
</item>
<item>
	<title>anna.morris's blog: Experiment: There may be confidential content in your search results. Please do not share outside Google.</title>
	<guid isPermaLink="false">http://blogs.fsfe.org/anna.morris/?p=204</guid>
	<link>http://blogs.fsfe.org/anna.morris/2013/05/09/experiment-there-may-be-confidential-content-in-your-search-results-please-do-not-share-outside-google/</link>
	<description>&lt;p&gt;What are Google up to?&lt;/p&gt;
&lt;p&gt;Was looking for database tutorials on YouTube when this appeared:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blogs.fsfe.org/anna.morris/files/2013/05/google-1.png&quot;&gt;&lt;img src=&quot;http://blogs.fsfe.org/anna.morris/files/2013/05/google-1.png&quot; alt=&quot;&quot; height=&quot;77&quot; class=&quot;alignnone size-full wp-image-206&quot; width=&quot;809&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I Googled the text and found it was practically vial, people asking about it with posts every few mins:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blogs.fsfe.org/anna.morris/files/2013/05/google-2.png&quot;&gt;&lt;img src=&quot;http://blogs.fsfe.org/anna.morris/files/2013/05/google-2.png&quot; alt=&quot;&quot; height=&quot;621&quot; class=&quot;alignnone size-full wp-image-205&quot; width=&quot;586&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;What are they up too? Could this relate to privacy issues? Are they toying with us? Do we disobey and share all of the things we find “outside of Google”&lt;/p&gt;
&lt;p&gt;What does “outside of Google mean?” – on another search Engine? Off-line?&lt;/p&gt;
&lt;p&gt;Twitter seems to be intrested in discussing the issue…&lt;br /&gt;
&lt;a href=&quot;https://twitter.com/search?q=Experiment%3A+There+may+be+confidential+content+in+your+search+results.+Please+do+not+share+outside+Google.&quot; class=&quot;twitter-timeline&quot;&gt;Tweets about “Experiment: There may be confidential content in your search results. Please do not share outside Google.”&lt;/a&gt;&lt;br /&gt;
// &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;</description>
	<pubDate>Thu, 09 May 2013 19:51:27 +0000</pubDate>
</item>

</channel>
</rss>
