<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;C0QEQX4_fCp7ImA9WhBbFko.&quot;"><id>tag:blogger.com,1999:blog-5605857505516531350</id><updated>2013-05-15T19:28:20.044-07:00</updated><title>The Pile</title><subtitle type="html">Where stuff goes</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://thepileof.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://thepileof.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Jeremy Collake</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-NAxZHj7bd1Y/AAAAAAAAAAI/AAAAAAAAdjk/5T8s66_RBi8/s512-c/photo.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>105</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/blogspot/dpVll" /><feedburner:info uri="blogspot/dpvll" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;CUMDQXk7eSp7ImA9WhBUFU4.&quot;"><id>tag:blogger.com,1999:blog-5605857505516531350.post-2636549609032411623</id><published>2013-05-02T07:46:00.002-07:00</published><updated>2013-05-02T15:24:30.701-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-05-02T15:24:30.701-07:00</app:edited><title>How installer bundle companies solicit developers</title><content type="html">&lt;b&gt;I&lt;/b&gt;f you ever wondered how freeware/shareware developers are solicited by installer bundle companies, here's an example I&amp;nbsp;received&amp;nbsp;recently:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 14px;"&gt;Dear Software Developer,&lt;/span&gt;&lt;span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 14px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 14px;"&gt;Did you know that you could be earning money every time someone downloads your software?&lt;/span&gt;&amp;nbsp;&lt;/blockquote&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 14px;"&gt;&lt;/span&gt;&lt;span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 14px;"&gt;In fact, hundreds of developers just like you are already turning downloads into profits through partnership with SweetPacks.&lt;/span&gt;&lt;span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 14px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 14px;"&gt;My name is Limor Garten, and I am a partnership manager at SweetPacks (&lt;/span&gt;www.sweetpacks.com&lt;span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 14px;"&gt;).&lt;/span&gt;&amp;nbsp;&lt;/blockquote&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 14px;"&gt;&lt;/span&gt;&lt;span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 14px;"&gt;We create monetization opportunities from software installations through websites such as&lt;/span&gt;&lt;span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 14px;"&gt;CNET (Download.com), Softonic.com and MetaInstaller.&lt;/span&gt;&lt;span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 14px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 14px;"&gt;To find out about how you could earn money with every software download, please contact me directly at&amp;nbsp;&lt;/span&gt;partnerships@sweetpacks.com&lt;span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 14px;"&gt;&amp;nbsp;or leave your details at&amp;nbsp;&lt;/span&gt;http://lp.sweetim.com/Partners&lt;wbr style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 14px;"&gt;&lt;/wbr&gt;&lt;span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 14px;"&gt;.&lt;/span&gt;&lt;span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 14px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 14px;"&gt;Thanks very much,&lt;/span&gt;&lt;span style="background-color: white; color: #222222; font-family: arial, helvetica, sans-serif; font-size: 14px;"&gt;J******* M*****&lt;/span&gt;&lt;span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 14px;"&gt;SweetPacks Team&lt;/span&gt;&lt;/blockquote&gt;
&lt;br /&gt;
It's long past time that companies who sign up for such abusive installer bundles start being penalized for harming the integrity, performance, and overall experience of countless PCs, and contributing to a general lack of trust for all third-party applications.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;What are installer bundles?&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
&lt;b&gt;F&lt;/b&gt;or those that don't know, installer bundles are those deceptive, unwanted, additional pieces of software, often browser toolbars/add-ons, that present themselves in an intentionally easy to miss little checkbox during installation of some Windows software, particularly freeware and shareware. This terrible industry is so&amp;nbsp;profitable&amp;nbsp;that free, open source software is often repackaged with these bundles, then advertised and distributed by some random 'download site'.&lt;img src="http://feeds.feedburner.com/~r/blogspot/dpVll/~4/mDEv4vXeKek" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thepileof.blogspot.com/feeds/2636549609032411623/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://thepileof.blogspot.com/2013/05/more-installer-bundles.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default/2636549609032411623?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default/2636549609032411623?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/dpVll/~3/mDEv4vXeKek/more-installer-bundles.html" title="How installer bundle companies solicit developers" /><author><name>Jeremy Collake</name><uri>https://plus.google.com/110469164034872408057</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-NAxZHj7bd1Y/AAAAAAAAAAI/AAAAAAAAdjk/5T8s66_RBi8/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://thepileof.blogspot.com/2013/05/more-installer-bundles.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEYDR386fCp7ImA9WhBUFkU.&quot;"><id>tag:blogger.com,1999:blog-5605857505516531350.post-5229593480478328517</id><published>2013-04-27T18:59:00.004-07:00</published><updated>2013-05-04T09:49:36.114-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-05-04T09:49:36.114-07:00</app:edited><title>Fundamental Flaws of Bitcoin</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-q_Aomk6t1u4/UX1q-RKsIFI/AAAAAAAAf3w/YpeeAQc3QQM/s1600/I_Want_To_Believe_01.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em; text-align: center;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/-q_Aomk6t1u4/UX1q-RKsIFI/AAAAAAAAf3w/YpeeAQc3QQM/s320/I_Want_To_Believe_01.jpg" width="228" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Here I list the fundamental design flaws in the Bitcoin protocol, as I've identified them. Some are technical. Some are economic.&lt;br /&gt;
&lt;br /&gt;
Let me say that there is an *army* of Bitcoin evangelicals who will argue against these points using false analogies and&amp;nbsp;rebuttals&amp;nbsp;far abstracted from reality. However, most serious people, even those high up in the Bitcoin food chain, do agree with these points. Unlike the evangelicals, Bitcoin developers are working to solve these issues and others, though no solutions are obvious, or are likely since these issues are so inherent to the design of Bitcoin.&lt;br /&gt;
&lt;br /&gt;
In other words, many of these issues can be mitigated to some degree, but to do so compromises the principles that make Bitcoin attractive to its believers.&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;
&lt;/h4&gt;
&lt;h4&gt;
&lt;span style="color: blue;"&gt;Regulatory Action&lt;/span&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;span style="color: blue;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;A&lt;/b&gt;s we've seen, regulatory action can come swiftly and without any warning. Already Bitcoin is being abused for numerous nefarious or illegal activities. The moment we find that Bitcoins contributed to a terrorist plot, for instance, down it will go - and it will go hard! In addition to facilitating illegal activities, if Bitcoin did actually grow into what its proponents think it could be, the threat it would represent would be reason enough for governments to shut it down. Take a look at what&amp;nbsp;&lt;a href="https://www.google.com/url?sa=t&amp;amp;rct=j&amp;amp;q=&amp;amp;esrc=s&amp;amp;source=web&amp;amp;cd=3&amp;amp;cad=rja&amp;amp;ved=0CD4QqQIwAg&amp;amp;url=http%3A%2F%2Fbusiness.financialpost.com%2F2013%2F04%2F27%2Fbitcoin-canada-banks%2F&amp;amp;ei=z4F8UeHHBo7S9AT1goHgDg&amp;amp;usg=AFQjCNF0qp-YXbLj4j8_rFzUsbzsFQzeeg&amp;amp;sig2=cFgIh10hPbGBCAcMAR6Zuw&amp;amp;bvm=bv.45645796,d.eWU"&gt;happened in Canada&lt;/a&gt;, quite suddenly, on an otherwise dull Friday. And if you think governments can't take down Bitcoin, think again! They maybe can't stop all Bitcoin transactions so easily, but killing the exchanges is enough to destroy the value, and nobody will want to hold Bitcoin when they can't be converted into a 'real' currency that can be used to pay debts, such as taxes.&lt;br /&gt;
&lt;div style="font-weight: normal;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h4&gt;
&lt;span style="color: blue;"&gt;Fat Blockchain&lt;/span&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;span style="color: blue;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;b&gt;T&lt;/b&gt;he huge blockchain, a chained ledger of all Bitcoin transactions ever made, will grow forever. Already it is&amp;nbsp;&lt;a href="http://blockchain.info/charts/blocks-size"&gt;6.5Gb in size&lt;/a&gt;, and growing rapidly. While Merkel Tree pruning can save disk space, that doesn't help with the massive amount of data that must be transferred. Could you imagine what would happen to the blockchain size if Bitcoin was adopted as the de-facto global currency? My goodness! Light wallets are a partially viable solution, though again compromising the fundamentals of Bitcoin to overcome its limitations.&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;
&lt;span style="color: blue;"&gt;Lost Bitcoins&lt;/span&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;span style="color: blue;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;b&gt;L&lt;/b&gt;ost Bitcoins will erode the supply. Bitcoins are extremely limited in supply, and will eventually top out at 21 million Bitcoins some time in 2030. After that, there will be no more. Prior to that, the number mined will decrease geometrically to zero. As people lose Bitcoins, e.g. perhaps a person is in a sudden accident and dies, the available supply of Bitcoins will decrease, and the value of all other Bitcoins will increase, assuming demand remains only constant. Yes, they can be sub-divided, but that isn't the point. The point is the instability of their value will limit usefulness as a currency.&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;
&lt;span style="color: blue;"&gt;Deflation&lt;/span&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;span style="color: blue;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;b&gt;I&lt;/b&gt;f Bitcoins ever are a 'real' currency, they will inherently deflate since economies grow. As currency deflates, people horde it, making the situation worse. If they AREN'T used as a currency, then deflation will depend on demand outstripping supply. Economies need currency that inflates at least as fast at the economy, else the economy stagnates!&amp;nbsp;&lt;a href="http://www.forbes.com/sites/pascalemmanuelgobry/2013/04/05/krugman-baby-sitting-co-op-bitcoin/"&gt;Paul Krugman explained it&lt;/a&gt;&amp;nbsp;best. People will say, "but Bitcoins can be divided into 1/100,000,000 units called Satoshis!". That will help to ensure there are always Bitcoins to circulate, but it doesn't solve the hording problem (who wants to spend something that will be worth more tomorrow?), nor does it solve the volatility problem that comes with [high] deflation. In the end, the cumulative effects of deflation probably depends on the rate of deflation.&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;
&lt;span style="color: blue;"&gt;Fraud&lt;/span&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;span style="color: blue;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;b&gt;S&lt;/b&gt;cams of all types keep tarnishing the Bitcoin brand. As we all know, Bitcoins currently have value only because people are enthusiastic about it and/or believe it to be a good investment. To this day, the scams continue, and at some point the average Joe that the Bitcoin marketing machine is trying to hook will simply be left with a bad taste in their mouth!&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;
&lt;span style="color: blue;"&gt;Irreversible Transactions&lt;/span&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;span style="color: blue;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;b&gt;T&lt;/b&gt;here are no consumer protections what-so-ever, an intentional 'feature' of Bitcoin. Transactions are irreversible. That means that if somebody hacks your wallet and steals your Bitcoin, they are gone. If a merchant rips you off, you're out of luck (unless you want to pursue a civil lawsuit). I should note that it is possible that, in the future, stolen Bitcoins could be recovered at certain points, since every Bitcoin ever transacted is recorded in the blockchain. That's not presently the case though, and mixing services that help with anonymity also make it easy to launder money. While Bitcoin evangelicals will say irreversible transactions are a good thing, it remains to be seen what the public at large thinks of this feature. As an aside, irreversible transactions can also make refunds a bit more tedious, though this isn't a serious issue.&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;
&lt;span style="color: blue;"&gt;&lt;b&gt;No Central Bank&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;br /&gt;
&lt;b&gt;T&lt;/b&gt;here is, by design, no central authority that can control the supply of Bitcoin (which can't be controlled anyway with BTCs), and thus nobody to respond to price&amp;nbsp;volatility&amp;nbsp;or economic disruptions. You *want* someone 'at the helm', making sure that a currency is stable and available (liquid). Some will say this is an asset, but they might also change their minds when volatility or economic troubles leave them homeless!&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;
&lt;span style="color: blue;"&gt;Unregulated Market&lt;/span&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;span style="color: blue;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;b&gt;B&lt;/b&gt;itcoin is completely unregulated, and they don't want any stinkin' regulation! However, market regulations are there for a reason. Just like laws against rape and murder, you want to make sure that immoral and fraudulent activities are prevented, deterred, and/or penalized. Every unregulated market in history has been manipulated by greedy, immoral people, and Bitcoin is no different. I am speaking of the exchanges here... for small and medium sized markets like this, manipulation by savvy traders is all to easy, and they already know the tricks to use - those that have been banned from the 'traditional' exchanges!&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;
CONCLUSION&lt;/h4&gt;
&lt;br /&gt;
Heed my warning here. Bitcoin is an interesting concept. It's been a fun intellectual exploration into crypto-currency and economics. You will hear a variety of defenses to all these points from the pro-Bitcoin evangelists. Keep in mind that most of them are heavily invested in the success of Bitcoin, so of course they are going to vigorously defend it. While this may just be another intellectual subject to ponder, for others it may literally make or break them! I have *extreme* concerns about people 'investing' in Bitcoin after being pumped up by the evangelicals, who will so eagerly tell them that Bitcoin are the future of all money, and will soon be worth $10000 a piece. Please, use &lt;b&gt;&lt;i&gt;extreme caution&lt;/i&gt;&lt;/b&gt;!&lt;br /&gt;
&lt;br /&gt;
People think this is fun and games, and in their greed, continue to spread deluded arguments and hysteria, but when Bitcoin comes crashing down, the losses will be REAL and PAINFUL to many!&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;i&gt;Comments?&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
- End -&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------&lt;br /&gt;
misc that maybe should be on the list&lt;br /&gt;
&lt;br /&gt;
(0) &lt;b&gt;Transaction Fees.&lt;/b&gt; Transactions already mandate a transaction fee. (I thought no transaction fees were a commonly touted feature of bitcoins?). Well, unless you want to wait God knows how long for the transaction to clear. In the future, this will be an even bigger problem, as transaction fees will be the sole motivator for work to get done, as fully described&amp;nbsp;&lt;a href="http://research.microsoft.com/pubs/156072/bitcoin.pdf"&gt;in this paper&lt;/a&gt;.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
(1)&amp;nbsp;&lt;b&gt;Intermediaries Required (transaction time).&lt;/b&gt;&amp;nbsp;that intermediaries are required for point of sale transactions to guarantee that the verification time is not slow, injecting the same intermediaries that exist in the current monetary system. Again, something Bitcoins supposedly were created to get around. Reducing the number of&amp;nbsp;verifications&amp;nbsp;required can accelerate the transaction time, though by increasing the risk of fraud.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
(2) &lt;b&gt;Malware and Botnets.&lt;/b&gt; Bitcoin, by chance(?), made the perfect outlet for botnets. Botnet owners may now have less cumulative mining power, but they once did, do with Litecoins, and are still trying to influence the Bitcon market through DDoS attacks. Bitcoin have incentivized botnets like never before. In order to build botnets, malware is spread. Thus, Bitcoin is encouraging malware. Further, malware is also created to target bitcoin wallets and account information. I believe, however, that this risk is mostly inherent to the development of any new financial instrument.&lt;br /&gt;
&lt;br /&gt;
(3) &lt;b&gt;Volatility.&lt;/b&gt; Bitcoin is highly volatile. This limits its usefulness. In the last week it has been relatively stable though, compared to its history, though not compared to a steady currency like the USD. However, as it stabilizes, the chance of a big return is lessened, but the risk is still there. Stability will discourage new high-risk speculators and instability will make it difficult to rely on as a 'currency' (not that it ever has been really used as a currency).&lt;br /&gt;
&lt;br /&gt;
(4) &lt;b&gt;Public Ledger of All Transactions.&amp;nbsp;&lt;/b&gt;While Bitcoin may be touted as anonymous, it's not - every transaction is completely public. The sender and recipient are identified by their addresses (public keys). The blockchain is a public ledger, transmitted via the p2p network, that records (authorizes/verifies) every single transaction for every Satoshi (1/100,000,000BTC) spent for all eternity. If you get a paycheck in Bitcoins, every Satoshi can be tracked as it's spent. The identify of those address holders may not be publicly listed (or maybe they are), but the more transactions a key performs, the more ownership can be deduced, and even reasonably proven. That is to say, the people who send you money, or to whom you send money, will serve to identify your ownership of addresses. It's easy to get scared by this. Profiling based on consumption habits is even possible! There are ways to mitigate this, primarily mixing services, but it is a serious concern to some who value privacy. That said, perhaps transparency would ensure compliance and fairness when it comes to things like taxes, and prevention of money laundering.&lt;br /&gt;
&lt;br /&gt;
Since every Satoshi ever spent can be tracked, stolen Bitcoins can theoretically be recovered. After all, they can NOT go ANYWHERE without being tracked!&amp;nbsp;&lt;a href="http://www.wired.com/opinion/2013/05/lets-cut-through-the-bitcoin-hype/"&gt;This article has an excellent perspective&lt;/a&gt;. The&amp;nbsp;&lt;a href="http://bitcoinmagazine.com/ozcoin-hacked-stolen-funds-seized-and-returned-by-strongcoin/"&gt;Strongcoin incident&lt;/a&gt;&amp;nbsp;where the wallet provider recovered some Bitcoins stolen from a mining guild is a good case example. Check&amp;nbsp;&lt;a href="http://anonymity-in-bitcoin.blogspot.com/2011/07/bitcoin-is-not-anonymous.html"&gt;out this academic analysis of the proliferation of a Bitcoin theft&lt;/a&gt;&amp;nbsp;to get an idea of how traceable Bitcoins are.&lt;br /&gt;
&lt;br /&gt;
Given this trackability of every Bitcoin for all eternity, Bitcoin suddenly looks awful attractive for governance!&lt;br /&gt;
&lt;br /&gt;
Fortunately, &lt;a href="http://www.forbes.com/sites/andygreenberg/2013/04/12/zerocoin-add-on-for-bitcoin-could-make-it-truly-anonymous-and-untraceable/"&gt;ZeroCoin&lt;/a&gt; is a proposed extension that overcomes this deficit, making transactions truly anonymous. However, it has some negative caveats such as much larger transaction sizes, leading to a substantially larger blockchain. One compelling feature of the proposal is that it does allow for backdoors to break the veil of anonymous transactions, so that government agencies can enforce tax compliance or combat money laundering (good things on the whole).&lt;/div&gt;
&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/blogspot/dpVll/~4/Q4Isn-Sb7RM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thepileof.blogspot.com/feeds/5229593480478328517/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://thepileof.blogspot.com/2013/04/fundamental-flaws-of-bitcoin.html#comment-form" title="6 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default/5229593480478328517?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default/5229593480478328517?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/dpVll/~3/Q4Isn-Sb7RM/fundamental-flaws-of-bitcoin.html" title="Fundamental Flaws of Bitcoin" /><author><name>Jeremy Collake</name><uri>https://plus.google.com/110469164034872408057</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-NAxZHj7bd1Y/AAAAAAAAAAI/AAAAAAAAdjk/5T8s66_RBi8/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-q_Aomk6t1u4/UX1q-RKsIFI/AAAAAAAAf3w/YpeeAQc3QQM/s72-c/I_Want_To_Believe_01.jpg" height="72" width="72" /><thr:total>6</thr:total><feedburner:origLink>http://thepileof.blogspot.com/2013/04/fundamental-flaws-of-bitcoin.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck8DSXg_fSp7ImA9WhBUEUU.&quot;"><id>tag:blogger.com,1999:blog-5605857505516531350.post-8638876070865041706</id><published>2013-04-26T12:00:00.001-07:00</published><updated>2013-04-28T13:27:58.645-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-04-28T13:27:58.645-07:00</app:edited><title>An Opinion on Butterfly Labs</title><content type="html">&lt;span style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;(originally typed up as a comment on a Wired article)&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;I truly hate to sound cynical and pessimistic, but I've been watching Butterfly Labs for a while. Hear me out on this. I think I'm right on the money. I'll try to be gentle.&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: Arial, sans-serif; font-size: x-small;"&gt;&lt;span style="line-height: 18px;"&gt;The TL;DR version of this post is:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;span style="font-family: Arial, sans-serif;"&gt;&lt;span style="line-height: 18px;"&gt;&lt;b&gt;In a worst-case scenario, Butterfly Labs goes belly up and can't refund their pre-orders. In a best-case scenario,&amp;nbsp;Butterfly Labs will eventually ship all its massive backlog of pre-orders, but by that time these mining rigs will be useless. In fact, if they shipped them TODAY, the flood of new ASICs on the market would quickly plummet their return. Either way, those placing pre-orders will lose their money.&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;span style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;People need to understand the business model BFL is using, and the fact that it is very high risk. Perhaps the worst thing a person could do today is pre-order any of their units! I don't know who would want to pay a premium to enter the bottom of a long waiting list for such a time-critical device, but I'm sure people are, else BFL wouldn't be still advertising so aggressively!&lt;/span&gt;&lt;br /&gt;
&lt;br style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;
&lt;span style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Butterfly Labs first piqued my interest because it seemed spectacular; Big claims, massive pre-orders, and a perpetually pushed back release date. Well, congratulations to them, as It seems that they have managed to use their revenue to at least create a *handful* of units.&lt;/span&gt;&lt;br /&gt;
&lt;br style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;
&lt;span style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;If their supply is this low, it must mean that these are more prototypes than production units, and mass production hasn't been achieved. This means that these early units surely cost MUCH more than what they were sold for. It's worth it to Butterfly Labs though, as it silences the skeptics and gets them even more pre-order revenue.&lt;/span&gt;&lt;br /&gt;
&lt;br style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;
&lt;span style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;As they continue to take thousands of pre-orders worth millions of dolars, I can't help but wonder how they plan to ever deliver that number of devices.&lt;/span&gt;&lt;br /&gt;
&lt;br style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;
&lt;span style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Pre-ordering a unit that's going to market is one thing, but what people are doing here is financing the entire enterprise. That's risky for everyone! Now, Butterfly Labs *may be* in a position to make enough revenue from mining to supply refunds to all those who give up on waiting, or to whom they can never possibly deliver! Otherwise, they *may be* in trouble! The fact that they seem eager to generate more pre-orders is not a good sign!&lt;/span&gt;&lt;br /&gt;
&lt;br style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;
&lt;span style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Do you realize how easy it would be to 'get behind' when you've taken on so many pre-orders for a device you haven't built yet? Who knows if they can manufacture them as cheap as they hoped (probably can't), and thus they will be taking a loss on, at least, all the early orders. If they do NOT make this deficit up by mining or whatever, then those who ordered last *will* lose their money.&lt;/span&gt;&lt;br /&gt;
&lt;br style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;
&lt;span style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Perhaps they know they are in trouble. After all, if Butterfly Labs was really more concerned about order fulfillment than generating more pre-order revenue, it seems like they'd have sent these units to customers that has been waiting for nearly a year, rather than to Wired Magazine and other publicists.&amp;nbsp;By sending units to publicists, and continuing to spend big bucks on advertising, they are creating an even BIGGER BACKLOG, something a company on the up and up wouldn't seemingly want to do.&lt;/span&gt;&lt;br /&gt;
&lt;br style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;
&lt;span style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;It's very much like a ponzi scheme. Remember, those ordering these devices are doing so because they believe it will offer a good return on their money! It *IS* an investment! Thinking about it in that context makes things clear. You think you'll be rewarded for this investment, and a very few who got in early may be. Everyone else is financing the development of these prototype units that get sent to a few lucky recipients. Most will never see their order fulfilled, at least certainly not in a time frame that makes it a worthwhile investment!&lt;/span&gt;&lt;br /&gt;
&lt;br style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;
&lt;span style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;If I had an order pending, I'd ask for a refund while they are able to provide them!&lt;/span&gt;&lt;br /&gt;
&lt;br style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;
&lt;span style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;You tell me - how is this NOT true?&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/dpVll/~4/mQIxFAA2tWU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thepileof.blogspot.com/feeds/8638876070865041706/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://thepileof.blogspot.com/2013/04/an-opinion-on-butterfly-labs.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default/8638876070865041706?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default/8638876070865041706?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/dpVll/~3/mQIxFAA2tWU/an-opinion-on-butterfly-labs.html" title="An Opinion on Butterfly Labs" /><author><name>Jeremy Collake</name><uri>https://plus.google.com/110469164034872408057</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-NAxZHj7bd1Y/AAAAAAAAAAI/AAAAAAAAdjk/5T8s66_RBi8/s512-c/photo.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://thepileof.blogspot.com/2013/04/an-opinion-on-butterfly-labs.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0UAQXo5fyp7ImA9WhBVGE8.&quot;"><id>tag:blogger.com,1999:blog-5605857505516531350.post-8202717811418887870</id><published>2013-04-14T23:29:00.004-07:00</published><updated>2013-04-24T11:47:20.427-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-04-24T11:47:20.427-07:00</app:edited><title>Binary Interleaving: A technique to obfuscate data structures</title><content type="html">Binary Interleaving (or Data Interleaving) is a term I made up to reflect an idea I've been contemplating lately; interleaving the bits of a set of variables into a single binary blob. Any number and types of variables could be interleaved together. Access to variables in the interleaved blob can even be on-demand, with a controller class encoding or decoding variables on the fly.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
What in the World?&lt;/h3&gt;
&lt;br /&gt;
Data Interleaving is the process of translating any number of variables to a single binary blob by interleaving the bits of the variables. This obfuscates the variables in memory or external storage. The entire blob need not be decoded to access member variables, though it can be for improved performance.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Why?&amp;nbsp;&lt;/h3&gt;
&lt;br /&gt;
This will help complicate reverse engineering of code. It will particularly deter identifying data types and variables. Plaintext is also well obfuscated with this interleave.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Interleave Map&lt;/h3&gt;
&lt;br /&gt;
The variables to be encoded could be defined by an array of byte sizes of those variables and, optionally, pointers to a location in memory to retrieve or store their reconstituted form. In the case of on-demand access to an interleaved blob, individual variables can be decoded and re-encoded on the fly, so buffers for reconstituted storage are optional (though they may be temporarily reconstituted by the controller class as members are modified).&lt;br /&gt;
&lt;br /&gt;
The members of the bitwise interleave can be referenced in the source code via their indices. For instance, index 0 may be MY_VARIABLE_INSTANCE. By passing the variable index to an interleave blob controller class, it knows the size and, optionally, a pointer for constituted storage.&lt;br /&gt;
&lt;br /&gt;
Member data types can be anything. They need not be similar. When one variable ends, it is simply ended. See a few paragraphs below for what happens when a single variable is longer than the others.&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;span style="font-family: Courier New, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; /* member information */&lt;br /&gt;&amp;nbsp; &amp;nbsp; /* optional pointer to its normal, constituted storage location */&lt;br /&gt;&amp;nbsp; &amp;nbsp; /* &amp;nbsp;(for use in encoding and decoding the member) */&lt;br /&gt;&amp;nbsp; &amp;nbsp; /* and the size of the member */&lt;br /&gt;&amp;nbsp; &amp;nbsp; class CInterleaveMember&lt;br /&gt;&amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; void *pvConstitutedStore;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; unsigned long nMemberByteSize;&lt;br /&gt;&amp;nbsp; &amp;nbsp; };&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; /* INTERLEAVE MAP */&lt;br /&gt;&amp;nbsp; &amp;nbsp; CInterleaveMember aInterleaveMap[]&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; { szSomeString, sizeof(szSomeString) },&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; { &amp;amp;nIntegerMan, sizeof(nIntegerMan) },&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; { &amp;amp;cMyClass , sizeof(cMyClass) };&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; void *pBLOB; &amp;nbsp;/* interleaved data stored in a allocated blob */&lt;/span&gt;&lt;/blockquote&gt;
The total size of the blob need not be stored, as it is the sum of all member sizes in the interleave map. The interleave map provides everything we need to know.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
The Process&lt;/h3&gt;
&lt;br /&gt;
In case it is not clear, the process for the interleave would go something like this: The array of members is 'walked', putting or getting the current bit index from each member variable, advancing to the next bit index after the entire array has been walked. When a member variable is full of bits (exhausted), it is skipped in subsequent interleave iterations (more on long vars later).&lt;br /&gt;
&lt;br /&gt;
For simplicity, let me define a few variables in bits only (not matching above):&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;span style="font-family: Courier New, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; szSomeString 0 1 1 1 0 0 1 0&lt;br /&gt;&amp;nbsp; &amp;nbsp; nIntegerMan &amp;nbsp;1 1 1 0 0 0 1 1 1 0 0 1 0 0 0 1&lt;br /&gt;&amp;nbsp; &amp;nbsp; cMyClass &amp;nbsp; &amp;nbsp; 0 0 0 1&lt;/span&gt;&lt;/blockquote&gt;
&lt;br /&gt;
For the interleave, a bit is taken from each variable in succession.&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;span style="font-family: Courier New, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; First iteration of the interleave, get first bit from each ...&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;0 1 0&lt;br /&gt;&amp;nbsp; &amp;nbsp; Next iteration(s), get the next bit from each ...&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;0 1 0 1 1 0&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;0 1 0 1 1 0 1 1 0&lt;/span&gt;&lt;/blockquote&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;...&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
When a Member is Longer than the Others&lt;/h3&gt;
&lt;br /&gt;
In the case where one variable is much longer than the others, thus having no pair to encode with, one could use a simple XOR, and/or toss in redundant, unused data from the prior members. Any number of strategies are possible to prevent plaintext storage in the case of an abnormally long variable not having an interleave partner for its ending bits.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Sample Code&lt;/h3&gt;
&lt;br /&gt;
For example, the following represents a high-level view of the calls to a fictional class facilitating Binary Interleaving:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;span style="font-family: Courier New, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; /* PROTECTED VARIABLES */&lt;br /&gt;&amp;nbsp; &amp;nbsp; /* These get stored in an bitwise interleave in the binary blob */&lt;br /&gt;&amp;nbsp; &amp;nbsp; char szSomeString = "Is there anybody out there?";&lt;br /&gt;&amp;nbsp; &amp;nbsp; unsigned long nIntegerMan = 0x9090;&lt;br /&gt;&amp;nbsp; &amp;nbsp; MyClass cMyClass("whoopie");&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; class CInterleaveMember&lt;br /&gt;&amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; void *pvConstitutedStore;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; unsigned long nMemberByteSize;&lt;br /&gt;&amp;nbsp; &amp;nbsp; };&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; /* INTERLEAVE MAP */&lt;br /&gt;&amp;nbsp; &amp;nbsp; CInterleaveMember aInterleaveMap[]&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; { szSomeString, sizeof(szSomeString) },&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; { &amp;amp;nIntegerMan, sizeof(nIntegerMan) },&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; { &amp;amp;cMyClass , sizeof(cMyClass) };&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; /* NOTE: Total blob size is the of members of Interleave Map */&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; /* INTERLEAVE REFS */&lt;br /&gt;&amp;nbsp; &amp;nbsp; typedef enum&lt;br /&gt;&amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; _szSomeString=0,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; _nIntegerMan,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; _cMyClass,&lt;br /&gt;&amp;nbsp; &amp;nbsp; } InterleavedVariables;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; void *pBinaryBlob; &amp;nbsp;/* dynamically allocated blob storage */&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; /* Fictional class constructor, passing the interleave map to it */&lt;br /&gt;&amp;nbsp; &amp;nbsp; /* From the interleave map, it can calculate the total blob size */&lt;br /&gt;&amp;nbsp; &amp;nbsp; /* then dynamically allocate storage for the blob. */&lt;br /&gt;&amp;nbsp; &amp;nbsp; CBitInterleaver cBitInterleave(aInterleaveMap);&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; /* If the blob is externally loaded, or needs ext stored, we */&lt;br /&gt;&amp;nbsp; &amp;nbsp; /* may need to get access to the blob buffer. Fictional example: */&lt;br /&gt;&amp;nbsp; &amp;nbsp; /* We know the blob size from map! The input size is for safety. */&lt;br /&gt;&amp;nbsp; &amp;nbsp; cBitInterleave.SetBlob(pIncomingBlob, nSrcBufferSize); &lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; /* Or we can get the blob */&lt;br /&gt;&amp;nbsp; &amp;nbsp; nBlobSize=cBitInterleave.GetBlob(ppOutgoingBlob);&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; /* Example to encode or decode the entire blob to constituted */&lt;br /&gt;&amp;nbsp; &amp;nbsp; /* storage. We already provided the map, and it decodes or encode*/&lt;br /&gt;&amp;nbsp; &amp;nbsp; /* to the listed pointers.&lt;br /&gt;&amp;nbsp; &amp;nbsp; cBitInterleave.EncodeBlob();&lt;br /&gt;&amp;nbsp; &amp;nbsp; cBitInterleave.DecodeBlob();&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; /* Example call to decode a member of the array */&lt;br /&gt;&amp;nbsp; &amp;nbsp; /* We pass it the INDEX into the MAP, and dest buffer */&lt;br /&gt;&amp;nbsp; &amp;nbsp; /* From the Index of _nIntegerman, we ALREADY know the size */&lt;br /&gt;&amp;nbsp; &amp;nbsp; /* The out size is for safety. */&lt;br /&gt;&amp;nbsp; &amp;nbsp; cBitInterleave.GetVariable(_nIntegerMan, &amp;amp;nIntegerMan, sizeof(nIntegerMan));&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; /* OR we can use the default storage address in interleave map */ &amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; cBitInterleave.GetVariable(_nIntegerMan);&lt;br /&gt;&amp;nbsp; &amp;nbsp; /* Example call to encode a member of the array */&lt;br /&gt;&amp;nbsp; &amp;nbsp; /* We pass it the INDEX into the MAP, and input reference */&lt;br /&gt;&amp;nbsp; &amp;nbsp; cBitInterleave.SetVariable(_szSomeString, &amp;amp;szSomeString, sizeof(szSomeString));&lt;/span&gt;&lt;/blockquote&gt;
&lt;br /&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/dpVll/~4/9oR9FaUytFI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thepileof.blogspot.com/feeds/8202717811418887870/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://thepileof.blogspot.com/2013/04/binary-interleaving-technique-to.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default/8202717811418887870?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default/8202717811418887870?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/dpVll/~3/9oR9FaUytFI/binary-interleaving-technique-to.html" title="Binary Interleaving: A technique to obfuscate data structures" /><author><name>Jeremy Collake</name><uri>https://plus.google.com/110469164034872408057</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-NAxZHj7bd1Y/AAAAAAAAAAI/AAAAAAAAdjk/5T8s66_RBi8/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://thepileof.blogspot.com/2013/04/binary-interleaving-technique-to.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkQNSHc9fip7ImA9WhBWEUw.&quot;"><id>tag:blogger.com,1999:blog-5605857505516531350.post-5846060388031435181</id><published>2013-04-04T15:25:00.006-07:00</published><updated>2013-04-04T15:26:39.966-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-04-04T15:26:39.966-07:00</app:edited><title>Feedly and RSS Subscription Extension</title><content type="html">If you use the RSS Subscription Extension for Chrome and want Feedly support, here's how. As some may know, this extension adds a feed icon to any page that offers up RSS feeds. This allows you to easily click to subscribe.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-fEtG9Uj9sb8/UV39Mfh2UXI/AAAAAAAAfgs/Gh_R7nd0L_k/s1600/chrome_rss_extension_feedly.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="109" src="http://3.bp.blogspot.com/-fEtG9Uj9sb8/UV39Mfh2UXI/AAAAAAAAfgs/Gh_R7nd0L_k/s400/chrome_rss_extension_feedly.PNG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
When you click on the icon, there is a drop-down list of available news readers. Right now, only a couple are listed, after the announced death of Google Reader. You can, however, add a new one. To do this, you'll simply need the URL that is used to add feeds to the reader. Chrome inserts the RSS feed URL via a variable replacement (%s). If you don't see this list, you may have selected a default reader, and can access the list via the Options for this extension.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-KnozIOJVMDA/UV39mY9_cMI/AAAAAAAAfg0/zD6_Gn6K_vU/s1600/rss_feed_options.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="191" src="http://2.bp.blogspot.com/-KnozIOJVMDA/UV39mY9_cMI/AAAAAAAAfg0/zD6_Gn6K_vU/s400/rss_feed_options.PNG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
The URL you need is:&lt;br /&gt;
&lt;h4&gt;
&lt;span style="background-color: #ffffdd; line-height: 15px;"&gt;&lt;span style="color: #414142; font-family: Courier New, Courier, monospace; font-size: x-small;"&gt;&lt;b&gt;http://www.feedly.com/home#subscription/feed/%s[action.subscribe&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;br /&gt;
Just paste it in when you click 'Add', and name the reader whatever (e.g. feedly). From that point forward, you have easy access to RSS feeds.&lt;img src="http://feeds.feedburner.com/~r/blogspot/dpVll/~4/FYuksd3MOfo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thepileof.blogspot.com/feeds/5846060388031435181/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://thepileof.blogspot.com/2013/04/feedly-and-rss-subscription-extension.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default/5846060388031435181?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default/5846060388031435181?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/dpVll/~3/FYuksd3MOfo/feedly-and-rss-subscription-extension.html" title="Feedly and RSS Subscription Extension" /><author><name>Jeremy Collake</name><uri>https://plus.google.com/110469164034872408057</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-NAxZHj7bd1Y/AAAAAAAAAAI/AAAAAAAAdjk/5T8s66_RBi8/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-fEtG9Uj9sb8/UV39Mfh2UXI/AAAAAAAAfgs/Gh_R7nd0L_k/s72-c/chrome_rss_extension_feedly.PNG" height="72" width="72" /><thr:total>3</thr:total><feedburner:origLink>http://thepileof.blogspot.com/2013/04/feedly-and-rss-subscription-extension.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkEESX06cSp7ImA9WhBWEE4.&quot;"><id>tag:blogger.com,1999:blog-5605857505516531350.post-347928086871740308</id><published>2013-04-03T17:12:00.001-07:00</published><updated>2013-04-03T17:16:48.319-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-04-03T17:16:48.319-07:00</app:edited><title>Apache mod_qos Server Status</title><content type="html">For those that haven't seen mod_qos's server_status page, it's pretty nifty, and allows for some operations right there on the Apache server-status page! This page is, of course, accessible over HTTP at /server-status. for Apache servers where it has not been disabled, and you have access. For instance, http://127.0.0.1/server-status&lt;br /&gt;
&lt;br /&gt;
It is a shame that mod_qos has not been ported to Apache 2.4 yet. I am not sure what blockers exist, or if it has been deprecated in its entirety. Perhaps a reader will know...&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-PWvd0w7M7TI/UVzFuTfHGvI/AAAAAAAAfgc/MuopI9cL42c/s1600/mod_qos_server_status.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-PWvd0w7M7TI/UVzFuTfHGvI/AAAAAAAAfgc/MuopI9cL42c/s1600/mod_qos_server_status.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/dpVll/~4/3qXyVpP7I9o" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thepileof.blogspot.com/feeds/347928086871740308/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://thepileof.blogspot.com/2013/04/apache-modqos-server-status.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default/347928086871740308?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default/347928086871740308?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/dpVll/~3/3qXyVpP7I9o/apache-modqos-server-status.html" title="Apache mod_qos Server Status" /><author><name>Jeremy Collake</name><uri>https://plus.google.com/110469164034872408057</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-NAxZHj7bd1Y/AAAAAAAAAAI/AAAAAAAAdjk/5T8s66_RBi8/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-PWvd0w7M7TI/UVzFuTfHGvI/AAAAAAAAfgc/MuopI9cL42c/s72-c/mod_qos_server_status.PNG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://thepileof.blogspot.com/2013/04/apache-modqos-server-status.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUAER3c5fip7ImA9WhBXF0o.&quot;"><id>tag:blogger.com,1999:blog-5605857505516531350.post-1019205726615439889</id><published>2013-03-31T17:55:00.000-07:00</published><updated>2013-03-31T17:55:06.926-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-03-31T17:55:06.926-07:00</app:edited><title>Google Analytics April Fool's - Visits from the International Space Station</title><content type="html">&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;The Google&amp;nbsp;Analytics&amp;nbsp;team has pumped out an April Fool's joke already. They are showing prominently in the center of Google Analytics Real-Time View the&amp;nbsp;&lt;/span&gt;&lt;b style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;International Space Station Control Room&lt;/b&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;. See attached picture. When you check the page the visitor(s) are supposedly hitting, it is&amp;nbsp;&lt;/span&gt;&lt;i style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;April Fool's&lt;/i&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-F_yoXbdVlko/UVja4jwgJqI/AAAAAAAAfeg/CrmfmYddgso/s1600/iss_visits_bitsum.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-F_yoXbdVlko/UVja4jwgJqI/AAAAAAAAfeg/CrmfmYddgso/s1600/iss_visits_bitsum.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/dpVll/~4/p5h4A3kKg0Q" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thepileof.blogspot.com/feeds/1019205726615439889/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://thepileof.blogspot.com/2013/03/google-analytics-april-fools-visits.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default/1019205726615439889?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default/1019205726615439889?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/dpVll/~3/p5h4A3kKg0Q/google-analytics-april-fools-visits.html" title="Google Analytics April Fool's - Visits from the International Space Station" /><author><name>Jeremy Collake</name><uri>https://plus.google.com/110469164034872408057</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-NAxZHj7bd1Y/AAAAAAAAAAI/AAAAAAAAdjk/5T8s66_RBi8/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-F_yoXbdVlko/UVja4jwgJqI/AAAAAAAAfeg/CrmfmYddgso/s72-c/iss_visits_bitsum.png" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://thepileof.blogspot.com/2013/03/google-analytics-april-fools-visits.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkYFQnY7eyp7ImA9WhBXFU8.&quot;"><id>tag:blogger.com,1999:blog-5605857505516531350.post-6087284577897355299</id><published>2013-03-23T12:09:00.003-07:00</published><updated>2013-03-28T19:28:33.803-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-03-28T19:28:33.803-07:00</app:edited><title>The Abysmal State of Security Software</title><content type="html">Security software,&amp;nbsp;specifically&amp;nbsp;anti-virus and anti-malware software, has been a staple in the Windows world since Windows 95. Users are told they need this software to keep them safe, or else they're in for a world of hurt. In this post, I'll take a minute to tell the real story and reveal why your security may make you considerably LESS safe!&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;h3&gt;
&lt;b&gt;Security software rarely detects new or targeted threats&lt;/b&gt;&lt;/h3&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
Sadly, the virus and malware authors are always one step ahead of security industry. These rogue programmers use the same software you do, and actively work to make sure they have defeated it. Since differentiating new malware from legitimate applications is nearly impossible, new malware usually slides right through the detection net. After all, if security software worked great, a lot fewer cases of malware infestation would exist!&lt;br /&gt;
&lt;br /&gt;
But wait, you say, what about those 99% detection rate claims? Well, they are testing against samples already known to the security industry. I would certainly hope they have a good detection rate when it comes to those! For unknown , new, or&amp;nbsp;targeted&amp;nbsp;malware, which is regenerated daily, and the only kinds you are likely to encounter, the detection rate is much lower.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
&lt;b&gt;Security software is prone to false positives&lt;/b&gt;&lt;/h3&gt;
&lt;br /&gt;
&lt;div&gt;
In the effort to try to detect new, unknown, or targeted malware, some security products are well known to alert on just about everything, including lots of legitimate applications, especially those from smaller developers. As a small developer myself, I find this highly frustrating. I sign my applications, make sure they don't do anything that looks shady, and generally do all I can to avoid false positives, but still they occur so routinely they are to be expected.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
It isn't just small developers that are affected though, false positives occur on all sorts of software. One&lt;a href="http://www.theregister.co.uk/2010/04/21/mcafee_false_positive/"&gt; false positive&lt;/a&gt;&amp;nbsp;a few years ago, on svchost.exe, a critical part of Windows, had a catastrophic effect on countless PCs worldwide.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Worst is that the new web site rating services that security products now offer can take a single false positive and turn it into a badly rated domain. Getting these false positives or web site ratings fixed can be very difficult and time consuming. Some security companies are responsive, others much less so! I had one invalid site rating from a major security provider, which happened due to a false positive, last weeks, and then recur 4 times before they finally fixed it. I nearly lost my mind.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
Better to have false positives than missed detections, you say? Well, unfortunately, it doesn't work that way. The malware authors work to avoid detection, so are somewhat less vulnerable to false positives. Further, users get so used to seeing false positives, they may very well quit taking detections seriously!&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
&lt;b&gt;Security software companies often distribute malware themselves&lt;br /&gt;(installer bundles)&lt;/b&gt;&lt;/h3&gt;
&lt;br /&gt;
Since I consider installer bundles malware, it is painful to see security companies using installer bundles. We've all seen these bundles. You download application X, and are presented with deceptively packaged offers for applications Y and Z. The user's intent was only to install application X, so it is a clear violation of the user's wishes.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
It is extremely easy to accidentally get one of these bundled components installed. Since all parties involved make money per install, they have gotten more and more deceptive. Download sites like CNET now even attach their own bundles to downloads.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The most common bundles are toolbars and other web browser add-ons. They clutter up your PC and web browser, bringing performance down. Some are difficult to disable, and almost all behave in deceptive ways. This massive browser add-on problem got so bad, with some users ending up with an unreal number of browser add-ons, Microsoft had to start disabling all of them by default in Internet Explorer, forcing users to selectively choose which are enabled.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Sadly, the entire software industry seems to have adopted these bundles. While it would be nice for security software to detect these as malware, instead security software companies are themselves using installer bindes! They distribute free scanners, web site rating tools, and other 'teaser' components with common applications. One example is McAfee bundling its teaser products with Java!&lt;br /&gt;
&lt;br /&gt;
I wish I could say there was ANY security company out there detecting installer bundles as malware, but there aren't. Instead, I can't think of one that does NOT use installer bundles.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
&lt;b&gt;Security software companies have a hard time deciding what is malware&lt;/b&gt;&lt;/h3&gt;
&lt;br /&gt;
Similar to not detecting deceitful installer bundles as malware, security companies have a hard time deciding what is malware, and what is just a deceitful application. They've even been sued. These days, rogue software companies simply push it up to the limit of being considered malware, and get away with virtual murder. Their borderline applications not only aren't detected, but the distributing web sites are often certified by security companies as safe, a service you can pay for at most security software companies.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Given that rogue software of all types gets away intentionally undetected, the utility of anti-malware products goes down even further.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
&lt;b&gt;Security software offers a false sense of security&lt;/b&gt;&lt;/h3&gt;
&lt;br /&gt;
Given all this, we see that security software isn't very useful. However, it really becomes harmful when users believe they are protected from threats. This may leave them to act more wrecklessly, under the false notion that their security software is protecting them. It seems preferable to remove this illusion of security, and instead have users realize that their safety is in their own hands. User education and common sense is much more effective than any security software!&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
&lt;b&gt;Conclusion&lt;/b&gt;&lt;/h3&gt;
&lt;br /&gt;
If slowing your PC down considerably wasn't bad enough, we now see that the actual utility of security software is quite questionable, as are the practices of many of these companies when it comes to rogue installer bundles. They are unlikely to detect any real threats, likely to let rogue borderline applications skate by, and give users a false sense of security. I'd say, toss away the illusion, and start realizing that nothing can protect you except your own judiciousness!&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
-- End --&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;i&gt;appendum #1&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;
Although you won't see it until something is detected, did you know that Microsoft Security Essentials is now part of Windows Defender, and built into Windows 8? Yes, that's right, you need NOT install any third-party security software! Windows Defender is arguably the best option people have right now, as it has a low false positive rate, is efficient, and not obtrusive. In fact, most people have no idea it is there! Further, Microsoft doesn't use installer bundles, as far as I know.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;i&gt;appendum #2&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;
I believe in the long-term, we'll move to entirely store/approved applications, which will allow tracking and rating by vendor history. The problem is, the definition of malware does not include 'boderline' applications that are just plain deceitful, thus we'll always have crapware! Until corporations start acting with more moral fiber, things will continue to be much the same.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/blogspot/dpVll/~4/DFi67vh3C8Y" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thepileof.blogspot.com/feeds/6087284577897355299/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://thepileof.blogspot.com/2013/03/the-abysmal-state-of-security-software.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default/6087284577897355299?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default/6087284577897355299?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/dpVll/~3/DFi67vh3C8Y/the-abysmal-state-of-security-software.html" title="The Abysmal State of Security Software" /><author><name>Jeremy Collake</name><uri>https://plus.google.com/110469164034872408057</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-NAxZHj7bd1Y/AAAAAAAAAAI/AAAAAAAAdjk/5T8s66_RBi8/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://thepileof.blogspot.com/2013/03/the-abysmal-state-of-security-software.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MBR3w4fCp7ImA9WhNbEEs.&quot;"><id>tag:blogger.com,1999:blog-5605857505516531350.post-4009788198393164226</id><published>2013-01-07T00:29:00.001-08:00</published><updated>2013-01-12T23:17:36.234-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-01-12T23:17:36.234-08:00</app:edited><title>The Software Review Business or Pay or Get Bad Reviews?</title><content type="html">&lt;h2&gt;
The Software Review Business&lt;br /&gt;or Pay or Get Bad Reviews?&lt;/h2&gt;
I received an email (then two more telling me to 'think about it' and 'think more about it') ... What follows is what I believe a pretty clear extortion attempt, only thinly veiled.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;blockquote class="bbc_standard_quote" style="background-color: #d7daec; background-image: url(http://bitsum.com/forum/Themes/default/images/theme/quote.png); background-position: 0.1em 0.1em; background-repeat: no-repeat no-repeat; border-bottom-color: rgb(153, 153, 170); border-bottom-style: solid; border-bottom-width: 2px; border-top-color: rgb(153, 153, 170); border-top-style: solid; border-top-width: 2px; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: x-small; line-height: 1.4em; margin: 0.1em 0px 0.3em; overflow: auto; padding: 1.1em 1.4em;"&gt;
Currently i no longer post to GOTD. (Persona non grata) and normally i would not&lt;br /&gt;
directly contact a vendor (tho, i'm considering changing this - i may start selling my&lt;br /&gt;
opinions/advice...)&amp;nbsp; but in your case i'm going to make the effort. ((Half for "free" and&lt;br /&gt;
the other 'half' will cost you a thousand dollars - but don't fret i don't even have my&lt;br /&gt;
PayPal set up yet...))&lt;br /&gt;
&lt;br /&gt;
free half:&lt;br /&gt;
&lt;br /&gt;
After several disappointing things i have removed your product. After several&lt;br /&gt;
unacceptable things i have posted this email. The next time you present on GOTD i&lt;br /&gt;
will make every effort to dissuade others from installing your product.&lt;br /&gt;
(ps btw: these are valid complaints that would warrant attention from a&lt;br /&gt;
concerned vendor - need i say less?)&lt;br /&gt;
&lt;br /&gt;
paid half:&lt;br /&gt;
&lt;br /&gt;
(will be sent upon receipt of payment.)&lt;/blockquote&gt;
&lt;div class="quotefooter" style="background-color: #e7eaef; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 17.46666717529297px;"&gt;
&lt;div class="botslice_quote"&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;span style="font-family: Verdana, Arial, Helvetica, sans-serif;"&gt;&lt;span style="font-size: 12px; line-height: 17.46666717529297px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style="font-family: Verdana, Arial, Helvetica, sans-serif;"&gt;&lt;span style="font-size: 12px; line-height: 17.46666717529297px;"&gt;This is my personal interpretation of this email. I do not claim that I am correct in this interpretation. Judge for yourself. Fortunately I'm too broke to be extorted, so the decision is pretty easy. I thank all those who help defend my software against attacks like this. Now we know that software reviews have turned into a business.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, Arial, Helvetica, sans-serif;"&gt;&lt;span style="font-size: 12px; line-height: 17.46666717529297px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style="font-family: Verdana, Arial, Helvetica, sans-serif;"&gt;&lt;span style="font-size: 12px; line-height: 17.46666717529297px;"&gt;If someone is extorting negative reviews, they are surely selling positive reviews! That makes this the latest online business of manipulation.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, Arial, Helvetica, sans-serif;"&gt;&lt;span style="font-size: 12px; line-height: 17.46666717529297px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style="font-family: Verdana, Arial, Helvetica, sans-serif;"&gt;&lt;span style="font-size: 12px; line-height: 17.46666717529297px;"&gt;I long ago proposed that download sites use more means to verify posters, ala Angie's List. Let's hope they do. I'm all for real reviews, even if they aren't all flattering.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/blogspot/dpVll/~4/4wIRGMpscqs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thepileof.blogspot.com/feeds/4009788198393164226/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://thepileof.blogspot.com/2013/01/software-reviews-latest-online-business.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default/4009788198393164226?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default/4009788198393164226?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/dpVll/~3/4wIRGMpscqs/software-reviews-latest-online-business.html" title="The Software Review Business or Pay or Get Bad Reviews?" /><author><name>Jeremy Collake</name><uri>https://plus.google.com/110469164034872408057</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-NAxZHj7bd1Y/AAAAAAAAAAI/AAAAAAAAdjk/5T8s66_RBi8/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://thepileof.blogspot.com/2013/01/software-reviews-latest-online-business.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE4NQ3c4fSp7ImA9WhNUEE4.&quot;"><id>tag:blogger.com,1999:blog-5605857505516531350.post-5489747586225924358</id><published>2012-11-23T01:37:00.008-08:00</published><updated>2013-01-01T01:36:32.935-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-01-01T01:36:32.935-08:00</app:edited><title>Why Windows is akin to the wild, wild west</title><content type="html">One of the problems as a Windows developer is that Windows violates many core principles of a protected mode Operating System. Namely, that applications should be isolated from one another. The ease of DLL injection via shell hooks is simply absurd, as is users running with administrative rights. Although UAC helped a little with the latter, it didn't do much since any software installation requires elevated rights. During installation, whatever happens, happens ...&lt;br /&gt;
&lt;br /&gt;
Now, this wouldn't be a problem if there wasn't so much crap out there. There are two issues. One is poorly written applications that map themselves into other processes, causing problems throughout the system, sometimes quite randomly, or sometimes very selectively.&lt;br /&gt;
&lt;br /&gt;
The other issue is malware or other unwanted applications like pay-per-install toolbars. These things get bundled up with software that is often free and open source. Download sites then pay for advertisements and fight for search engine rankings. It is legal for them to do this with free and open source software, regardless of what the author wishes (depending on the license). For commercial software, the vendor can at least protest. Of course, since a certain otherwise well respected download site set the precedent for allowing bundles, or download managers, this has become more common than ever, and something that can only be expected from most download sites that host their own files. The few exceptions out there are gems and we'll have to hope they don't give in to the financial temptation.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-P4kj9QtaYIg/UK9Hl-32mlI/AAAAAAAAcK0/dhnHVpkJjYY/s1600/paintdotnetsample.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-P4kj9QtaYIg/UK9Hl-32mlI/AAAAAAAAcK0/dhnHVpkJjYY/s1600/paintdotnetsample.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
So, we end up with an environment which is absolute chaos. Any PC that gets anything installed, or used for that matter, is going to likely end up, over time, in a state of severe degradation, if not being totally compromised from a security standpoint (0wned ;p). Since malware, once installed, can hide its presence completely from any scanners while the OS is booted, your security software won't do much after the fact, and usually doesn't do much before the fact. In fact, &lt;a href="http://falsepositivereport.org/"&gt;false positives&lt;/a&gt; are a huge problem because they are trying so hard to find some way to determine what bad software even looks like. There is no pattern to it, as there was with viruses.&lt;br /&gt;
&lt;br /&gt;
This may change, to some degree, with Windows 8 and the new Microsoft App Store, assuming it takes off. Though these stores have proven to be highly exploited as well, since it is difficult for them to define what a 'bad' application is, and therefore you end up with shady vendors operating in every shade of grey they can. Microsoft does at least seem to be taking the vendor verification process seriously, as we at &lt;a href="http://bitsum.com/"&gt;Bitsum&lt;/a&gt; had to undergo pretty strict integrity checks.&lt;br /&gt;
&lt;br /&gt;
Oh well ... that's just how it is.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;UPDATE:&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
Do remember that a more strict application ecosystem does mean a lessening of freedom. Just like some vendors are now locking the OS on the device, applications you might want to use that aren't&amp;nbsp;certified&amp;nbsp;won't be available!&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/dpVll/~4/vF9hi4fMWZ4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thepileof.blogspot.com/feeds/5489747586225924358/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://thepileof.blogspot.com/2012/11/why-windows-is-akin-to-wild-wild-west.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default/5489747586225924358?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default/5489747586225924358?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/dpVll/~3/vF9hi4fMWZ4/why-windows-is-akin-to-wild-wild-west.html" title="Why Windows is akin to the wild, wild west" /><author><name>Jeremy Collake</name><uri>https://plus.google.com/110469164034872408057</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-NAxZHj7bd1Y/AAAAAAAAAAI/AAAAAAAAdjk/5T8s66_RBi8/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-P4kj9QtaYIg/UK9Hl-32mlI/AAAAAAAAcK0/dhnHVpkJjYY/s72-c/paintdotnetsample.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://thepileof.blogspot.com/2012/11/why-windows-is-akin-to-wild-wild-west.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkMHRXs_eSp7ImA9WhBXFU0.&quot;"><id>tag:blogger.com,1999:blog-5605857505516531350.post-2785196597423518623</id><published>2012-10-24T23:33:00.002-07:00</published><updated>2013-03-28T14:00:34.541-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-03-28T14:00:34.541-07:00</app:edited><title>Bug discovered in Windows 8/2012 Taskbar (traditional shell / UI)</title><content type="html">There is a bug with the Windows 8 Taskbar in that it refuses to refresh at all until a swap to Metro is done. At that time it will do a one time refresh. It stays persistently frozen and/or out of sync, including the clock, running application window icons, and the system tray. Context menus show the wrong items, indicating that Windows know what the Taskbar should look like. This suggests it is some sort of display problem.&lt;br /&gt;
&lt;br /&gt;
Interestingly, when I installed StartIsBack (http://startisback.com) to restore the Windows Start Menu in the most authentic (and simple) way possible, it seemed to immediately fix this on a system that had been experiencing a frozen task bar at the time (clock frozen until Windows key hit, etc..). I will report if this is a long term work-around in time.&lt;img src="http://feeds.feedburner.com/~r/blogspot/dpVll/~4/Z_GlEIqF_pw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thepileof.blogspot.com/feeds/2785196597423518623/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://thepileof.blogspot.com/2012/10/bug-discovered-in-windows-82012-system.html#comment-form" title="9 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default/2785196597423518623?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default/2785196597423518623?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/dpVll/~3/Z_GlEIqF_pw/bug-discovered-in-windows-82012-system.html" title="Bug discovered in Windows 8/2012 Taskbar (traditional shell / UI)" /><author><name>Jeremy Collake</name><uri>https://plus.google.com/110469164034872408057</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-NAxZHj7bd1Y/AAAAAAAAAAI/AAAAAAAAdjk/5T8s66_RBi8/s512-c/photo.jpg" /></author><thr:total>9</thr:total><feedburner:origLink>http://thepileof.blogspot.com/2012/10/bug-discovered-in-windows-82012-system.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0QCR3wyeCp7ImA9WhJaFEU.&quot;"><id>tag:blogger.com,1999:blog-5605857505516531350.post-6528082762740865456</id><published>2012-10-04T23:10:00.000-07:00</published><updated>2012-10-05T16:56:06.290-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-10-05T16:56:06.290-07:00</app:edited><title>The return of native code Windows apps</title><content type="html">&lt;span style="background-color: white; font-family: inherit;"&gt;Microsoft has been strongly encouraging the use of C++, native code, and even use of C++ for managed code. It seems they are poised to push C++ ahead of C#, perhaps because they know they need more efficient code for low-power mobile devices. Anyone who would say that C++ is a language past its prime has no idea what they are talking about, that's for sure. Despite the fact that all popular modern OSes are written in C or C++, application developers continue to favor C++, as do users.&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white; font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="background-color: white; font-family: inherit;"&gt;The good news? These days we have what I like to call self-managed, unmanaged code. That is, unmanaged &amp;nbsp;(native) code that watches itself so closely that it performs like its own CLR manager, preventing errors and cleaning up any leftover debris (or at least notifying the developer of the condition). The basic CRT has even gotten more sophisticated, and secure. Take C++/CX for instance...&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white; font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="line-height: 18px;"&gt;Here's a recent article on developing native C++ applications for Metro/Modern UI using XAML and native/unmanaged C++/CX style code:&amp;nbsp;&lt;/span&gt;&lt;span style="line-height: 18px;"&gt;&lt;a href="http://msdn.microsoft.com/library/windows/apps/hh465045.aspx"&gt;http://msdn.microsoft.com/library/windows/apps/hh465045.aspx&lt;/a&gt;&lt;/span&gt;&lt;span style="line-height: 18px;"&gt;&amp;nbsp;.. C++/CX being the latest thing (essentially C++/CLI syntax that compiles to native code). Clearly they are thinking they need native apps .. I figure it is for the low-power devices and the realization that some applications will need maximal performance. Otherwise, C# would be the thing to push, as for managed code development, it is much easier.﻿&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white; font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="background-color: white; font-family: inherit;"&gt;Other examples of the switch to unmanaged code can be seen in a variety of Microsoft applications (e.g. Microsoft Security Essentials, now Windows Defender), and those of other large corporations. AMD, for instance, switched the Catalyst drivers FROM .NET to native code several years ago.&lt;/span&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/dpVll/~4/zlCiMHx6wbU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thepileof.blogspot.com/feeds/6528082762740865456/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://thepileof.blogspot.com/2012/10/the-return-of-native-code-windows-apps.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default/6528082762740865456?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default/6528082762740865456?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/dpVll/~3/zlCiMHx6wbU/the-return-of-native-code-windows-apps.html" title="The return of native code Windows apps" /><author><name>Jeremy Collake</name><uri>https://plus.google.com/110469164034872408057</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-NAxZHj7bd1Y/AAAAAAAAAAI/AAAAAAAAdjk/5T8s66_RBi8/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://thepileof.blogspot.com/2012/10/the-return-of-native-code-windows-apps.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEIDR3s5eCp7ImA9WhJaE0U.&quot;"><id>tag:blogger.com,1999:blog-5605857505516531350.post-1740886317930799347</id><published>2012-10-03T17:35:00.003-07:00</published><updated>2012-10-04T13:29:36.520-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-10-04T13:29:36.520-07:00</app:edited><title>Recommending Open Hardware Monitor</title><content type="html">While looking for an alternative to certain basic system monitoring software that has become 'infested', I found &lt;a href="http://openhardwaremonitor.org/"&gt;Open Hardware Monitor&lt;/a&gt;&amp;nbsp;. It is written in C#, thus utilizing the .NET CLR. It also works under Linux /w MONO installed. Even better, it is open source! Pretty cool! We've seen such efforts fail before though ...&lt;br /&gt;
&lt;div&gt;
&lt;blockquote class="tr_bq"&gt;
K&lt;i&gt;&lt;b&gt;eep the project open to the community and *nobody* benefiting from the mere existence of the application!&lt;/b&gt;&lt;/i&gt;&lt;/blockquote&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://openhardwaremonitor.org/wordpress/wp-content/uploads/2011/04/screenshot1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://openhardwaremonitor.org/wordpress/wp-content/uploads/2011/04/screenshot1.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
The only problems are in this project's future. It is sure to be the 'new thing' to monitor your system with. Now, what have we learned from previous system monitoring utilities?&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;The authors are likely broke because they are author freeware, thus are targets for the commercial 'sharks'.&lt;/li&gt;
&lt;li&gt;Little by little, the author(s) sell their soul, with advertisements, then 'bundles', then more and more bundles.&lt;/li&gt;
&lt;li&gt;Rogue download sites repackage the freeware and get money without ever paying the developer(s).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;i&gt;ANY of the above leads to stagnation as the developer(s) all feel unfairly&amp;nbsp;subsidized.&lt;/i&gt;&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
How can this project be protected? Well, I am proud to say that I protected one or two free, open source projects from the complications of commercialization. The key is simply not be out to make money. Don't allow donation buttons. Don't have a treasurer. Users can give donations to individual developers, if they want, in secret, perhaps for implementing X, Y, or Z. K&lt;i&gt;&lt;b&gt;eep the project open to the community and nobody benefiting from the mere existence of the application!&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/blogspot/dpVll/~4/d2ytQ8AF6z0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thepileof.blogspot.com/feeds/1740886317930799347/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://thepileof.blogspot.com/2012/10/extra-extra-unmanaged-code-developer.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default/1740886317930799347?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default/1740886317930799347?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/dpVll/~3/d2ytQ8AF6z0/extra-extra-unmanaged-code-developer.html" title="Recommending Open Hardware Monitor" /><author><name>Jeremy Collake</name><uri>https://plus.google.com/110469164034872408057</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-NAxZHj7bd1Y/AAAAAAAAAAI/AAAAAAAAdjk/5T8s66_RBi8/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://thepileof.blogspot.com/2012/10/extra-extra-unmanaged-code-developer.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A04DQ3k5cSp7ImA9WhJbE0o.&quot;"><id>tag:blogger.com,1999:blog-5605857505516531350.post-9134342222406661618</id><published>2012-09-22T16:13:00.004-07:00</published><updated>2012-09-22T22:59:32.729-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-09-22T22:59:32.729-07:00</app:edited><title>How to fix: Windows 8 Modern UI if stuck on the wrong monitor</title><content type="html">&lt;span style="background-color: white; font-family: Arial, sans-serif; line-height: 18px;"&gt;Us traditional interface users may not pay much attention to the Modern UI, but the other day I managed to get it 'stuck' on a monitor I didn't want it on. It popped up there, whenever invokved, with no way I knew of to move it. Finally I Google'd and discovered if you hover in the lower _left_ of a screen you can select to open the Modern UI on that monitor. From that point forward, it remembers its last monitor. While this is quite trivial, who knows - maybe it saves someone else some time. There has been lots to get used to with Windows 8, and while I consider it a great OS, I wish Microsoft would have spent more resources on marketing and user&amp;nbsp;education&amp;nbsp;(or maybe they plan to).&lt;/span&gt;
&lt;img src="http://feeds.feedburner.com/~r/blogspot/dpVll/~4/I4kVto5SaWA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thepileof.blogspot.com/feeds/9134342222406661618/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://thepileof.blogspot.com/2012/09/how-to-fix-windows-8-modern-ui-if-stuck.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default/9134342222406661618?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default/9134342222406661618?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/dpVll/~3/I4kVto5SaWA/how-to-fix-windows-8-modern-ui-if-stuck.html" title="How to fix: Windows 8 Modern UI if stuck on the wrong monitor" /><author><name>Jeremy Collake</name><uri>https://plus.google.com/110469164034872408057</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-NAxZHj7bd1Y/AAAAAAAAAAI/AAAAAAAAdjk/5T8s66_RBi8/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://thepileof.blogspot.com/2012/09/how-to-fix-windows-8-modern-ui-if-stuck.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0ACSX47eyp7ImA9WhJbF0o.&quot;"><id>tag:blogger.com,1999:blog-5605857505516531350.post-4875399809163359448</id><published>2012-09-07T08:43:00.004-07:00</published><updated>2012-09-27T12:56:08.003-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-09-27T12:56:08.003-07:00</app:edited><title>CPU Overheating Legacy Mode</title><content type="html">&lt;h2&gt;
&lt;b&gt;CPU Overheating in Legacy Mode&lt;/b&gt;&lt;/h2&gt;
When in Legacy (non-protected) mode it seems some CPUs are particularly susceptible to overheating. This is before they start frequency scaling, sometimes before dynamic FAN speed control, perhaps before use of the HLT instruction, and definitely before use of any core parking. Thus, these mitigation strategies may be all that keeps some CPUs from overheating. I've always noticed an increase in thermal emissions when my CPU is running full speed in legacy mode, but today is the first time I accidentally spent too much time in legacy mode, causing my system to shutdown pre-boot due to the CPU temperature (which had raised to 74C, though post-boot, with mitigation strategies in place, is back at 45C). Now, this is actually an indication of some trouble on this PC, despite the heavy load I place on it. Either I must allow for such extreme temperatures, or perhaps re-seat the Heatsink. Still, on a PC with a heavy lead that has no issues running continuously at 100% CPU frequency in High Performance mode, this is a surprising - and scary - discovery. I can't help but wonder, how long would your PC last in legacy mode?&lt;br /&gt;
&lt;br /&gt;
UPDATE: In my case, since I was in a pre-boot RAID configuration tool, I believe the failure of the CPU fan speed to ramp up may have been the primary cause. The UEFI was likely not fully initialized at this stage, and thus left me in a vulnerable state, while the CPU ran at 100% of its clock speed, with 100% utilization of a single core at least (as it does in legacy mode).&lt;br /&gt;
&lt;br /&gt;
UPDATE2: I have reproduced this many time by entering the pre-boot configuration on a HighPoint RAID controller. During its configuration interface, either the fan isn't running fast enough, or other cooling&amp;nbsp;mitigation technologies&amp;nbsp;aren't working. CPU temperature quickly escalates, and will eventually halt the PC. Otherwise, in the temperature in between, it will warn you at next bootup if it hasn't cooled already.&lt;img src="http://feeds.feedburner.com/~r/blogspot/dpVll/~4/ifHFGs1Ivcg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thepileof.blogspot.com/feeds/4875399809163359448/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://thepileof.blogspot.com/2012/09/cpu-overheating-in-legacy-mode.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default/4875399809163359448?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default/4875399809163359448?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/dpVll/~3/ifHFGs1Ivcg/cpu-overheating-in-legacy-mode.html" title="CPU Overheating Legacy Mode" /><author><name>Jeremy Collake</name><uri>https://plus.google.com/110469164034872408057</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-NAxZHj7bd1Y/AAAAAAAAAAI/AAAAAAAAdjk/5T8s66_RBi8/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://thepileof.blogspot.com/2012/09/cpu-overheating-in-legacy-mode.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEIFQnY8eyp7ImA9WhJUEE4.&quot;"><id>tag:blogger.com,1999:blog-5605857505516531350.post-6756418121091965925</id><published>2012-09-06T16:33:00.000-07:00</published><updated>2012-09-07T09:48:33.873-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-09-07T09:48:33.873-07:00</app:edited><title>Keeping a process below a certain total CPU % use</title><content type="html">&lt;br /&gt;
&lt;h2&gt;
Keeping an process below a certain total CPU % use&lt;/h2&gt;
So, you want to keep a process limited to using only a certain percentage of all available CPU time? For single core systems, it used to be I'd tell people this wasn't recommended, but if they really had to forcibly limit a process, then they would have to use Process Lasso's unsafe 'Hard Throttling'. Fortunately, these days, if you've got a multi-core system, you are in luck! The more cores, the more control you'll have.&lt;br /&gt;
&lt;br /&gt;
By limiting the CPU affinity of a process to specific cores, you have the ability to control the available CPU time it has access to, out of the total CPU time pool. For example, in an optimal world of a quad core system with 4 fully independent physical cores, you can set increments 25%, 50%, 75%, or 100%. Now, when you throw in logical processors, the picture gets more complex. Since the logical processors won't perform well at all, the % limits are actually staggered in *effect*. While the scheduler may show an exact 50% for 2 of 4 logical cores (100% of the 2 cores time is being used), that may not mean those two cores are executing at 100% the capacity of two physical cores. In other words, the CPU time is used, but performance takes a hit. This is hard to quantify for logical processors, but &lt;a href="http://bitsum.com/threadracer.php"&gt;ThreadRacer&lt;/a&gt; can help.&lt;br /&gt;
&lt;br /&gt;
Remember, Intel has its HyperThreaded cores staggered, starting at the second core (core #1 if core #0 counted as the first), and goes from there. Similarly, AMD Bulldozer+ Modules have&amp;nbsp;adjacent&amp;nbsp;processor cores that share computational units. Processors #0 and #1 would share some computational units, so you wouldn't want to load them both up if other cores are available. The scheduler itself will try to avoid such situations, in fact. With&amp;nbsp;this 'every other core' method, it is easy to distinguish processors that are co-dependent (AMD), or HyperThreaded (INTEL).&lt;br /&gt;
&lt;br /&gt;
For the AMD Phenom II and below, all cores are true, physically independent cores, making the Phenom II the last processor made in this fashion. That is why the AMD Phenom II x6 continues to shine in benchmarks against the latest AMD&amp;nbsp;generation, despite a deficiency in base clock speed. It has 6 fully independent cores, something no current AMD processor has - they instead of 8 co-dependent cores, counted as 4 physical cores and 4 additional logical cores in marketing and by the Windows OS CPU Scheduler.&lt;br /&gt;
&lt;br /&gt;
You can do this with:&lt;br /&gt;
&lt;br /&gt;
1.&amp;nbsp;&lt;a href="http://bitsum.com/prolasso.php"&gt;Process Lasso's Default CPU Affinity&lt;/a&gt;,&lt;br /&gt;
2. &lt;a href="http://bitsum.com/prolasso.php"&gt;When ProBalance events occur&lt;/a&gt;&lt;br /&gt;
3. &lt;a href="http://bitsum.com/pl_when_cpu_affinity_matters.php"&gt;Via the Process Lasso Watchdog&lt;/a&gt; (so that the change is only induced when certain criteria are met)&lt;br /&gt;
&lt;br /&gt;
More information is available here: &lt;a href="http://bitsum.com/pl_when_cpu_affinity_matters.php"&gt;When CPU Affinity Matters&lt;/a&gt;.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/blogspot/dpVll/~4/92f5XquPs8w" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thepileof.blogspot.com/feeds/6756418121091965925/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://thepileof.blogspot.com/2012/09/keeping-process-below-certain-total-cpu.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default/6756418121091965925?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default/6756418121091965925?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/dpVll/~3/92f5XquPs8w/keeping-process-below-certain-total-cpu.html" title="Keeping a process below a certain total CPU % use" /><author><name>Jeremy Collake</name><uri>https://plus.google.com/110469164034872408057</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-NAxZHj7bd1Y/AAAAAAAAAAI/AAAAAAAAdjk/5T8s66_RBi8/s512-c/photo.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://thepileof.blogspot.com/2012/09/keeping-process-below-certain-total-cpu.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkcGR3Y7eCp7ImA9WhJVGU0.&quot;"><id>tag:blogger.com,1999:blog-5605857505516531350.post-1967760371908361898</id><published>2012-09-05T20:59:00.001-07:00</published><updated>2012-09-05T21:00:26.800-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-09-05T21:00:26.800-07:00</app:edited><title>JAVA Update Check Frequency - Once a Month by Default - How to Change it, and Why You Should</title><content type="html">&lt;h2&gt;
&lt;span style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;JAVA Update Check Frequency - Once a Month by Default&lt;/span&gt;&lt;/h2&gt;
&lt;h3&gt;
&lt;span style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;How to Change it, and Why you Should&lt;/span&gt;&lt;/h3&gt;
&lt;span style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;I just checked the default JAVA Update Check Frequency. Turns out it is EVERY MONTH. I figured this needs an adjustment, given what we now know! There should be several more 0-day updates necessary to protect yourself from immediate exploitation by simply visiting the wrong site! To change this, you need to find the "Java (32-bit)" shortcut. &lt;b&gt;&lt;i&gt;Be sure to 'Run as Admin', else it will - without error - not actually apply your changes!&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;The actual executable backing the shortcut is in %PROGRAMFILESDIR%\Java\bin\javacpl.exe (Java Control Panel). That's "Program Files" for 32-bit Windows installations, or "Program Files (x86)" for 64-bit Windows installations.&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-hRiuKD85i8Q/UEgfQlLxHWI/AAAAAAAAa-Y/bHhlv2AWlWM/s1600/java_update.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="http://3.bp.blogspot.com/-hRiuKD85i8Q/UEgfQlLxHWI/AAAAAAAAa-Y/bHhlv2AWlWM/s640/java_update.PNG" width="564" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Note that this may not *always* matter, as the browser you use may have its own internal implementation of Java, and/or enforce Java updates more regularly. However, I figure, why take the chance?&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/dpVll/~4/mxdTJdkpYG8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thepileof.blogspot.com/feeds/1967760371908361898/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://thepileof.blogspot.com/2012/09/java-update-check-frequency-once-month.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default/1967760371908361898?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default/1967760371908361898?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/dpVll/~3/mxdTJdkpYG8/java-update-check-frequency-once-month.html" title="JAVA Update Check Frequency - Once a Month by Default - How to Change it, and Why You Should" /><author><name>Jeremy Collake</name><uri>https://plus.google.com/110469164034872408057</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-NAxZHj7bd1Y/AAAAAAAAAAI/AAAAAAAAdjk/5T8s66_RBi8/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-hRiuKD85i8Q/UEgfQlLxHWI/AAAAAAAAa-Y/bHhlv2AWlWM/s72-c/java_update.PNG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://thepileof.blogspot.com/2012/09/java-update-check-frequency-once-month.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A04CRXo_cSp7ImA9WhJVGEQ.&quot;"><id>tag:blogger.com,1999:blog-5605857505516531350.post-1356125966592641265</id><published>2012-09-05T19:17:00.002-07:00</published><updated>2012-09-05T19:52:44.449-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-09-05T19:52:44.449-07:00</app:edited><title>Increasing PC Performance while Saving Energy through Process Lasso's Energy Saver</title><content type="html">&lt;b&gt;What is the&lt;a href="http://bitsum.com/prolasso.php"&gt; Process Lasso&lt;/a&gt; Energy Saver?&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
I love neat little innovations that were left out of Windows, and one such innovation is the ability to simply run in a High Performance power profile, while dropping automatically back down to Balanced or Power Saver when you go Idle, then back up again when you return. It makes perfect sense! That is Process Lasso's Energy Saver.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Why was an Energy Saver like mechanism left out of Windows?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
The reason this is not always do-able by default is because *some processes* likely need excluded to attain the maximum performance you want in your highest power profile (named High Performance on English PCs by default).&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-YyJjW2KwX0w/UEgHm45Rh1I/AAAAAAAAa-E/QdM9lmKnqL4/s1600/pl_energ_saver.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-YyJjW2KwX0w/UEgHm45Rh1I/AAAAAAAAa-E/QdM9lmKnqL4/s1600/pl_energ_saver.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
After installing &lt;a href="http://bitsum.com/prolasso.php"&gt;Process Lasso&lt;/a&gt;, simply turn on Energy Saver and you are done! Best of all, Energy Saver is one of the many Process Lasso features available for *free* indefinitely!&lt;br /&gt;
&lt;br /&gt;
Enjoy!&lt;img src="http://feeds.feedburner.com/~r/blogspot/dpVll/~4/LZc0sEsS8VQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thepileof.blogspot.com/feeds/1356125966592641265/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://thepileof.blogspot.com/2012/09/increasing-pc-performance-while-saving.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default/1356125966592641265?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default/1356125966592641265?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/dpVll/~3/LZc0sEsS8VQ/increasing-pc-performance-while-saving.html" title="Increasing PC Performance while Saving Energy through Process Lasso's Energy Saver" /><author><name>Jeremy Collake</name><uri>https://plus.google.com/110469164034872408057</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-NAxZHj7bd1Y/AAAAAAAAAAI/AAAAAAAAdjk/5T8s66_RBi8/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-YyJjW2KwX0w/UEgHm45Rh1I/AAAAAAAAa-E/QdM9lmKnqL4/s72-c/pl_energ_saver.PNG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://thepileof.blogspot.com/2012/09/increasing-pc-performance-while-saving.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUQMQnwzcSp7ImA9WhJWGU8.&quot;"><id>tag:blogger.com,1999:blog-5605857505516531350.post-8148947145070140044</id><published>2012-08-25T12:35:00.003-07:00</published><updated>2012-08-25T12:36:23.289-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-08-25T12:36:23.289-07:00</app:edited><title>Misc NT 6.2 screenshots (Windows 8 / Windows 2012)</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-R95NOXwDWW0/UDko4NG21-I/AAAAAAAAajg/P3_SbLBpJKg/s1600/new_launch_context_menu.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/-R95NOXwDWW0/UDko4NG21-I/AAAAAAAAajg/P3_SbLBpJKg/s320/new_launch_context_menu.png" width="147" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-pcAGm2Iz4e8/UDko4X8PThI/AAAAAAAAajk/Yb08ZgUE7MA/s1600/win8_dwm_in_its_own_user_context.PNG" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="60" src="http://2.bp.blogspot.com/-pcAGm2Iz4e8/UDko4X8PThI/AAAAAAAAajk/Yb08ZgUE7MA/s640/win8_dwm_in_its_own_user_context.PNG" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;From Process Lasso, showing DWM running in its own user context.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-W5hYPEvQ8SI/UDko7gGP0kI/AAAAAAAAajw/eBmqOqzxlVY/s1600/windows8_copy_conflict_dialog.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/-W5hYPEvQ8SI/UDko7gGP0kI/AAAAAAAAajw/eBmqOqzxlVY/s320/windows8_copy_conflict_dialog.PNG" width="283" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-f2Q_px1TDCE/UDko8PZWDiI/AAAAAAAAaj4/zyxXQ-llquc/s1600/windows_8_improved_explorer_copy.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="181" src="http://1.bp.blogspot.com/-f2Q_px1TDCE/UDko8PZWDiI/AAAAAAAAaj4/zyxXQ-llquc/s320/windows_8_improved_explorer_copy.PNG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/dpVll/~4/l_XXlleDlXc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thepileof.blogspot.com/feeds/8148947145070140044/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://thepileof.blogspot.com/2012/08/misc-nt-62-screenshots-windows-8.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default/8148947145070140044?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default/8148947145070140044?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/dpVll/~3/l_XXlleDlXc/misc-nt-62-screenshots-windows-8.html" title="Misc NT 6.2 screenshots (Windows 8 / Windows 2012)" /><author><name>Jeremy Collake</name><uri>https://plus.google.com/110469164034872408057</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-NAxZHj7bd1Y/AAAAAAAAAAI/AAAAAAAAdjk/5T8s66_RBi8/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-R95NOXwDWW0/UDko4NG21-I/AAAAAAAAajg/P3_SbLBpJKg/s72-c/new_launch_context_menu.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://thepileof.blogspot.com/2012/08/misc-nt-62-screenshots-windows-8.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUUNQHw_fip7ImA9WhJVEUQ.&quot;"><id>tag:blogger.com,1999:blog-5605857505516531350.post-3243489133597575405</id><published>2012-08-18T13:33:00.001-07:00</published><updated>2012-08-28T16:41:31.246-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-08-28T16:41:31.246-07:00</app:edited><title>The Visual Studio 2012 Migration - and XP/2003 (NT5)</title><content type="html">I am always an early adopter, I get excited about technology. As a developer, I should perhaps be more pragmatic. When Visual Studio 2012 went RC, I switched to it. I wanted to be ready, after all. There weren't many complications, but one was a complication... the initial (soon to be redacted) lack of support for Windows XP or Windows 2003 as a build target.&lt;br /&gt;
&lt;br /&gt;
Now, I have my ways to get around it, namely a utility I'm about to upload called PESetVersion. This will let me set any of the versions of a PE/PE+, though the only applicable one is the SubSystem version. By changing this, I hope to achieve compatibility with XP and Windows 2003. Now, the CRT isn't guaranteed to function right, so I guess we'll find out in extended testing. If all runs, there is a 99% chance it will be fine. EDIT: It didn't (see below), the CRT uses NT6 APIs.&lt;br /&gt;
&lt;br /&gt;
I would imagine the CRT doesn't do anything not compatible with NT 5, unless it has some explicit check.&amp;nbsp;My reasoning is because the developers of Visual Studio 2012 actually planned to keep XP support.&lt;br /&gt;
&lt;br /&gt;
From what I hear, the marketing or some management arm nixed it from the final product. BUT, due to developer demand, this decision was redacted. Support for Windows XP and Windows 2003 will not be in the RTM though, it will come in some out-of-band update 'later this Fall'&lt;br /&gt;
&lt;br /&gt;
Prior to VS2012 there was VS2010, which similarly dropped support for Windows 2000. However, you could still use an older Platform Toolset (compiler, linker, etc..) as specified in the project configuration.&lt;br /&gt;
&lt;br /&gt;
Sadly, the subsystem version you specify in the linker appears to be neutered so that you can't over-ride its designation of NT 6.0. It even says '5.0' in the configuration by default, but this is entirely ignored.&lt;br /&gt;
&lt;br /&gt;
This will be part of the &lt;a href="http://pecompact.com/pesuite.php"&gt;PESuite Tools&lt;/a&gt; authored by Bitsum. It should be released in the next 24 hours.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;UPDATE: &lt;/b&gt;It appears at least in some modules the CRT does import some NT6+ APIs. You therefore must use an alternate CRT or patch the existing CRT. &lt;b&gt;&lt;i&gt;&lt;span style="color: red;"&gt;The ability to use an older VC9 or VC10 Platform Toolset is also there, and the preferred solution at this time ;o.&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/dpVll/~4/Khcdup4KT4s" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thepileof.blogspot.com/feeds/3243489133597575405/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://thepileof.blogspot.com/2012/08/the-visual-studio-2012-migration-and-xp.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default/3243489133597575405?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default/3243489133597575405?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/dpVll/~3/Khcdup4KT4s/the-visual-studio-2012-migration-and-xp.html" title="The Visual Studio 2012 Migration - and XP/2003 (NT5)" /><author><name>Jeremy Collake</name><uri>https://plus.google.com/110469164034872408057</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-NAxZHj7bd1Y/AAAAAAAAAAI/AAAAAAAAdjk/5T8s66_RBi8/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://thepileof.blogspot.com/2012/08/the-visual-studio-2012-migration-and-xp.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEcBQ306fCp7ImA9WhJQGUQ.&quot;"><id>tag:blogger.com,1999:blog-5605857505516531350.post-3661845539088214492</id><published>2012-08-03T05:13:00.000-07:00</published><updated>2012-08-03T05:14:12.314-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-08-03T05:14:12.314-07:00</app:edited><title>Cleaning up registry debris the safe way ...</title><content type="html">As you know, many programs leave debris around after uninstall. Now, there are all types of debris, and some of it is more important than others. As I recommend on my &lt;a href="http://bitsum.com/regmerge.php#facts"&gt;RegMerge&lt;/a&gt; page, do NOT resort to registry cleaners that may very well cause more harm. Instead, I recommend using RegEdit to search for the product's name, then delete keys or values that have it. WARNING: Be sure you know what you are doing and have made a backup of your hives or restore point first.&lt;br /&gt;
&lt;br /&gt;
The most serious thing left behind are shell extensions or unrestored file associations. These can cause complications, or at least annoyances. In the latter case, unrestored file associations (e.g. the program didn't revert to associate whatever extension with the previous program), you must manually correct these. I've always thought of a project to try to repair these to their default state, and indeed &lt;a href="http://bitsum.com/regmerge.php"&gt;RegMerge&lt;/a&gt; was/is the basis for that. However, for it to work, we first need 'default sets', which are .REG repair files that simply replace the shell association with its default handler. If you have such, please submit them, you'll of course get full credit for your contribution! Remember, RegMerge is 100% freeware from Bitsum - one of our many contributions to the community!&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/dpVll/~4/CkP8WmkqoUc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thepileof.blogspot.com/feeds/3661845539088214492/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://thepileof.blogspot.com/2012/08/cleaning-up-registry-debris-safe-way.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default/3661845539088214492?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default/3661845539088214492?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/dpVll/~3/CkP8WmkqoUc/cleaning-up-registry-debris-safe-way.html" title="Cleaning up registry debris the safe way ..." /><author><name>Jeremy Collake</name><uri>https://plus.google.com/110469164034872408057</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-NAxZHj7bd1Y/AAAAAAAAAAI/AAAAAAAAdjk/5T8s66_RBi8/s512-c/photo.jpg" /></author><thr:total>3</thr:total><feedburner:origLink>http://thepileof.blogspot.com/2012/08/cleaning-up-registry-debris-safe-way.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU4ERH85eSp7ImA9WhJRGEw.&quot;"><id>tag:blogger.com,1999:blog-5605857505516531350.post-8921371470985568372</id><published>2012-07-20T12:49:00.002-07:00</published><updated>2012-07-20T12:51:45.121-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-07-20T12:51:45.121-07:00</app:edited><title>Decrypting EFS</title><content type="html">&lt;br /&gt;
One of the many pains of NTFS's EFS is that if you decide to no longer use it, you can get in a situation where you are waiting hours and hours for your HDD or SSD to decrypt each file and folder, and change its attributes.&lt;br /&gt;
&lt;br /&gt;
Worst, if you abort that operation, or have inaccessible files, you can end up with MIXED filesytems, with some files encrypted, and others not. This can cause complications with some backup solutions that use direct copies (if the destination can't be encrypted, for example).&lt;br /&gt;
&lt;br /&gt;
So, how to fix? Well, you could toggle that Encrypted attribute checkbox in the folder properties, start to encrypt, then abort. Then do the opposite, being sure to include all subdirectories and files.&lt;br /&gt;
&lt;br /&gt;
OR you can use the CIPHER tool, built into Windows. Cipher let's you get and control all sorts of EFS information. Anything EFS related - it has. Including what we want, decrypting an entire directory tree.&lt;br /&gt;
&lt;br /&gt;
For example, say I want to make sure there are no EFS files left on drive D:\. The command might be:&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;CIPHER.EXE /D /Sd:\&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
In my case, on a drive I had 21 'stray' EFS files and folders still encrypted. Fixed now.&lt;br /&gt;
&lt;br /&gt;
Run Cipher /? to get a full list of options.&lt;br /&gt;
&lt;br /&gt;
Why is EFS bad? One, the filename problem. Filenames are visible. Also, since they let the attacker know likely points of plaintext (e.g. this plaintext data is likely at location X in file type Y), the key becomes quite attackable. Then there is the issue of backing up your certificate, which has been made more clear in Vista and above, but can still be a bit of a pain. TrueCrypt or BitLocker are definitely the thing to use. I prefer TrueCrypt myself, one of the best F/OSS applications ever created. EFS, in my mind, is an illusion of security more likely to cause data loss than protect your privacy.&lt;img src="http://feeds.feedburner.com/~r/blogspot/dpVll/~4/NDtFxslVyG0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thepileof.blogspot.com/feeds/8921371470985568372/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://thepileof.blogspot.com/2012/07/removing-efs.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default/8921371470985568372?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default/8921371470985568372?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/dpVll/~3/NDtFxslVyG0/removing-efs.html" title="Decrypting EFS" /><author><name>Jeremy Collake</name><uri>https://plus.google.com/110469164034872408057</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-NAxZHj7bd1Y/AAAAAAAAAAI/AAAAAAAAdjk/5T8s66_RBi8/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://thepileof.blogspot.com/2012/07/removing-efs.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUcBRH89eip7ImA9WhJRF0o.&quot;"><id>tag:blogger.com,1999:blog-5605857505516531350.post-1063713842636816616</id><published>2012-07-20T02:37:00.003-07:00</published><updated>2012-07-20T02:37:35.162-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-07-20T02:37:35.162-07:00</app:edited><title>Deter SQL injections with mod_qos?</title><content type="html">I updated my previous post about Apache's &lt;a href="http://opensource.adnovum.ch/mod_qos/"&gt;mos_qos&lt;/a&gt; to include one additional example use.&lt;br /&gt;
&lt;br /&gt;
This might help to avoid an SQL injection attack, who knows. Now, it is definitely NOT absolute security. It likely won't help you from anything other than some automated probes, and maybe it happens to save you from a particular SQL injection vulnerability. The idea is simply not to allow certain SQL commands in the HTTP request.&lt;br /&gt;
&lt;br /&gt;
Now, this means it &lt;i&gt;should be used selectively&lt;/i&gt;. If you use it on a whole site, something may break. Therefore, encapsulate it in Directory/Location tags.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre style="color: #333333; font-size: 14px; line-height: 19px; text-align: justify;"&gt;# don't allow a certain SQL command string patterns within the HTTP request
# !WARNING: use location or directory tags, probably not good for whole server
QS_DenyQueryBody              on
QS_DenyQuery       +s01       deny "(EXEC|SELECT|INSERT|UPDATE|DELETE)"&lt;/pre&gt;
&lt;pre style="color: #333333; font-size: 14px; line-height: 19px; text-align: justify;"&gt;
&lt;/pre&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/dpVll/~4/GfdORV2sRMk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thepileof.blogspot.com/feeds/1063713842636816616/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://thepileof.blogspot.com/2012/07/deter-sql-injections-with-modqos.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default/1063713842636816616?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default/1063713842636816616?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/dpVll/~3/GfdORV2sRMk/deter-sql-injections-with-modqos.html" title="Deter SQL injections with mod_qos?" /><author><name>Jeremy Collake</name><uri>https://plus.google.com/110469164034872408057</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-NAxZHj7bd1Y/AAAAAAAAAAI/AAAAAAAAdjk/5T8s66_RBi8/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://thepileof.blogspot.com/2012/07/deter-sql-injections-with-modqos.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEICQXY9eyp7ImA9WhJRF0o.&quot;"><id>tag:blogger.com,1999:blog-5605857505516531350.post-7144924369384978781</id><published>2012-07-20T02:28:00.001-07:00</published><updated>2012-07-20T02:29:20.863-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-07-20T02:29:20.863-07:00</app:edited><title>Classic Tools: DPC Latency Checker</title><content type="html">&lt;b&gt;Classic Tools&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
Every once and a while I'm going to post about a utility that has been around a while, but we still love and use it. Some of these, due to lack of maintenance, have been 'forgotten' in time. Let's bring a few back to life.&lt;br /&gt;
&lt;br /&gt;
Today's subject: &lt;a href="http://www.thesycon.de/deu/latency_check.shtml"&gt;DPC Latency Checker v1.3.0&lt;/a&gt;&amp;nbsp;. This is 100% freeware. There is definitely no profit incentive here. This developer clearly just wanted to contribute to the world, and did so. Then he moved on.&lt;br /&gt;
&lt;br /&gt;
What he left is really a 'perfect' little utility for what it does. It continues to 'just work' without maintenance in years (afaik).&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://www.thesycon.de/dpclat/dpclat1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="532" src="http://www.thesycon.de/dpclat/dpclat1.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Download:&amp;nbsp;&lt;a href="http://www.thesycon.de/deu/latency_check.shtml"&gt;http://www.thesycon.de/deu/latency_check.shtml&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/dpVll/~4/YVBHBuwaSTs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thepileof.blogspot.com/feeds/7144924369384978781/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://thepileof.blogspot.com/2012/07/classic-tools-dpc-latency-checker.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default/7144924369384978781?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default/7144924369384978781?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/dpVll/~3/YVBHBuwaSTs/classic-tools-dpc-latency-checker.html" title="Classic Tools: DPC Latency Checker" /><author><name>Jeremy Collake</name><uri>https://plus.google.com/110469164034872408057</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-NAxZHj7bd1Y/AAAAAAAAAAI/AAAAAAAAdjk/5T8s66_RBi8/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://thepileof.blogspot.com/2012/07/classic-tools-dpc-latency-checker.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MGSXgzeip7ImA9WhBXGEU.&quot;"><id>tag:blogger.com,1999:blog-5605857505516531350.post-8037984022725719590</id><published>2012-07-14T03:18:00.002-07:00</published><updated>2013-04-01T22:43:48.682-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-04-01T22:43:48.682-07:00</app:edited><title>Apache's mod_qos - Your savior</title><content type="html">I've posted about Apache's mod_qos before, but I wanted to post about it again. The sheer number of features this module offers are astounding. You can limit connections per IP, give higher priority to certain clients or applications, and generally control the workload of the server. It is what Apache always needed - indeed, what any web browser needed. I won't bore you with the details, but after you've either statically linked to this module in your build, or loaded it up dynamically, you can use configurations like below, as seen on the &lt;a href="http://opensource.adnovum.ch/mod_qos/"&gt;mod_qos documentation page&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Feature set:&lt;/b&gt;&lt;br /&gt;
&lt;quote&gt;&lt;/quote&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul style="font-family: sans-serif, arial, verdana;"&gt;
&lt;li type="square"&gt;The maximum number of concurrent requests to a location/resource (URL) or virtual host.&lt;/li&gt;
&lt;li type="square"&gt;Limitation of the bandwidth such as the maximum allowed number of requests per second to an URL or the maximum/minimum of downloaded kbytes per second.&lt;/li&gt;
&lt;li type="square"&gt;Limits the number of request events per second (special request conditions).&lt;/li&gt;
&lt;li type="square"&gt;It can also "detect" very important persons (VIP) which may access the web server without or with fewer restrictions.&lt;/li&gt;
&lt;li type="square"&gt;Generic request line and header filter to deny unauthorized operations.&lt;/li&gt;
&lt;li type="square"&gt;Request body data limitation and filtering (requires&amp;nbsp;&lt;a href="http://parp.sourceforge.net/" style="color: #00a77f;" target="_blank"&gt;mod_parp&lt;/a&gt;).&lt;/li&gt;
&lt;li type="square"&gt;Limitations on the TCP connection level, e.g., the maximum number of allowed connections from a single IP source address or dynamic keep-alive control.&lt;/li&gt;
&lt;li type="square"&gt;Prefers known IP addresses when server runs out of free TCP connections.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;span style="font-family: sans-serif, arial, verdana;"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;EXAMPLE:&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;# maximum number of active TCP connections is limited to 896 (limited
# by the available memory, adjust the settings according to the used
# hardware):
MaxClients               256
# idle timeout:
Timeout                  60

# keep alive disabled after we start to fill up
KeepAlive                on
MaxKeepAliveRequests     60
KeepAliveTimeout         3
QS_SrvMaxConnClose       196&lt;/pre&gt;
&lt;pre&gt;&lt;pre&gt;# don't allow more than 30 TCP connections per client source address:
QS_SrvMaxConnPerIP       30&lt;/pre&gt;
# name of the HTTP response header which marks preferred clients (this
# may be used to let the application decide which clients are "good" and
# have higher privileges, e.g. authenticated users. you may also use
# the QS_VipUser directive when using an Apache authentication module such
# as mod_auth_basic or &lt;a href="http://auth-openid.sourceforge.net/" style="color: #00a77f;" target="_blank"&gt;mod_auth_oid&lt;/a&gt;):
QS_VipIPHeaderName       mod-qos-login

# enables the known client prefer mode (server allows new TCP connections
# from known/good clients only when is has more than 716 open TCP connections):
QS_ClientPrefer          80

# minimum request/response speed (deny slow clients blocking the server, 
# e.g. defending slowloris):
QS_SrvMinDataRate        120 1500 400

# and limit request line, header and body:
LimitRequestLine         7168
LimitRequestFields       30
QS_LimitRequestBody      102400

&lt;/pre&gt;
&lt;pre&gt;# block clients violating some basic rules frequently (don't allows more than 20
# violations within 5 minutes):
QS_ClientEventBlockCount 20 300
QS_SetEnvIfStatus        400               QS_Block
QS_SetEnvIfStatus        401               QS_Block
QS_SetEnvIfStatus        403               QS_Block
QS_SetEnvIfStatus        404               QS_Block
QS_SetEnvIfStatus        405               QS_Block
QS_SetEnvIfStatus        406               QS_Block
QS_SetEnvIfStatus        408               QS_Block
QS_SetEnvIfStatus        411               QS_Block
QS_SetEnvIfStatus        413               QS_Block
QS_SetEnvIfStatus        414               QS_Block
QS_SetEnvIfStatus        417               QS_Block
QS_SetEnvIfStatus        500               QS_Block
QS_SetEnvIfStatus        503               QS_Block
QS_SetEnvIfStatus        505               QS_Block
QS_SetEnvIfStatus        QS_SrvMinDataRate QS_Block
QS_SetEnvIfStatus        NullConnection    QS_Block
# even a little anti-SQL injection ... 

# don't allow a certain string pattern within the request query or
# use location or directory tags, probably not good for whole server
QS_DenyQueryBody              on
QS_DenyQuery       +s01       deny "(EXEC|SELECT|INSERT|UPDATE|DELETE)"
&lt;/pre&gt;
&lt;img src="http://feeds.feedburner.com/~r/blogspot/dpVll/~4/jHw4XNCcZR4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thepileof.blogspot.com/feeds/8037984022725719590/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://thepileof.blogspot.com/2012/07/apaches-modqos-your-savior.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default/8037984022725719590?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5605857505516531350/posts/default/8037984022725719590?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/dpVll/~3/jHw4XNCcZR4/apaches-modqos-your-savior.html" title="Apache's mod_qos - Your savior" /><author><name>Jeremy Collake</name><uri>https://plus.google.com/110469164034872408057</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-NAxZHj7bd1Y/AAAAAAAAAAI/AAAAAAAAdjk/5T8s66_RBi8/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://thepileof.blogspot.com/2012/07/apaches-modqos-your-savior.html</feedburner:origLink></entry></feed>
