tag:blogger.com,1999:blog-51375508772625308022024-03-19T15:43:35.808-07:00Sectio AureaA blog about software, development and entertainment on Ubuntu LinuxSectio Aureahttp://www.blogger.com/profile/05757746234772925958noreply@blogger.comBlogger24125tag:blogger.com,1999:blog-5137550877262530802.post-51417721570400410032014-01-20T11:57:00.003-08:002014-01-20T13:10:41.425-08:00Installing Bitcoin trading robot Gekko on Ubuntu 12.04 LTS<div class="separator" style="clear: both; text-align: center;">
<a href="https://farm9.staticflickr.com/8134/10193374023_3d4fa67d20_z.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://farm9.staticflickr.com/8134/10193374023_3d4fa67d20_z.jpg" /></a></div>
<br />
Gekko is a Bitcoin trading robot written in Node.js (<a href="https://bitcointalk.org/index.php?topic=209149.0">Bitcointalk thread</a>, <a href="https://github.com/askmike/gekko">Github</a>). This post will cover installation of Gekko on a fresh Ubuntu 12.04 LTS system.<br />
<h3>
</h3>
<h3>
Installation</h3>
First, install the system level dependency, Node.js: <br />
<blockquote class="tr_bq">
<span style="font-family: "Courier New",Courier,monospace;">sudo apt-get install nodejs</span></blockquote>
<br />
Check out the Gekko code from Github:<br />
<blockquote class="tr_bq">
<span style="font-family: "Courier New",Courier,monospace;">cd $home</span><br />
<span style="font-family: "Courier New",Courier,monospace;">git clone git://github.com/askmike/gekko.git</span></blockquote>
<br />
Install more dependencies through the Node.js package manager: <br />
<blockquote class="tr_bq">
<span style="font-family: "Courier New",Courier,monospace;">cd gekko</span><br />
<span style="font-family: "Courier New",Courier,monospace;">npm install</span></blockquote>
<br />
Finally you can test the installation by running pre-configuration:<br />
<blockquote class="tr_bq">
<span style="font-family: "Courier New",Courier,monospace;">node gekko</span></blockquote>
<br />
You should see output like this as the bot begins to calculate:<br />
<br />
<blockquote>
<span style="font-family: "Courier New",Courier,monospace;">2014-01-20 23:21:24 (INFO): I'm gonna make you rich, Bud Fox.<br />2014-01-20 23:21:24 (INFO): Let me show you some Exponential Moving Averages.<br /><br /><br />2014-01-20 23:21:24 (INFO): Using normal settings to monitor the live market<br />2014-01-20 23:21:24 (INFO): NOT trading with real money<br />2014-01-20 23:21:27 (INFO): Profit reporter active on simulated balance<br />2014-01-20 23:21:27 (INFO): Calculating EMA on historical data...<br />2014-01-20 23:23:28 (INFO): ADVICE is to BUY @ 952.688 (0.335)</span></blockquote>
<h3>
</h3>
<h3>
Live trading </h3>
The next step is to configure the bot for live trading. Lines 28 through 38 of the configuration file contain this stanza by default:<br />
<blockquote class="tr_bq">
<span style="font-family: "Courier New",Courier,monospace;">// Monitor the live market<br />config.normal = {<br /> enabled: true,<br /> exchange: 'MtGox', // 'MtGox', 'BTCe', 'Bitstamp' or 'cexio'<br /> currency: 'USD',<br /> asset: 'BTC',<br /> tradingEnabled: false,<br /> key: 'your-key',<br /> secret: 'your-secret',<br /> username: 0, // your username, only fill in when using bitstamp or cexio<br />}</span></blockquote>
<br />
<br />
You can edit this file:<br />
<blockquote class="tr_bq">
<span style="font-family: "Courier New",Courier,monospace;">cd $home/gekko/config.js</span></blockquote>
<br />
<br />
Then modify the defaults as follows in order to enable live trading:<br />
<ul>
<li>Optionally change the exchange to one of the commented choices</li>
<li>Optionally change asset to a different cryptocurrency</li>
<li>Set tradingEnabled to true</li>
<li>Set key and secret from the exchange's account/API page</li>
<li>Set username if applicable.</li>
</ul>
<h3>
</h3>
<h3>
</h3>
<h3>
Further configuration</h3>
One important parameter to change from default will be the timeframe, EMA weight, candles and thresholds. These are found at "Exponential Moving Average settings" just above the account info section. Changing these settings helps prevent your bot being farmed by clever traders who know its default moves and set traps in the markets.<br />
<br />
There are many other options such as email on buy or sell advice (free alerts!), profit calculation for advice, and even a backtesting feature (currently in alpha). And the authors of Gekko, led by lead developer "askmike" have plans for many new features in the latest development version, like a web interface and a local datastore for better support of alternate cryptocurrencies.Sectio Aureahttp://www.blogger.com/profile/05757746234772925958noreply@blogger.com0tag:blogger.com,1999:blog-5137550877262530802.post-41297969889273403772014-01-11T09:57:00.003-08:002014-01-11T10:09:24.233-08:00Self-Regulating Markets in Cryptocurrency<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjf0xfkzw6PyIi5eOsvg-afP5rKI6EOOdkngMw25l4gSCheXVZ3OcNVdnIvqIwRtC_Rffcmb_WGaqfq_wg9fF8BfVCb5I3X0GvPbUtJ3DoOf8T5WZHhBF1ynFpqe_CHOZJRHHei8pROt6fv/s1600/McKinley_straddle.jpg" imageanchor="1"><img alt="McKinley is still paying for this mistake." border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjf0xfkzw6PyIi5eOsvg-afP5rKI6EOOdkngMw25l4gSCheXVZ3OcNVdnIvqIwRtC_Rffcmb_WGaqfq_wg9fF8BfVCb5I3X0GvPbUtJ3DoOf8T5WZHhBF1ynFpqe_CHOZJRHHei8pROt6fv/s1600/McKinley_straddle.jpg" height="400" title="McKinley is still paying for this mistake." width="332" /></a><br />
<br />
This is where we find out that the <a href="http://www.cbsnews.com/news/why-self-regulation-of-the-financial-system-wont-work/">people who</a> <a href="http://www.stephenhbaumleadership.com/2008/10/greenspans-bombshell-markets-cant-self-regulate/">said we</a> <a href="http://www.globalissues.org/news/2010/05/12/5563">couldn't have self-regulating markets</a> were wrong. <br />
<br />
<br />
<br />
Well, maybe they were right in a way. We couldn't have them in traditional economic structures, bound by complex webs of debt and top-down regulation. But we've been thrown into a new paradigm, the paradigm of Bitcoin and cryptocurrency. We, the participants in the many cryptocurrency exchanges and brokered markets, have, by all appearances, found ourselves forced by necessity to recreate sensible market forces.<br />
<br />
<br />
Here are some examples of forex market action totally initially absent from Bitcoin and cryptocurrency instruments, and the equivalent or present day situation with regards to those actions. I'll give some pros and cons according to my understanding of the differences between regulated forex markets and unregulated cryptocurrency markets.<br />
<br />
<h3>
<br />Market makers</h3>
<br />
Regulated forex markets generally employ <a href="http://www.investopedia.com/terms/m/marketmaker.asp">market makers</a> for each currency pair, or each trading instrument. The market maker accepts a lower trading fee in exchange for promising to buy or sell within a certain spread at all times. This results in a steadier price for the trading instrument, with smaller variations and shorter candle wicks and bodies. <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3nrktw4CqU-_UT4Bs2WQXQrc7m_lIKREJQj9QvkRW_oAVaBqUU7S_pqKm1lR5zrzffrOzosqrvhtsFs3a8Q-pZC0WpTk6N7k_ZzCUOk8Nh0H035IGaVe-P1n0US6zGwy1GDyJOjDpxKnx/s1600/6539677329_7e627d619b_z.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3nrktw4CqU-_UT4Bs2WQXQrc7m_lIKREJQj9QvkRW_oAVaBqUU7S_pqKm1lR5zrzffrOzosqrvhtsFs3a8Q-pZC0WpTk6N7k_ZzCUOk8Nh0H035IGaVe-P1n0US6zGwy1GDyJOjDpxKnx/s1600/6539677329_7e627d619b_z.jpg" height="376" width="400" /></a><br />
<br />
<br />
<br />
In cryptocurrency, we see the "Evil Market Maker" at work in many brokerages: the spread on manipulated pairs will move vast distances up and down within short periods of time, making last hour's great buy a large loss as often as not. Automated trading systems are working these spreads, painting the tape, drawing the candles onto the chart to draw in unsuspecting marks.<br />
<br />
<br />
To my knowledge, no public cryptocurrency exchange/broker employs official market makers, although some exchanges such as <a href="https://www.cryptsy.com/users/register?refid=12659">Cryptsy</a> have expressed interest to casual inquiries from would-be straight market makers.<br />
<br />
<br />
This is a situation where regulation in the absence of action from the brokers/exchange operators, could actually be to the benefit of the markets. If the participants in the market wish to avoid outside regulation, eventually imposed with the intent of avoiding widespread chaos and market manipulation, and its spillover to the traditional financial realm, they would do well to acknowledge the existing problems with manipulative market making, and demand the installation of proper market makers along the lines of traditional forex brokerages.<br />
<br />
<h3>
<br />Arbitrage</h3>
<br />
Arbitrage is the practice of taking advantage of inefficiencies in currency pairs trading, such that one can simultaneously execute trades in three or more related pairs (<a href="https://en.wikipedia.org/wiki/Triangular_arbitrage">triangular arbitrage</a>) and realize a risk-free profit. In practice, slippage, liquidity, and competition place serious limits on the potential gains from arbitrage from new traders - not to mention the costs of fees eating into net margins. And forex brokers don't allow it within their systems - banks and brokers make a lot of money cornering the market on arbitrage in forex. Forex brokers also typically require traders exit trades on the same instrument they entered on, which makes inter-exchange arbitrage the only feasible option for retail forex traders (the little folks who are day trading through a broker).<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNqvjzMDMfehVd_lM9hLm9vLKFWxyKuMRF4_aymcl_5rJj4k5zODWIJYmyk3q4ZcDpiEzemq74OgDpfmRnbiDcVS7nvFqAGb7U6Zu_zd0Sl1TZeHNJf1Uir7JBIZbtFYC-eKtbtzrZnBkt/s1600/Early_Egyptian_juggling_art.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Ancient Egyptian klutzes" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNqvjzMDMfehVd_lM9hLm9vLKFWxyKuMRF4_aymcl_5rJj4k5zODWIJYmyk3q4ZcDpiEzemq74OgDpfmRnbiDcVS7nvFqAGb7U6Zu_zd0Sl1TZeHNJf1Uir7JBIZbtFYC-eKtbtzrZnBkt/s1600/Early_Egyptian_juggling_art.jpg" height="215" title="Ancient Egyptian klutzes" width="400" /></a><br />
<br />
<br />
<br />
Manual arbitrage almost certainly arose immediately as soon as Bitcoin was traded against multiple counter currencies, such as the US dollar (USD), Euro (EUR) and Russian Ruble (RUR). It's still possible to profit from arbitrage during periods of extreme volatility, but the unwary crypto trader is more likely to lose their shirt to slippage than to score a few satoshi. However, the established cryptocurrency market arbitrageurs perform an important role in the <br />
markets by ensuring that no one ever overpays for a currency by buying <br />
it through a certain pair or market, rather than another. These days they use automated solutions to the problem, and no inefficiencies exist for long.<br />
<br />
<br />
In contrast to the aforementioned market making situation, there is no way to perform 'unfair' arbitrage, and therefore no government enforced regulation has been necessary in the traditional markets. Instead, there is merely ever-swifter arbitrage via better software and hardware - the regular customers of the exchange can only benefit from more competition at arbitrage, by being less likely to overpay for a currency.<br />
<br />
<br />
<h3>
Consumer protection</h3>
<br />
In the traditional finance world, <a href="https://en.wikipedia.org/wiki/Charles_Ponzi">Chuck Ponzi</a> is infamous for starting an scheme that paid early investors with the proceeds from later investment. This is also known as a pyramid scheme, presumably where all the money accumulates at the top of the pyramid. In cryptocurrency, the rapid deflation of Bitcoin during its initial uptake (which continues to accelerate, with various deleterious effects to its economy) has been unfairly compared to such a scheme in the past.<br />
<br />
<br />
<br />
The true comparison is to "premines", or cryptocurrencies where a large portion of the total coin base is reserved to the coin's founders. Those stakes are worthless until many people have contributed much hashpower in the mining of the coin, at which point the holders of the premined portion are in possession of much value that they did not have to mine for at all.<br />
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEit7BzCYOJiyKKY2qe2c1kXQystgpW3whP8CAkv5yQI7CvPdW86AJgxuuW-uykASYTtcBJfqZh_BeMRI9DcguQNVCPISvBgsQvhn2hZMfY7vos4kAuNmFfs0cHINmPC8S3PCm0uyp-GUPHt/s1600/12217679.950ccae6.500.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEit7BzCYOJiyKKY2qe2c1kXQystgpW3whP8CAkv5yQI7CvPdW86AJgxuuW-uykASYTtcBJfqZh_BeMRI9DcguQNVCPISvBgsQvhn2hZMfY7vos4kAuNmFfs0cHINmPC8S3PCm0uyp-GUPHt/s1600/12217679.950ccae6.500.jpg" height="356" width="400" /></a><br />
<br />
<br />
<br />
Premined currencies are rather commonplace in cryptocurrency, although only a few of them have managed to become accepted by Bitcoin exchanges. A common criteria for acceptance for trading instruments on the exchanges is that a currency not have been premined. Some exchanges do not differentiate between premined and non premined currencies, and list them next to coins which were 100% fairly mined. This could be construed as disingenous, perhaps.<br />
<br />
<br />
The thing about open source and cryptocurrency is that it's a meritocracy of sorts. Everyone is free to choose the currency with the best fundamental features. Premining is a giant <a href="https://en.wikipedia.org/wiki/Black_Spot_%28Treasure_Island%29">Black Spot</a> on the hand of a currency. Naturally, most of the premines don't advertise the fact of their fundamental dilution as a feature- but you can read a partial list of coins noted as premines at <a href="https://bitcointalk.org/index.php?topic=134179.0">https://bitcointalk.org/index.php?topic=134179.0</a>. This list is now slightly out of date, but is still one of our first stops for researching up and coming coins.<br />
<br />
<br />
In addition to premines, there are several out-and-out pyramid schemes which have been successful in separating many people from their hard earned Bitcoin. These schemes, exactly as in the equivalent illegal fiat currency con jobs, masquerade as legitimate investment or 'games', and promise lavish returns...just as soon as your investment 'matures' or is 'bought'. You'll never see the words 'pyramid schemes' on these websites, but that's all they are.<br />
<br />
<br />
<br />
Promotion of these pyramid scheme websites, including cross-promotion with legitimate services, should be seen as a red flag for trustworthiness when choosing a vendor for Bitcoin or other cryptocurrency-related products or services. And if an investment looks too good to be true, or doesn't offer any stop loss/money back guarantee (that you can verify other people have had <br />
honored), simply don't touch it.<br />
<br />
<br />
Fair spreads (employing market makers) also falls broadly under the spectrum of consumer protection.<br />
<br />
<h3>
Conclusions<br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5HRLLXlYqRL-1BfPFtFADeMsX_8jw8dQG0c7dhjBCjNhitgPevLAMNZ3FWIyDvy1dIHvUaHg-c7im_L5xKqMzbPYbFkXiP_mgsx2mEQb1T5ydh7JskDogdOgjvWYeVQcGrvk2cso-sBKD/s1600/Louis_Huard_-_Giant_Skrymir_and_Thor.jpg" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5HRLLXlYqRL-1BfPFtFADeMsX_8jw8dQG0c7dhjBCjNhitgPevLAMNZ3FWIyDvy1dIHvUaHg-c7im_L5xKqMzbPYbFkXiP_mgsx2mEQb1T5ydh7JskDogdOgjvWYeVQcGrvk2cso-sBKD/s1600/Louis_Huard_-_Giant_Skrymir_and_Thor.jpg" height="400" width="251" /></a></h3>
<br />
Market making has emerged for cryptocurrency markets. But it is prone to abuse in the current environment. Arbitrage is functioning adequately. And as with market making, consumer protection is an area where much is lacking in the way of self-regulation. Awareness of premines and pyramid schemes is growing, although more people still need to be warned about the nature of the scams. Fortunately most exchanges will not promote or trade premined currencies.<br />
<br />
<br />
<br />
That leaves us with a dismal current score of 1 for 3 for deregulation, frankly. Perhaps a 1.5 if you count the Evil Market Makers providing some broad measure of stability, even as they generate a measure of whipsaw all day, grinding Jack and Jane into flour for their bread. <br />
<br />
<br />
Can you attribute part of your trading experiences to these market forces? Do you have a special insight into some of the areas discussed? Let us know in the comments area.<br />
<br />
<i>This article was originally published in slightly different form under the title "The People Who Said We Can't Have Self Regulating Markets Were Wrong...Maybe" at Wall Street Crypto (http://www.wallstreetcrypto.com/2013/12/the-people-who-said-we-cant-have-self-regulating-markets-were-wrong-maybe.html).</i>Sectio Aureahttp://www.blogger.com/profile/05757746234772925958noreply@blogger.com0tag:blogger.com,1999:blog-5137550877262530802.post-11153748599027356512014-01-11T09:51:00.001-08:002014-01-11T09:52:03.343-08:00Distributed Anonymous Government - A Fourth Stage in Peer to Peer Technologies? <div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUywSAUw29c-F0VWozgMcI_XNxXrUsscPNkHLzAdg6EqDJYt8YGNmAk34W2u_8GRPzCTOfqI7u4I392RNJ-HtYCwf6XoIRLNnsEm4mTaOP4JHSJqprtJ7zr0u7ntaETLvHbzw2Tcy0tD0R/s1600/trumbull-mod-2-large1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="With my deepest apologies to Trumbull" border="0" height="255" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUywSAUw29c-F0VWozgMcI_XNxXrUsscPNkHLzAdg6EqDJYt8YGNmAk34W2u_8GRPzCTOfqI7u4I392RNJ-HtYCwf6XoIRLNnsEm4mTaOP4JHSJqprtJ7zr0u7ntaETLvHbzw2Tcy0tD0R/s1600/trumbull-mod-2-large1.jpg" title="With my deepest apologies to Trumbull" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<h3>
Consider this progression in technologies:</h3>
<br />
Stage One: <a href="http://www.bittorrent.com/">BitTorrent </a>is a distributed anonymous communication system. It proved itself in the minds of many as an idea by making all information, as well as entertainment, available to those who wanted it, if those who had it wanted to share. BitTorrent's success was largely founded on the widespread availability of high speed, always-on networking - witness the multitude of how-to guides and videos about maximizing your BitTorrent connection speeds, especially early on in the growth of use of the protocol.<br />
<br />
BitTorrent's <a href="https://en.wikipedia.org/wiki/Free_and_open_source_software">free, open source</a> underpinnings meant it could not be easily stamped out. It was first ignored, then fought, then acknowledged as an inevitable force by media corporations who <a href="http://www.makeuseof.com/tag/8-legal-uses-for-bittorrent-youd-be-surprised/">now themselves use the protocol </a>for its advantages in content delivery.<br />
<br />
Stage Two: <a href="http://bitcoin.org/en/">Bitcoin</a> is a distributed anonymous currency system. It proved itself as an idea by allowing easy and secure global transfers of wealth, while resisting <a href="http://web.cs.wpi.edu/~ciaraldi/INC2000/Risks-paper.pdf">efforts to destroy</a> the perceived value of the blockchain. Although not sharing code with BitTorrent, it did share peer to peer networking ideas, and ideals of openness.<br />
<br />
<h3>
The Rise of the Distributed Anonymous Corporation</h3>
Stage Three: More recently, as Bitcoin's model has been proven useful enough to spawn numerous clones and experimental attempts at improving its protocol, concepts such as peer-to-peer anonymous trading systems relying on TOR - <a href="https://github.com/goshakkk/decentralized-anonymous-marketplace-concept">Decentralized Anonymous Marketplace</a> (DAM) and peer-to-peer structured investments - <a href="http://invictus-innovations.com/protoshares">Distributed Anonymous Corporations</a> (DAC) have appeared. These DAC systems may operate on similar models of "trust-less trust" and openness as the first two stages, as well as near identical technical underpinnings. DAC... or "corp"? Sounds familiar...in any case, our word comes from a Latin root meaning "body".<br />
<br />
The distributed anonymous corporation can keep public records of its meetings, has a transaction history, and even a company coin. In keeping with historical precedent, the corp probably operates a company store, too - but unlike back in the glory days of company towns, the DAC is <i>distributed</i>. They can't force anyone to shop at their store - it just might be advantageous. In fact, many cryptocurrencies do <a href="https://litecointalk.org/index.php?PHPSESSID=p20muebc6o5pf80dmevserpfv2&board=5.0">already operate</a> in a <a href="http://cryptomunity.boards.net/">similar fashion</a>
to corporations, by necessity - hiring developers, maintaining various
public functions and so forth. And of course that old stand-by, T-shirt sales. However most of those functions are performed outside the blockchain, again by necessity.<br />
<br />
One issue with making so many additions to the original purpose of the Bitcoin technology (commonly referred to as "stuffing things into the blockchain"), is that many desirable features require centralization and trust in a single individual or organization ("party"). This applies doubly for ideas such as ProtoShares, where the entire value of the instrument is predicated on future ventures to be launched by the controlling organization - this would be similar to investing in a company with no product or monetization plan. It may well turn out that contenders in the DAC market will need to conform to strict best practices and endure a period of low investment prior to showing real results.<br />
<br />
<h3>
Systems of Distributed Anonymous Government</h3>
Stage Four: I propose that another concept, Distributed Anonymous Governments (DAG) will eventually appear, in order to protect the interests of the corps and their members. A government for the purposes of this idea can be thought of as a corporation with a remarkably diverse shareholder base and the primary purpose of guaranteeing their ... well, whatever the government decides to do based on its noisiest and most powerful constituents, in practice. Which brings us to one of the first interesting points about taking government virtual:<br />
<br />
The distributed anonymous government is by nature voluntary, and therefore participation in it must be useful. Else it will cease to exist with the proverbial quickness. No threat of imminent bodily harm can be used to coerce participation in the schemes and machinations of the DAG. At least, until <a href="http://news.cnet.com/8301-13579_3-57551500-37/man-arrested-for-ipad-mini-theft-reportedly-had-maxi-mouth/">roving bands of mercenaries with tablet computers</a> begin to enforce its provisions. Oversight is already built into the Bitcoin protocol via <a href="http://elidourado.com/blog/bitcoin-arbitration/">multisignature transactions</a>, and can provide a mechanism for jury and court systems, even very large juries.<br />
<br />
The distributed anonymous government will save a lot of money on real estate. No more lines at benefit offices, and no spending on roads. Instead, the distributed anonymous government's budget in meatspace will mostly revolve around computing hardware and payroll costs, while its citizens will tend to favor investment in high speed internet systems, in traditional politics. It would be easy to imagine pork barrel projects being added to a DAG's budget eventually, but that's where the next part of the process comes into play. Pork will have to earn its place - and then it wouldn't be pork, would it?<br />
<br />
The distributed anonymous government's taxes, expenses, currency issuance, and election records will be public, and totally malleable given a consensus of constituents. Instead of voting with your dollars or your feet (gosh, remember when there were <a href="http://www.wtsp.com/news/national/article/280630/81/Voting-machine-problems-raise-questions">other ways</a> <a href="http://www.politico.com/story/2013/09/new-york-city-elections-voting-machines-96569.html">to vote for</a> <a href="http://www.cbsnews.com/news/voting-problems-reported-in-some-states/">most of us</a>?), you can vote with your fork - by running a different version of the DAG's software. True direct democracy will be not only possible and efficient, but actually necessary for functioning. As a result, only popular policies will be implemented (for long!). This will produce an interesting dichotomy in some geographical nation-states where the tyranny of the few is contrasted with the tyranny of the majority in a DAG. Many may prefer the latter if given an option.<br />
<br />
Of course, with current blockchain models, one's personal democracy in the DAG would be direct in relation to hashpower. There are obviously some fine details left to work out in that aspect. One is reminded of <a href="https://en.wikipedia.org/wiki/Aleksandr_Solzhenitsyn">A. Solzhenitsyn's</a> descriptions of the Soviet elite's holiday dachas, better grocery stores, etc. Technology updates such as the SCRYPT algorithm and even more restrictive mining algorithms such as Sifcoin's CPU-only mining, are intended to mitigate this problem by keeping participation accessible to the masses without special hardware, although hordes of VPS systems can still tackle CPU mining to great effect - anyone can rent a VPS to do this.<br />
<br />
This idea of a distributed anonymous government, or more generally "how would an internet government function?" has been percolating in my mind for some time, and it occured to me more recently that the blockchain will be the place it happens. Comments about why this is the best idea ever, totally impossible, already in fact happening, or a just plain terrible idea are welcome.
<i> </i><br />
<br />
<i>This article was originally published by the author on the Wall Street Crypto blog (http://www.wallstreetcrypto.com/2013/12/distributed-anonymous-government-fourth.html).</i>Sectio Aureahttp://www.blogger.com/profile/05757746234772925958noreply@blogger.com0tag:blogger.com,1999:blog-5137550877262530802.post-40124251481004102262014-01-04T13:06:00.002-08:002014-01-04T13:10:46.882-08:00Updating a self-signed SSL certificate for Apache on Ubuntu 12.04<div class="separator" style="clear: both; text-align: center;">
<a href="https://upload.wikimedia.org/wikipedia/commons/0/0e/Stipula_fountain_pen.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="265" src="https://upload.wikimedia.org/wikipedia/commons/0/0e/Stipula_fountain_pen.jpg" width="400" /></a></div>
<br />
I had to update a self-signed SSL certificate for Apache today on an Ubuntu 12.04 server, as the old certificate had expired. I found a <a href="http://www.togaware.com/linux/survivor/Renew_SSL.html">recipe for Debian</a> which explained the process in a way that I was able to adapt to Ubuntu. Here is the complete process to renew your cert for another 365 days:<br />
<br />
<br />
Change directories to the certificate location:<br />
<pre></pre>
<pre>cd /etc/apache2/ssl</pre>
<br />
Generate a new key:<br />
<pre>sudo openssl genrsa -out example.com.key 1024 </pre>
<br />
Generate a certificate signing request:<br />
<pre></pre>
<pre>sudo openssl req -new -key example.com.key -out example.com.csr </pre>
<pre> </pre>
Generate a new certificate, by signing the CSR with the key:<br />
<pre></pre>
<pre>sudo openssl x509 -req -days 365 -in example.com.csr \</pre>
<pre> -signkey example.com.key -out example.com.crt </pre>
<pre></pre>
<pre> </pre>
<span style="font-family: inherit;">Move the old key and certificate away, and copy the new key and certificate in: </span><br />
<br />
<pre>sudo mv apache.key apache.key.old
sudo cp example.com.key apache.key
sudo mv apache.crt apache.crt.old
sudo cp example.com.crt apache.crt </pre>
<pre> </pre>
<pre></pre>
<span style="font-family: inherit;">Restart the webserver:</span><br />
<pre></pre>
<pre>sudo service apache2 restart</pre>
<br />
Now, load your website via SSL. You should be prompted to accept the untrusted certificate (not expired). Add the permanent exception, and you're good to go for another 365 days.Sectio Aureahttp://www.blogger.com/profile/05757746234772925958noreply@blogger.com0tag:blogger.com,1999:blog-5137550877262530802.post-982365275272450742013-08-21T16:45:00.002-07:002013-08-21T16:56:09.151-07:00Cloning Scrapy scrapers easily with django-dynamic-scraper<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9PVXbAXZcli1wldKm-9jijc-zWYHn2HZBBFXpGN0RXmpzns7bp88CHeuhk3vgKFTafZ16nSGYXG9zsYsC5E0rLNYmTFelNP-PQqI0-H6pCFZT3VsEqWjs19ct08w2KSprIFM64wH3hfbB/s1600/048661341735lg.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9PVXbAXZcli1wldKm-9jijc-zWYHn2HZBBFXpGN0RXmpzns7bp88CHeuhk3vgKFTafZ16nSGYXG9zsYsC5E0rLNYmTFelNP-PQqI0-H6pCFZT3VsEqWjs19ct08w2KSprIFM64wH3hfbB/s1600/048661341735lg.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Scraping requires some flexible tools.</td><td class="tr-caption" style="text-align: center;"><br /></td></tr>
</tbody></table>
<h2>
The backstory</h2>
<br />
I have a Django project which uses django-dynamic-scraper, a scrapy wrapper, to gather data from various websites. I found myself creating a series of nearly identical scrapers to get data from different parts of these sites. This was rather inefficient since each scraper had a dozen fields or so, and there is no built in solution for copying a scraper.<br />
<br />
I explored form autofill solutions before realizing I was overthinking the problem. All I needed to do was create a small script taking advantage of Django model access. This could probably be worked into manage.py, but I just wanted something to run in a hurry.<br />
<br />
<h2>
The script</h2>
<br />
clone-scraper.py:<br />
<blockquote class="tr_bq">
<br />
<span style="font-family: "Courier New",Courier,monospace;">import sys</span><br />
<span style="font-family: "Courier New",Courier,monospace;">from dynamic_scraper.models import Scraper, ScraperElem</span><br />
<span style="font-family: "Courier New",Courier,monospace;"><br /></span>
<span style="font-family: "Courier New",Courier,monospace;">s = Scraper.objects.get(name='My Template')</span><br />
<span style="font-family: "Courier New",Courier,monospace;">s.name=sys.argv[1]</span><br />
<span style="font-family: "Courier New",Courier,monospace;">s.id = None</span><br />
<span style="font-family: "Courier New",Courier,monospace;">s.pk = None</span><br />
<span style="font-family: "Courier New",Courier,monospace;">s.save()</span><br />
<span style="font-family: "Courier New",Courier,monospace;"><br /></span>
<span style="font-family: "Courier New",Courier,monospace;">se = ScraperElem.objects.filter(scraper__name='My Template')</span><br />
<span style="font-family: "Courier New",Courier,monospace;"><br /></span>
<span style="font-family: "Courier New",Courier,monospace;">for item in se:</span><br />
<span style="font-family: "Courier New",Courier,monospace;"> item.scraper = s</span><br />
<span style="font-family: "Courier New",Courier,monospace;"> item.id = None</span><br />
<span style="font-family: "Courier New",Courier,monospace;"> item.pk = None</span><br />
<span style="font-family: "Courier New",Courier,monospace;"> item.save()</span></blockquote>
<br />
<h2>
Usage</h2>
<br />
<blockquote class="tr_bq">
<span style="font-family: "Courier New",Courier,monospace;">python clone-scraper.py "New Scraper Name"</span></blockquote>
<br />
I run this script from within my virtualenv where Django lives. That gives it access to the models in my apps. If you're not sure which python executable you're using, run "which python" to find out. You want the one from the virtualenv.<br />
<br />
<br />
<h2>
How it works</h2>
<br />
The script first accesses the django-dynamic-scraper models to work with. Then it gets the "template" Scraper to be copied from, which has already been created. This working copy of a Scraper has its name set to the first command line argument. It also has its keys reset so that a new Scraper can be saved and given a new ID.<br />
<br />
Then, the different ScraperElem fields from the new scraper are called and given the values of the fields from the template. Finally, those ScraperElem objects are saved.<br />
<br />
This is tested on Django 1.5 and 1.5.2, but the technique should work with older versions.<br />
<br />
<h2>
Homework</h2>
<br />
Add a second argument for template name.Sectio Aureahttp://www.blogger.com/profile/05757746234772925958noreply@blogger.com0tag:blogger.com,1999:blog-5137550877262530802.post-67676167653809450112013-01-27T14:46:00.001-08:002013-01-27T14:50:09.567-08:00Checking Python style with pep8<div class="tr_bq">
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVecIQvQ2QATfyRjpGRY8pcQyOSbAycd2JEjiZGEdrxKpdga9tUkta1MIMTwC-SAtzcV8aGvOp-zIgxYLLYtmbdiSxBMV_CvepKHKOitZiOBPLErZYhtWEWbBoZbfgtwyhcKNrXDK6Spwt/s1600/new-rock-cowboy-boots-7802-c2-python-style-boot-60-days-custom-make-only-11194-0-1310661611000.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVecIQvQ2QATfyRjpGRY8pcQyOSbAycd2JEjiZGEdrxKpdga9tUkta1MIMTwC-SAtzcV8aGvOp-zIgxYLLYtmbdiSxBMV_CvepKHKOitZiOBPLErZYhtWEWbBoZbfgtwyhcKNrXDK6Spwt/s320/new-rock-cowboy-boots-7802-c2-python-style-boot-60-days-custom-make-only-11194-0-1310661611000.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">A solid foundation in Python Style</td><td class="tr-caption" style="text-align: center;"><br /></td><td class="tr-caption" style="text-align: center;"><br /></td></tr>
</tbody></table>
<br />
<br />
If you've been coding with the Python language for a while, you have probably heard of <a href="http://www.python.org/dev/peps/pep-0008/">PEP 8</a>, the authoritative Python coding style guide authored by Guido van Rossum. While PEP 8 makes for a thrilling and inspiring read, something like a cross between <a href="http://www.amazon.com/gp/product/1607105624/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=1607105624&linkCode=as2&tag=i0b9c-20">Uncle John's Bathroom Reader</a><img alt="" border="0" class="xwmkpmtevwmbbjgcnztb" height="1" src="http://www.assoc-amazon.com/e/ir?t=i0b9c-20&l=as2&o=1&a=1607105624" style="border: none !important; margin: 0px !important;" width="1" /> and the <a href="http://en.wikipedia.org/wiki/United_States_Constitution">US Constitution</a>, it never occurred to me that there was a living application of the principles embodied in its chapters.</div>
<br />
<a href="http://www.reddit.com/r/todayilearned/">Today I learned</a> that 'pep8' is a Python app! If you have pip installed, you can just 'pip install pep8'. If you don't have pip installed, install pip first with 'sudo apt-get install python-pip'. Pip is like apt-get, but for Python.<br />
<br />
Pay attention, because this is the cool part. Now that you have pep8 you can use it to check your actual code against the actual PEP 8! It's like Guido himself was standing next to your desk, <a href="http://www.python.org/~guido/pics.html">calmly eating canteloupe</a> and critiquing your code for Pythonicity.<br />
<br />
Here is the actual output I got from pep8 when I ran it for the first time on my Django project's settings.py:<br />
<br />
<blockquote class="tr_bq">
<span style="font-family: "Courier New",Courier,monospace;">$ pep8 cpi/settings.py</span><br />
<span style="font-family: "Courier New",Courier,monospace;">myproject/settings.py:6:80: E501 line too long (82 > 79 characters)</span><br />
<span style="font-family: "Courier New",Courier,monospace;">myproject/settings.py:110:1: E122 continuation line missing indentation or outdented</span><br />
<span style="font-family: "Courier New",Courier,monospace;">myproject/settings.py:133:1: W293 blank line contains whitespace</span><br />
<span style="font-family: "Courier New",Courier,monospace;">myproject/settings.py:138:1: W293 blank line contains whitespace</span><br />
<span style="font-family: "Courier New",Courier,monospace;">myproject/settings.py:143:13: W291 trailing whitespace</span><br />
<span style="font-family: "Courier New",Courier,monospace;">myproject/settings.py:156:80: E501 line too long (90 > 79 characters)</span><br />
<span style="font-family: "Courier New",Courier,monospace;">myproject/settings.py:130:1: E122 continuation line missing indentation or outdented</span><br />
<span style="font-family: "Courier New",Courier,monospace;">myproject/settings.py:151:14: E261 at least two spaces before inline comment</span><br />
<span style="font-family: "Courier New",Courier,monospace;">myproject/settings.py:152:22: E261 at least two spaces before inline comment</span><br />
<span style="font-family: "Courier New",Courier,monospace;">myproject/settings.py:153:16: E261 at least two spaces before inline comment</span><br />
<span style="font-family: "Courier New",Courier,monospace;">myproject/settings.py:231:1: E303 too many blank lines (3)</span><br />
<span style="font-family: "Courier New",Courier,monospace;"></span></blockquote>
Ouch, that's a lot of errors! These are all the blunders in Python style which don't actually prevent execution of the code when it's run through the interpreter.<br />
<br />
I was able to clear up all the errors, after which pep8 will run with no output:<br />
<br />
<blockquote>
<span style="font-family: "Courier New",Courier,monospace;">$ pep8 cpi/settings.py</span></blockquote>
<br />
Joy!Sectio Aureahttp://www.blogger.com/profile/05757746234772925958noreply@blogger.com0tag:blogger.com,1999:blog-5137550877262530802.post-2220111347392537322012-09-18T16:26:00.000-07:002012-09-23T10:40:23.432-07:00Upgrading Kubuntu 12.04 to 12.10 Beta 1 "Quantal Quetzal"<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://sectio-aurea.blogspot.com/" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="219" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyLZK-9FDODpcfsIph-_sZe3WdE6OqH2NVwvqLId_3lWRZPJWjtM5ohm7GX80-NL0o8GZKFOKjcsWen1MoyefQ0OeDDVqwzMHeBqeVZOAu7VScQbwGU2_s_eBGcwJtylT9LtjVA_ZbaTtl/s400/Kubuntu-12-10-Alpha-1-Screenshot-Tour.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Softpedia screenshot of the Kubuntu 12.10 Beta 1 default desktop</td><td class="tr-caption" style="text-align: center;"><br /></td></tr>
</tbody></table>
As noted on the official Kubuntu site <a href="http://www.kubuntu.org/news/12.10-beta-1">http://www.kubuntu.org/news/12.10-beta-1</a>) site, Kubuntu 12.10 beta 1 has been released. Here's how I upgraded my Ubuntu 12.04 system with KDE desktop to 12.10:<br />
<br />
<a name='more'></a><br />
<br />
<b>Set software sources:</b><br />
<br />
Run the KDE package manager: Alt-F2 and enter "<span style="font-family: "Courier New",Courier,monospace;">muon</span>". Under Settings menu, choose "Configure Software Sources" and go to the Updates tab. Under Release Updates at the bottom, choose "Normal Updates". Close the "Configure Software Sources" window and Muon.<br />
<br />
<b>Start the upgrade:</b><br />
<br />
Hit Alt-F2 again and open the KDE release upgrade manager by entering "<span style="font-family: "Courier New",Courier,monospace;">kubuntu-devel-release-upgrade</span>". Enter your password when prompted.<br />
<br />
Click "Start Upgrade" once the release upgrade manager has finished loading.<br />
<br />
Warning: At the point of choosing a display manager (login screen app), if you choose the new default "LightDM", do not log out of KDM when prompted by LightDM's installation script. Simply decline to logout, and continue with the install process.<br />
<br />
Click "Replace" when asked about configuration file changes, unless you know you have local modifications you wish to preserve.<br />
<br />
Click "Remove" when asked about obsolete packages.<br />
<br />
<b>Finish the upgrade:</b><br />
<br />
And finally, restart when prompted to do so at the end of the process. Check for any more package updates to apply, and restart again if prompted.<br />
<br />
Note: If things break horribly and you're left with a system that won't boot into a graphical interface, it's likely the upgrade was incomplete. One way to fix this is to select "Safe Mode" from the boot menu, then run "aptitude -f" as root to fix the broken packages by continuing installation of the distribution upgrade. This is unlikely to happen unless your system is mega-crufty.<br />
<b><br /></b>
<b>Final thoughts:</b><br />
<br />
Enjoy your shiny new Kubuntu 12.10 with kernel 3.5.0 and KDE 4.9! For me, my desktop is much more responsive - everything from application launch time to application performance is noticeably better in Kubuntu 12.10.<br />
<br class="Apple-interchange-newline" />
Source: <a href="https://help.ubuntu.com/community/QuantalUpgrades/Kubuntu">https://help.ubuntu.com/community/QuantalUpgrades/Kubuntu</a> and my upgrade experience.Sectio Aureahttp://www.blogger.com/profile/05757746234772925958noreply@blogger.com0tag:blogger.com,1999:blog-5137550877262530802.post-65513032797971636992011-05-07T15:33:00.000-07:002012-09-23T12:06:09.193-07:00Bitcoin Mining on Ubuntu 11.04 "Natty" with poclbm and ATI<div class="separator" style="clear: both; text-align: center;">
<a href="http://sectio-aurea.blogspot.com/2011/05/bitcoin-mining-on-ubuntu-1104-natty.html" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihvQhPVfwHO5ibgTuuny7fHhY6sKuLcC49SDGprOTZu_60qCr08eU0oSVOc7sinDt9zrv7knzG9B1xNRCFoLZOrEnvVj5V6MebH1uDOu3EBWCEaZFdmOgD1ujfPzokjOW6odofQPz1x3jY/s400/bitcoin530.png" width="200" /></a></div>
<br />
<i>Updated 6/19/2011 - updated bitcoin app version to 0.3.23, simplified bitcoin setup directions</i><br />
<br />
<i>Updated 6/8/2011 - updated example app versions, clarified use of pools, clarified use of bitcoin standalone app, path cleanup, added link to headless mining guide</i><br />
<br />
<h3>
1. Introduction</h3>
<br />
Recently, I got interested in the new peer-to-peer digital currency, Bitcoin (read about it all about it at <a href="http://www.bitcoin.org/">bitcoin.org</a> if you're not familiar with it yet). Having decided to make use of my idling ATI graphics card for some bitcoin mining, I was able to cobble together a mining setup on Ubuntu 11.04 "Natty Narwhal" without too much trouble. It uses a standard miner app "poclbm", the Python OpenCL Bitminer.<br />
<br />
<a name='more'></a><br />
<br />
Note that I already had a working official, ATI 'fglrx' graphics card driver package installed, so you'll want that taken care of before starting. I am also running the 32-bit version of Ubuntu; if you are on 64-bit, you can follow the 64-bit specific directions here (tested on 64-bit systems).<br />
<br />
<h3>
2. Install Ubuntu packages</h3>
<br />
Install required packages:<br />
<br />
<pre>sudo aptitude install python-setuptools python-numpy \
subversion g++ libboost-all-dev</pre>
<br />
<h3>
3. Install Bitcoin</h3>
<br />
Get the <a href="http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.23/bitcoin-0.3.23-linux.tar.gz/download">latest Bitcoin distribution</a>, (0.3.23 as of this writing), unpack it to ~/bitcoin-0.3.23/, and set permissions.<br />
<br />
<pre>cd ~
wget http://downloads.sourceforge.net/project/bitcoin/Bitcoin/bitcoin-0.3.23/bitcoin-0.3.23-linux.tar.gz
tar xzvf bitcoin-0.3.23-linux.tar.gz
chmod +x bitcoin-0.3.23/bin/*/bitcoin*</pre>
<br />
Configuring bitcoin: <br />
<pre>cd ~
mkdir -p .bitcoin</pre>
<br />
Make up user/password here if you like:<br />
<br />
<pre>echo "rpcuser=user" >> .bitcoin/bitcoin.conf
echo "rpcpassword=password" >> .bitcoin/bitcoin.conf
</pre>
<br />
Now we can run bitcoin in server mode,<br />
<pre>~/bitcoin-0.3.23/bin/32/bitcoin -server & </pre>
<br />
And wait...and wait...hours...until the current block chain is downloaded and verified by your bitcoin client to catch up with the rest of the network. In the meantime, you can continue installing the rest of the software required for mining.<br />
<br />
<h3>
4. Install python-jsonrpc library</h3>
<br />
Install python-jsonrpc from official Subversion repository:<br />
<pre>cd ~
svn checkout http://svn.json-rpc.org/trunk/python-jsonrpc
cd python-jsonrpc/
sudo python setup.py install
</pre>
<br />
<h3>
5. Install AMD APP SDK</h3>
<br />
Grab the AMD APP SDK from the <a href="http://developer.amd.com/gpu/amdappsdk/downloads/pages/default.aspx">AMD website</a> and install it:<br />
<br />
64-bit:<br />
<br />
<pre>cd ~
wget http://download2-developer.amd.com/amd/APPSDK/AMD-APP-SDK-v2.4-lnx64.tgz
tar xvzf AMD-APP-SDK-v2.4-lnx64.tgz
echo export AMDAPPSDKROOT=${HOME}/AMD-APP-SDK-v2.4-lnx64/ >> ~/.bashrc
echo export AMDAPPSDKSAMPLESROOT=${HOME}/AMD-APP-SDK-v2.4-lnx64/ >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=${AMDAPPSDKROOT}lib/x86_64:${LD_LIBRARY_PATH}' >> ~/.bashrc
source ~/.bashrc
cd /
sudo tar xfz $AMDAPPSDKROOT/icd-registration.tgz
</pre>
<br />
32-bit:<br />
<br />
<pre>cd ~
wget http://download2-developer.amd.com/amd/APPSDK/AMD-APP-SDK-v2.4-lnx32.tgz
cd ~
tar xzvf AMD-APP-SDK-v2.4-lnx32.tgz
cd AMD-APP-SDK-v2.4-lnx32/
echo export AMDAPPSDKROOT=${HOME}/AMD-APP-SDK-v2.4-lnx32/ >> ~/.bashrc
echo export AMDAPPSDKSAMPLESROOT=${HOME}/AMD-APP-SDK-v2.4-lnx32/ >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=${AMDAPPSDKROOT}/lib/x86:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc
cd /
sudo tar xfz $AMDAPPSDKROOT/icd-registration.tgz
</pre>
<br />
<br />
<h3>
6. Install pyopencl</h3>
<br />
Now you have to install pyopencl from source because the Ubuntu package depends on the Nvidia driver package, which will mess up our system if we are on ATI.<br />
<br />
<pre>cd ~
wget http://pypi.python.org/packages/source/p/pyopencl/pyopencl-0.92.tar.gz#md5=0680f7272fe3ab5a3bcb0b6cfbd74994
tar xzvf pyopencl-0.92.tar.gz
cd pyopencl-0.92</pre>
<br />
32-bit configure:<br />
<br />
<pre>./configure.py --cl-inc-dir=${AMDAPPSDKROOT}include --cl-lib-dir=${AMDAPPSDKROOT}lib/x86</pre>
<br />
64-bit configure:<br />
<br />
<pre>./configure.py --cl-inc-dir=${AMDAPPSDKROOT}include --cl-lib-dir=${AMDAPPSDKROOT}lib/x86_64
</pre>
<br />
Now build pyopencl:<br />
<br />
<pre>make
sudo make install</pre>
<br />
<h3>
7. Install poclbm command line miner</h3>
<br />
Get poclbm modules:<br />
<pre>cd ~
mkdir poclbm
cd poclbm
wget --no-check-certificate https://github.com/m0mchil/poclbm/raw/master/BitcoinMiner.cl
wget --no-check-certificate https://github.com/m0mchil/poclbm/raw/master/BitcoinMiner.py
wget --no-check-certificate https://github.com/m0mchil/poclbm/raw/master/poclbm.py
wget --no-check-certificate https://github.com/m0mchil/poclbm/raw/master/sha256.py
cd ~
</pre>
<br />
<br />
<h3>
8a. Solo mining</h3>
<br />
When the block chain is downloaded fully, you can start up poclbm for solo mining:<br />
<pre>python poclbm/poclbm.py -d 0 --user user --pass password</pre>
And wait a bit until you see khash/second appear.<br />
<br />
<h3>
8b. Pooled mining</h3>
<br />
To get more granularity from your mining results (i.e. the ability to make smaller earnings sooner, in exchange for a 0-3% fee), you can sign up for pooled mining at one of many pools, such as btcguild, btcmine, BitcoinPool, bitcoins.lc, or eligius. I recommend choosing one of the smaller pools in order to maintain health of the network, rather than favoring the largest pool by default. Search Google for "50% bitcoin hashpower problem" for more information on why this is important.<br />
<br />
After you create an account at a pool, you'll generally need to create a separate worker for each miner that you run.<br />
<br />
My poclbm command to mine in a pool looks like this:<br />
<pre>python poclbm/poclbm.py -d 0 --host=[pool hostname] --port=8332 --user=[worker] --pass='[worker password]'</pre>
<br />
<h3>
9. Final notes and related resources</h3>
<br />
After I wrote this, I found another complete guide for Ubuntu 11.04, targeted at 64-bit users, including the ATI fglrx driver installation if you haven't done that yet. You can find it on the <a href="http://www.bitcoin.org/smf/index.php?topic=7514.0">bitcoin.org forums</a>.<br />
<br />
A <a href="http://forum.bitcoin.org/index.php?topic=9239.0">guide for headless mining on Ubuntu 11.04 64-bit </a>also exists on the bitcoin.org forums.<br />
<br />
Debian users may also be interested in <a href="http://www.bitcoin.org/smf/index.php?topic=7374.0">LinuxCoin</a>, a ready-to-go Bitcoin client/mining distro based on Debian Squeeze.<br />
<br />
Any problems following the directions, or comments, let me know. Happy mining!Sectio Aureahttp://www.blogger.com/profile/05757746234772925958noreply@blogger.com20tag:blogger.com,1999:blog-5137550877262530802.post-17248197970384223112011-04-28T15:33:00.000-07:002012-09-23T10:41:19.498-07:00Ubuntu 11.04 "Natty" release<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDvbe_uOLX43S2O7-JpkKO0zwVSs0cLADv4kz0ETmwvmaCb4ZIUeF3J987RAzGxwcYfZUOSpEg-m3Wq5qBsNb9muJVxuT2gOhJnt-iP_YLKey1P9swxvNEi5FTF45s8hZfPuEkK3F_icLx/s1600/snapshot3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDvbe_uOLX43S2O7-JpkKO0zwVSs0cLADv4kz0ETmwvmaCb4ZIUeF3J987RAzGxwcYfZUOSpEg-m3Wq5qBsNb9muJVxuT2gOhJnt-iP_YLKey1P9swxvNEi5FTF45s8hZfPuEkK3F_icLx/s400/snapshot3.png" width="400" /></a></div>
<br />
The new Ubuntu 11.04, codenamed "Natty" has been released today! You can get it via Update Manager if you're already running Ubuntu 10.10. If you're new to Ubuntu, you'll want to visit the download page and get your <a href="http://www.ubuntu.com/download/ubuntu/download">Ubuntu installer CD image</a>. You can also visit the <a href="http://www.ubuntu.com/">main Ubuntu site</a> to learn more about this release.<br />
<br />
<a name='more'></a><br />
<br />
The screenshot above shows my KDE 4.6/Kubuntu desktop running in Natty. I'm very well pleased with it. I'm using the default theme; my only change was to move the taskbar to the left where I prefer it. Open windows include Firefox 4 browser, and Konsole terminal. You can see KeePass, KTorrent and QuickSynergy all running as tray apps; plus several browsers, Filezilla and Xchat all happily humming along. <br />
<br />
I'm finally getting used to the idea of desktop widgets, and you can see a couple of my favorites in the screenshot as well:<br />
<ul>
<li>Color Picker lets me grab any color from the screen with an eyedropper - very useful for graphics work.</li>
<li>NASA Astronomy Picture of the Day, because I like pictures of outer space.</li>
<li>GMail Notifier to tell me when my GMail accounts have new mail.</li>
</ul>
<br />
All these widgets are available in the default installation of KDE. You can find them (and many more) by clicking on the Toolbox in the top right corner of the desktop.<br />
<br />
Hope you enjoy this release as much as I have! Cheers.Sectio Aureahttp://www.blogger.com/profile/05757746234772925958noreply@blogger.com0tag:blogger.com,1999:blog-5137550877262530802.post-14364404124975018422011-04-14T08:01:00.000-07:002012-09-23T10:41:35.286-07:002 High Quality Free GPL Licensed Wordpress ThemesI found these two free Wordpress media-targeted themes while building a Wordpress site and thought I'd share them. <br />
<br />
The first theme is called "Magazeen", and it's released by smashingmagazine.com under the GPLv2 license. Here's a screenshot:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://media.smashingmagazine.com/cdn_smash/images/magazeen-wordpress-theme/main.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="325" src="http://media.smashingmagazine.com/cdn_smash/images/magazeen-wordpress-theme/main.jpg" width="500" /></a></div>
<br />
I like this theme because it's got large thumbnails, good for those high quality images you need to feature.<br />
<br />
<a name='more'></a><br />
<br />
<a href="http://www.smashingmagazine.com/2009/02/23/magazeen-free-magazine-look-wordpress-theme/">Download Magazeen for free from Smashing Magazine</a><br />
<br />
Another theme which is attractive and polished looking, aimed at photo bloggers, is Vostok. Like Magazeen, Vostok is also created by a team who has released it under GPLv2. Here are the two versions, Light and Dark:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.vostok.es/blog/wp-content/uploads/2010/09/black-white-vostoks1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="500" src="http://www.vostok.es/blog/wp-content/uploads/2010/09/black-white-vostoks1.png" width="515" /></a></div>
<br />
I'll post about Wordpress plugins as soon as I get used to the platform a bit more and learn which plugins I will be relying on.<br />
<br />
<a href="http://code.google.com/p/vostok-theme/">Download Vostok for free from Google Code</a>Sectio Aureahttp://www.blogger.com/profile/05757746234772925958noreply@blogger.com0tag:blogger.com,1999:blog-5137550877262530802.post-9978245446335152462011-03-25T21:51:00.000-07:002012-09-23T10:41:54.611-07:00Upgrading Ubuntu from 10.04 to 10.10 with a local mirror<div style="font-family: inherit;">
<span style="font-size: small;">I upgraded from Ubuntu 10.04 to Ubuntu 10.10 on my desktop today, using Update Manager. Since 10.04 is a Long Term Support release which features a long period of stability (bug fixes and security fixes only), 10.10 is not automatically offered. I had to hit the Settings button in Update Manager to bring up the Software Sources dialog, then the Updates tab and select "Normal releases" from the Show new distribution releases: drop-down menu in order to get the 10.10 upgrade to show up.</span></div>
<div style="font-family: inherit;">
<span style="font-size: small;"></span><br />
<a name='more'></a><span style="font-size: small;"><br />
</span></div>
<div style="font-family: inherit;">
<span style="font-size: small;"><b>Connecting to a mirror</b></span></div>
<div style="font-family: inherit;">
<span style="font-size: small;"><br />
</span></div>
<div style="font-family: inherit;">
<span style="font-size: small;">I wanted</span><span style="font-size: small;"> to connect to a local Ubuntu archive mirror for the update, since the upgrade would require downloading a large number of packages. There is a large official mirror list at <a href="https://launchpad.net/ubuntu/+archivemirrors">https://launchpad.net/ubuntu/+archivemirrors</a>. To find the repository address for a mirror, click "http" next to its name in this list, then browse to "dists" inside the directory it shows you. Copy the entire resulting URL from the browser's location bar:</span><br />
<blockquote>
<span style="font-size: small;">http://your.mirror.hostedby.edu/ubuntu/dists</span></blockquote>
<span style="font-family: inherit;">To construct the full repository address for Update manager, add "deb" with a space at the front, and your current Ubuntu version's codename after a space at the end, like this:</span><br />
<blockquote>
<span style="font-size: small;">deb http://your.mirror.hostedby.edu/ubuntu/dists/ lucid</span></blockquote>
<span style="font-family: inherit;">To enable this mirror, I clicked the "Add" button on the Other Software tab in Software Sources, then pasted in the full address as above. After that, the new mirror was recognized as an main source and I found it on the "Ubuntu Software" tab, in the "Download from" menu. </span><br />
<br />
<span style="font-size: small;">Side note: If you have ever added a package mirror the old way, via APT's "sources.list" file, you'll be happy to know that this method fills out that same sources.list with all necessary permutations of the new mirror address, including all the extra repositories like universe or non-free which you'd already enabled elsewhere. It's just much easier to use the Update Manager to handle this now.<b> </b></span><br />
<br />
<span style="font-size: small;"><b>The actual upgrade </b></span><br />
<br />
<span style="font-size: small;">Events of note which resulted during and after the upgrade:</span></div>
<ul style="font-family: inherit;">
<li><span style="font-size: small;">The download of 10.10 from my local mirror took a little over 30 minutes for 1800 packages, which was nice. The config stage took close to an hour after that, with minimal interruptions from Update Manager asking how to proceed.</span></li>
<li><span style="font-size: small;">Possibly the most exciting thing that happened: A scary, pixelated distorted warning "LOADING CRASH KERNEL" appeared mid screen off center, in early boot stage, but everything was in fact OK after that. Oh well.</span></li>
<li><span style="font-size: small;">During the upgrade, Update Manager asked if I wanted to keep my customized Apache configuration files and I told it "yes."</span></li>
<li><span style="font-size: small;">Also during the upgrade, <a href="http://ardour.org/">Ardour</a> was removed (I'm not sure why, I do have Ubuntu Studio repositories enabled) and I'll have to look into reinstalling it. This was mentioned by Update Manager, with a warning about the upgrade removing a bunch of other packages, none of which i cared about. </span></li>
<li><span style="font-size: small;">Upon first login to 10.10, my desktop background had disappeared. Oops.</span></li>
<li><span style="font-size: small;">Font anti-aliasing is noticeably better, as if the "sub-pixel smoothing" algorithm in Appearance > Fonts was improved.</span></li>
<li><span style="font-size: small;">My Intel 5 Series/3400 Series on-board microphone input started working correctly for the first time (Didn't work in 10.04.) </span></li>
</ul>
<div style="font-family: inherit;">
<span style="font-family: inherit;">My custom desktop theme is unchanged, save for those smoother looking fonts. The ATI Fire GL driver installed via Administration > Hardware Drivers (renamed "Additional Drivers" in 10.10) hums along as always.</span><span style="font-size: small;"></span><br />
<br />
<span style="font-size: small;"><b>Working out a few bugs </b></span><br />
<br />
<span style="font-size: small;">A few seconds on Google led me to <a href="http://ubuntuforums.org/showthread.php?t=1588708">this thread</a> about desktop pictures disappearing on 10.10 upgrade, and indeed, like the folks on the thread I'm running <a href="http://ubuntu-tweak.com/">Ubuntu Tweak</a> and had disabled desktop icons prior to the upgrade. So this is an Ubuntu Tweak problem, really. I next went into Tweak's desktop settings, checked "Show desktop icons", and my old wallpaper (and icons) came back. I then unchecked it again and my icons vanished, wallpaper remained. Perfect!</span></div>
<div style="font-family: inherit;">
<br /></div>
<div style="font-family: inherit;">
<span style="font-size: small;">The boot splash problem was a little trickier to track down, but eventually I found this: http://ubuntuforums.org/showthread.php?t=1587411. The <a href="http://news.softpedia.com/news/How-to-Fix-the-Big-and-Ugly-Plymouth-Logo-in-Ubuntu-10-04-140810.shtml">solution mentioned here</a> involves a long and involved process of modifying GRUB bootloader files, apparently because the installer didn't set them up right. This isn't really acceptable for the average user, and I wouldn't really mind doing it myself, except that it's 2011 and I expect better from my Linux desktop. There is also a <a href="http://www.webupd8.org/2010/10/script-to-fix-ubuntu-plymouth-for.html">script to run the solution</a>, which doesn't mention that it relies on a non-standard package to be installed, "hwinfo". I haven't run this yet either.</span></div>
<div style="font-family: inherit;">
<br /></div>
<div style="font-family: inherit;">
<span style="font-size: small;">I wanted to check to be sure that this problem was on its way to being solved the right way, so I followed a link from the blog page discussion which sent me to the <a href="https://bugs.launchpad.net/ubuntu/+source/plymouth/+bug/563878">official bug report on Launchpad</a>, and I have cast my vote for "this bug affects me" (almost 140 such votes on Launchpad!) I also hit the "subscribe" link on the right side of the screen to get emails when the bug changes status. I view participation in this process as even more important than having it working "perfectly" for just me, because it helps fix the problem for everyone.</span></div>
<br />
<b>Outcome</b><br />
<br />
<span style="font-size: small;">Two big wins with fonts and microphone add up to a good upgrade!</span><br />
<br />
<div style="font-family: inherit;">
<span style="font-size: small;">Still strongly considering upgrading directly to 11.04 from here, as the 10.10 upgrade was somewhat lacking in excitement. I figure an alpha release with a <a href="http://unity.ubuntu.com/">new desktop environment</a> might provide that...</span></div>
Sectio Aureahttp://www.blogger.com/profile/05757746234772925958noreply@blogger.com0tag:blogger.com,1999:blog-5137550877262530802.post-29004464167651062442011-03-23T23:00:00.000-07:002012-09-23T10:42:03.272-07:00How to get help with Ubuntu on IRC chatIf you're new to Ubuntu or Linux, and you've ever run into a problem or question that you just can't seem to solve with Google searches, you will be happy to know that there is another resource available to you. Even if you're experienced, there's always going to be something new and obscure that trips you up once in a while. That's where IRC comes in.<br />
<br />
IRC (Internet Relay Chat) is an ancient protocol for chatting on the Internet which is alive and flourishing. It is the predecessor to IM software, Web chatrooms and online gaming chat systems. IRC is commonly used for informal support and chat related to application software, operating systems, games, and a whole host of general interest topics like sports, politics and religion.<br />
<br />
<a name='more'></a><br />
<br />
So how can you plug into this resource and get some answers? Ubuntu provides several IRC clients. I like Xchat (<a href="http://xchat.org/">http://xchat.org/</a>). You can find it in the Ubuntu Software Center. Once installed, it will show up in your main menu under Internet > Xchat-Gnome IRC Chat.<br />
<br />
Launch Xchat and you will be asked for a username. Keep in mind this will be visible.<br />
<br />
IRC networks are organized like this: you connect to a particular server, which has its own URL just like a webserver. Each server is a "network" in IRC terms and it hosts a variety of "channels". Channels are identified by hash marks (just like Twitter tags). By default, Xchat on Ubuntu will put you into the #ubuntu channel on the Freenet IRC network. This means there are a lot of people in the channel at any one time, and help is usually just a few seconds away!<br />
<br />
A few tips for IRC:<br />
<ul>
<li>Don't ask to ask, just ask your question. The #ubuntu channel exists to answer questions, so chit chat is unnecessary. </li>
<li>The channel bot, Ubottu, will answer your topical questions if you message it: "/msg ubottu !firefox4"</li>
<li>Be patient if your question isn't answered right away - it just means no one has an answer for you yet. Wait a few minutes before asking it again, even if it's busy in the channel.</li>
</ul>
And there you have it, Ubuntu IRC support in a nutshell. One of my favorite resources for truly stuck situations.<br />
<br />
For more information on IRC, check out this tutorial: <a href="http://www.irchelp.org/irchelp/irctutorial.html">http://www.irchelp.org/irchelp/irctutorial.html</a>Sectio Aureahttp://www.blogger.com/profile/05757746234772925958noreply@blogger.com0tag:blogger.com,1999:blog-5137550877262530802.post-55315805170223835952010-09-12T12:53:00.000-07:002012-09-23T10:42:15.880-07:00Building TrinityCore 9847 with TrinityDB r34 on Ubuntu 10.04Well, another TrinityCore/TDB release has arrived (<a href="http://forum.trinitycore.org/topic/28139-tdb-3351134-love-hate-and-passion-has-been-released/">http://forum.trinitycore.org/topic/28139-tdb-3351134-love-hate-and-passion-has-been-released/</a>), so I'm rebuilding my Trinity server from scratch and sharing the process again. Happily, I saw much fewer errors than when I built r33. No errors, in fact!<br />
<br />
Accordingly, this guide describes the process of setting up TrinityCore revision 9847 with TrinityDB 335.11.34 (TDB r34) on an Ubuntu 10.04 system. The directions should work on Ubuntu 9.10 but have not been tested there. I got most of my clues from <a href="http://www.trinitycore.info/index.php?title=Installing_TrinityCore_on_recent_Linux-based_systems">http://www.trinitycore.info/index.php?title=Installing_TrinityCore_on_recent_Linux-based_systems</a>. I highly suggest you keep that document handy while following this guide, as it goes into detail on many explanations which I will be glossing over.<br />
<br />
<a name='more'></a><br />
<br />
To avoid unnecessary content duplication, please see my post at <a href="http://sectio-aurea.blogspot.com/2010/09/installing-trinitycore-dependencies-on.html">http://sectio-aurea.blogspot.com/2010/09/installing-trinitycore-dependencies-on.html</a> for an explanation of installing Ubuntu-specific build dependencies and setting up the Trinity server user environment. Specifically, I'm building under /home/trinity as 'trinity' user. Make sure you follow those directions first if this is your first build, then come back to this page.<br />
<br />
<span style="font-size: large;">Building TrinityCore rev9847</span><br />
<br />
<blockquote style="font-family: "Courier New",Courier,monospace;">
$ cd ~/<br />
$ hg clone http://trinitycore.googlecode.com/hg/ trinitycore<br />
$ mkdir build<br />
$ cd build<br />
$ cmake ../trinitycore/ -DPREFIX=/home/trinity/server -DSQL=1 -DTOOLS=1 -Wno-dev</blockquote>
<br />
For the build, I passed the '-j 4' switch to use all CPU cores - use different values after '-j' depending on the number of your cores.:<br />
<br />
<blockquote>
<span style="font-family: "Courier New",Courier,monospace;">$ make -j 4</span><br />
<span style="font-family: "Courier New",Courier,monospace;">$ make install</span></blockquote>
<span style="font-size: large;">Setting up TrinityDB 335.11.34 (TDB r34)</span><br />
<br />
For this installation, I chose to do a clean install of the r34 database release. I am NOT preserving my current data. This was in large part due to the inconsistencies I encountered with r33 - I wanted to make sure that those issues were resolved. So, I completely dropped databases 'world', 'auth' and 'characters' prior to running these update files.<br />
<br />
<blockquote>
<span style="font-family: "Courier New",Courier,monospace;">$ cd ~/</span><br />
<span style="font-family: "Courier New",Courier,monospace;">$ hg clone http://trinitydb.googlecode.com/hg/ trinitydb</span><br />
<span style="font-family: "Courier New",Courier,monospace;">$ mysql -u root -p < server/share/trinity/sql/tools/create_mysql.sql</span><br />
<span style="font-family: "Courier New",Courier,monospace;">$ mysql -u root -p auth < trinitycore/sql/base/auth_database.sql</span><br />
<span style="font-family: "Courier New",Courier,monospace;">$ mysql -u root -p characters < trinitycore/sql/base/characters_database.sql</span><br />
<span style="font-family: "Courier New",Courier,monospace;">$ cd ~/trinitydb/full_db/</span><br />
<span style="font-family: "Courier New",Courier,monospace;">$ unzip TDB_335.11.34_9847.zip</span><br />
<span style="font-family: "Courier New",Courier,monospace;">$ mysql -u trinity --password="trinity" world < TDB_335.11.34_9847.sql </span></blockquote>
<span style="font-size: large;">Setting up DBC, maps and vmaps</span><br />
<br />
I copied a 3.3.5 retail client directory over from a Windows partition; you could also install through Wine directly to Ubuntu if desired.<br />
<br />
<blockquote style="font-family: "Courier New",Courier,monospace;">
$ cd ~/<br />
$ cp -R /host/Users/Public/Games/World\ of\ Warcraft/ .</blockquote>
<br />
Now, extract maps and copy to the server: <br />
<br />
<blockquote>
<span style="font-family: "Courier New",Courier,monospace;">$ cd World\ of\ Warcraft/</span><br />
<span style="font-family: "Courier New",Courier,monospace;">$ /home/trinity/server/bin/mapextractor</span><br />
<span style="font-family: "Courier New",Courier,monospace;">$ cp -r dbc/ maps/ /home/trinity/server/data/ </span></blockquote>
<br />
And vmaps:<br />
<br />
<blockquote style="font-family: "Courier New",Courier,monospace;">
$ /home/trinity/server/bin/vmap3extractor<br />
$ mkdir vmaps<br />
$ /home/trinity/server/bin/vmap3assembler Buildings vmaps<br />
$ cp -r vmaps/ /home/trinity/server/data/ </blockquote>
<br />
Afterwards you can remove the extracted data from your client directory:<br />
<br />
<blockquote>
<span style="font-family: "Courier New",Courier,monospace;">$ rm -rf dbc/ maps/ vmaps/ </span></blockquote>
<br />
Configuring the worldserver and authserver<br />
<br />
<blockquote style="font-family: "Courier New",Courier,monospace;">
$ cd ~/ <br />
$ cd server/etc/<br />
$ cp authserver.conf.dist authserver.conf <br />
$ cp worldserver.conf.dist worldserver.conf </blockquote>
<br />
Setting up logs a bit better than the default, which dumps them into the bin directory:<br />
<br />
<blockquote>
<span style="font-family: "Courier New",Courier,monospace;">$ cd ~/</span><br />
<span style="font-family: "Courier New",Courier,monospace;">$ mkdir -p server/log/worldserver</span><br />
<span style="font-family: "Courier New",Courier,monospace;">$ mkdir -p server/log/authserver</span></blockquote>
<br />
A few modifications are needed to worldserver.conf; set these values: <br />
<br />
<blockquote>
<span style="font-family: "Courier New",Courier,monospace;">DataDir = "/home/trinity/server/data/"</span><br />
<span style="font-family: "Courier New",Courier,monospace;">LogsDir = "/home/trinity/server/log/worldserver/"</span></blockquote>
<br />
Changes in authserver.conf:<br />
<br />
<blockquote>
<span style="font-family: "Courier New",Courier,monospace;">LogsDir = "/home/trinity/server/log/authserver/"</span><br />
<span style="font-family: "Courier New",Courier,monospace;">BindIP = "127.0.0.1"</span></blockquote>
<br />
<br />
<span style="font-size: large;">Running TrinityCore 'worldserver' and 'authserver'</span><br />
<br />
For server startup, it's nice to run each daemon in the foreground in a separate terminal, as the worldserver daemon will spawn an interactive control console upon startup.<br />
<br />
The two server binaries which were just built reside here.<br />
<br />
<blockquote>
<span style="font-family: "Courier New",Courier,monospace;">/home/trinity/server/bin/authserver</span><br />
<span style="font-family: "Courier New",Courier,monospace;">/home/trinity/server/bin/worldserver </span></blockquote>
<br />
I created convenient start scripts in the 'trinity' user's home directory.<br />
<br />
<blockquote>
<span style="font-family: "Courier New",Courier,monospace;">$ echo "/home/trinity/server/bin/authserver" > authserver_start.sh</span><br />
<span style="font-family: "Courier New",Courier,monospace;">$ echo "/home/trinity/server/bin/worldserver" > worldserver_start.sh</span><br />
<span style="font-family: "Courier New",Courier,monospace;">$ chmod +x *_start.sh</span></blockquote>
<br />
And created stop scripts, although in practice you can just Ctrl-C in their terminals to shut down.<br />
<br />
<blockquote style="font-family: "Courier New",Courier,monospace;">
$ echo "kill -9 `pidof authserver`" > authserver_stop.sh<br />
$ echo "kill -9 `pidof worldserver`" > worldserver_stop.sh<br />
$ chmod +x *_stop.sh</blockquote>
<br />
Running the start scripts in separate terminals under the 'trinity' user:<br />
<br />
<blockquote>
<span style="font-family: "Courier New",Courier,monospace;">$ ./authserver_start.sh</span><br />
<span style="font-family: "Courier New",Courier,monospace;">$ ./worldserver_start.sh </span></blockquote>
<br />
<br />
The authserver starts up quickly with a quiet log; the worldserver takes a minute or less to start up, and uses around 200MB of memory while running. What do they look like in the process list? Easy to spot:<br />
<br />
<blockquote>
<span style="font-family: "Courier New",Courier,monospace;">trinity 25052 25051 6 09:57 pts/0 00:00:09 /home/trinity/server/bin/worldserver</span><br />
<span style="font-family: "Courier New",Courier,monospace;">trinity 25127 1 0 10:00 pts/1 00:00:00 /home/trinity/server/bin/authserver</span></blockquote>
<br />
<span style="font-size: large;">Client Configuration</span><br />
<br />
The realm is running - great! Time to test a client connection. You'll need Wine to run the client:<br />
<br />
<blockquote>
<span style="font-family: "Courier New",Courier,monospace;">$ sudo apt-get install wine1.2</span></blockquote>
<br />
Make sure your realmlist references are to localhost. Here's my Data/enUS/realmlist.wtf for the client:<br />
<br />
<blockquote>
<div style="font-family: "Courier New",Courier,monospace;">
set realmlist 127.0.0.1</div>
<div style="font-family: "Courier New",Courier,monospace;">
set patchlist 127.0.0.1 </div>
<div style="font-family: "Courier New",Courier,monospace;">
set realmlistbn ""</div>
<span style="font-family: "Courier New",Courier,monospace;">set portal us</span></blockquote>
<br />
And the WTF/Config.wtf:<br />
<br />
<blockquote style="font-family: "Courier New",Courier,monospace;">
SET realmList "127.0.0.1"<br />
SET patchlist "127.0.0.1"<br />
SET locale "enUS"<br />
SET portal "us"<br />
SET hwDetect "0"<br />
SET gxRefresh "60"<br />
SET gxMultisampleQuality "0.000000"<br />
SET gxFixLag "0"<br />
SET videoOptionsVersion "3"<br />
SET movie "0"<br />
SET Gamma "1.000000"<br />
SET showToolsUI "1"<br />
SET Sound_OutputDriverName "System Default"<br />
SET Sound_MusicVolume "0.40000000596046"<br />
SET Sound_AmbienceVolume "0.60000002384186"<br />
SET farclip "777.000000"<br />
SET specular "1"<br />
SET groundEffectDensity "24"<br />
SET projectedTextures "1"<br />
SET gxWindow "1"<br />
SET gxResolution "800x600"</blockquote>
<br />
Once the client is launched, you need to create an account to log in with: let's make a GM account first. We will use the interactive shell provided by TrinityCore. Go to the worldserver's shell, and hit 'enter', then give the following commands to create a GM account and give permissions for 2 expansion packs:<br />
<br />
<blockquote style="font-family: "Courier New",Courier,monospace;">
TC> account create admin PASSWORD<br />
TC>Account created: ADMIN<br />
TC> account set gmlevel admin 3 -1<br />
TC>You change security level of account ADMIN to 3.<br />
TC> account set addon admin 2<br />
TC>Account ADMIN (Id: 1) have up to 2 expansion allowed now.</blockquote>
<br />
You may also wish to create a regular user for testing:<br />
<br />
<blockquote>
<span style="font-family: "Courier New",Courier,monospace;">TC>account create user01 PASSWORD</span><br />
<span style="font-family: "Courier New",Courier,monospace;">TC>Account created: user01</span><br />
<span style="font-family: "Courier New",Courier,monospace;">TC> account set addon user01 2</span><br />
<span style="font-family: "Courier New",Courier,monospace;">TC>Account USER (Id: 2) have up to 2 expansion allowed now.</span></blockquote>
<br />
If you want to delete an account:<br />
<br />
<blockquote style="font-family: "Courier New",Courier,monospace;">
TC>account delete user01<br />
TC>Account deleted: USER01</blockquote>
<div style="font-family: "Courier New",Courier,monospace;">
</div>
<br />
By default, new GM account characters are created as level 80. Regular user account characters come in as level 1. This and many other parameters can be adjusted in worldserver.conf to your liking.<br />
<br />
As always, comments about how this works/doesn't work for you are welcome. Enjoy!Sectio Aureahttp://www.blogger.com/profile/05757746234772925958noreply@blogger.com5tag:blogger.com,1999:blog-5137550877262530802.post-53728116358022985972010-09-12T12:27:00.000-07:002012-09-23T10:42:29.478-07:00Installing TrinityCore dependencies on Ubuntu 10.04This guide is meant to accompany my release-specific build guides for TrinityCore/TDB releases on Ubuntu, in order to cut down on duplicate content in those posts since these procedures for brand new installations don't change.<br />
<br />
<span style="font-size: large;">TrinityCore dependency packages in Ubuntu</span><br />
<br />
First, install the Ubuntu packages required for building TrinityCore.<br />
<br />
<a name='more'></a><br />
<br />
<blockquote>
<span style="font-family: 'Courier New', Courier, monospace;">$ sudo aptitude install build-essential autoconf libtool gcc g++ make cmake subversion mercurial patch wget links zip unzip unrar openssl libssl-dev mysql-server mysql-client libmysqlclient15-dev libmysql++-dev libreadline5-dev zlib1g-dev libbz2-dev</span></blockquote>
Now create a separate 'trinity' user for the server to run under (or you can call this user 'tc' or whatever you like). Then, switch to this user and start setting up the dependencies which we must build. Note that on my development desktop machine, I give 'trinity' sudo on Ubuntu by putting it in the admin group, in order to install some libraries systemwide. If you're preparing a public server, you should remove the 'trinity' user's sudo privileges with "sudo gpasswd -d trinity admin" after dependency setup is complete.<br />
<br />
<span style="font-family: 'Courier New', Courier, monospace;"> $ sudo adduser trinity</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> $ sudo usermod -G admin -a trinity</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> $ su - trinity</span><br />
<br />
<span style="font-size: large;">Building ACE 5.7.8</span><br />
<br />
One of the TrinityCore dependencies is the ACE framework. The latest version, 5.7.8, is recommended by the TrinityCore developers. I confirmed that Ubuntu 10.04's ACE packages are older than 5.7.8:<br />
<br />
<span style="font-family: 'Courier New', Courier, monospace;"> $ apt-cache policy libace-dev | grep Candidate</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> Candidate: 5.6.3-6 </span><br />
<br />
So, it's still appropriate to build by hand:<br />
<br />
<span style="font-family: 'Courier New', Courier, monospace;"> $ cd ~/</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> $ wget http://download.dre.vanderbilt.edu/previous_versions/ACE-5.7.8.tar.gz</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> $ tar xvzf ACE-5.7.8.tar.gz</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> $ cd ~/ACE_wrappers/</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> $ mkdir build</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> $ cd build</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> $ ../configure </span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> $ make</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> $ sudo make install</span><br />
<br />
That's it! You are now ready to install TrinityCore and TDB in your new build environment. Continue on with checking out the code and building.Sectio Aureahttp://www.blogger.com/profile/05757746234772925958noreply@blogger.com0tag:blogger.com,1999:blog-5137550877262530802.post-53344012881758838832010-08-23T19:43:00.000-07:002012-09-23T10:42:41.887-07:00Building TrinityCore with TrinityDB r33 on Ubuntu 10.04<span style="font-size: large;">Setting up TrinityCore on Ubuntu 10.04</span><br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgI0QeX4Bo4yqeIwa1R6pievY-fOoxz3uIoCYcRDOliahj4P3b-W1YuSfM4MvVkw6YwGjsqNsKY0MzsfdnZgLevtmfM8nK6S_14apH_gvKPGHBwr0HFqn1HdLJ-FdRbgtF0K9lZq7D6GUAB/s1600/5wows1ubuntu.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="179" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgI0QeX4Bo4yqeIwa1R6pievY-fOoxz3uIoCYcRDOliahj4P3b-W1YuSfM4MvVkw6YwGjsqNsKY0MzsfdnZgLevtmfM8nK6S_14apH_gvKPGHBwr0HFqn1HdLJ-FdRbgtF0K9lZq7D6GUAB/s320/5wows1ubuntu.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The awesomeness of 5-boxing localhost</td></tr>
</tbody></table>
<div style="color: red;">
<span style="color: red; font-size: large;">IMPORTANT: USE UPDATED R34 GUIDE AT <a href="http://sectio-aurea.blogspot.com/2010/09/trinitycore-9847-tdb-r34-ubuntu-1004.html">http://sectio-aurea.blogspot.com/2010/09/trinitycore-9847-tdb-r34-ubuntu-1004.html</a></span><span style="font-size: large;"><span style="color: red;"> - THANKS</span></span></div>
<br />
<a name='more'></a><br />
<br />
This original guide describes the complete process of setting up <a href="http://www.trinitycore.info/index.php?title=Main_Page">TrinityCore</a> rev9535 with TrinityDB r33 (TDB) on a new Ubuntu 10.04 or 9.10 installation. This server build is compatible with the current 3.3.5 retail clients. During the bulk of the installation, I worked from the generally excellent Linux-specific instructions at <a href="http://www.trinitycore.info/index.php?title=Installing_TrinityCore_on_recent_Linux-based_systems">http://www.trinitycore.info/index.php?title=Installing_TrinityCore_on_recent_Linux-based_systems</a> which contains distribution-specific details for RedHat and Debian-like systems. The only place where those directions were necessarily incomplete was the TrinityDB update process, which required some troubleshooting due to the changing nature of the unstable release DB updates.<br />
<br />
<br />
<span style="font-size: large;">Setting up the base system (optional)</span><br />
<br />
I began with a fresh installation of Ubuntu 10.04 using <a href="http://wubi-installer.org/">Wubi</a>, which was patched up with the current updates (Update Manager will pop up and offer these updates to you): <br />
<blockquote style="font-family: "Courier New",Courier,monospace;">
libfreetype6 linux-headers-2.6.32-24 linux-headers-2.6.32-24-generic linux-image-2.6.32-24-generic linux-libc-dev</blockquote>
<br />
I have also tested this process on Ubuntu 9.10, which happily worked exactly as 10.04 for the purpose of build dependencies. <br />
<br />
Installing to a VirtualBox or VMWare instance should also work just fine, although I haven't tested a build on those platforms.<br />
<br />
<br />
<span style="font-size: large;">Installing TrinityCore dependencies</span><br />
<br />
<br />
First, install the Ubuntu packages required for building TrinityCore.<br />
<blockquote style="font-family: "Courier New",Courier,monospace;">
$ sudo aptitude install build-essential autoconf libtool gcc g++ make cmake subversion mercurial patch wget links zip unzip unrar openssl libssl-dev mysql-server mysql-client libmysqlclient15-dev libmysql++-dev libreadline5-dev zlib1g-dev libbz2-dev</blockquote>
<br />
Now create a separate 'trinity' user for the server to run under (or 'tcore' or whatever you like). Then, switch to this user and start setting up the dependencies which we must build. Note that I give 'trinity' sudo on Ubuntu by putting it in the admin group, in order to install some libraries systemwide. If you're preparing a public server, you should remove the 'trinity' user's sudo privileges after setup is complete.<br />
<blockquote style="font-family: "Courier New",Courier,monospace;">
$ sudo adduser trinity<br />
$ sudo usermod -G admin -a trinity<br />
$ su - trinity</blockquote>
<span style="font-size: large;">Building ACE 5.7.8</span><br />
<br />
One of the TrinityCore dependencies is the ACE framework. The latest version, 5.7.8, is recommended by the TrinityCore developers. I confirmed that Ubuntu 10.04's ACE packages are older than 5.7.8:<br />
<blockquote style="font-family: "Courier New",Courier,monospace;">
$ apt-cache policy libace-dev | grep Candidate<br />
Candidate: 5.6.3-6 </blockquote>
<br />
So, it's still appropriate to build by hand:<br />
<br />
<blockquote style="font-family: "Courier New",Courier,monospace;">
$ cd ~/<br />
$ wget http://download.dre.vanderbilt.edu/previous_versions/ACE-5.7.8.tar.gz<br />
$ tar xvzf ACE-5.7.8.tar.gz<br />
$ cd ~/ACE_wrappers/<br />
$ mkdir build<br />
$ cd build<br />
$ ../configure $ make<br />
$ sudo make install</blockquote>
<br />
<span style="font-size: x-small;">Note: If you get an segfault at this step on 'make', and you are like me, you are probably on your third fresh install of Wubi in a row and forgot to restart since installing kernel updates.</span><br />
<br />
<br />
<span style="font-size: large;">Building TrinityCore</span><br />
<br />
Next, it's time to build the Trinity Core server itself - starting by checking out source from the repository. Still as user 'trinity':<br />
<blockquote style="font-family: "Courier New",Courier,monospace;">
$ cd ~/<br />
$ hg clone http://trinitycore.googlecode.com/hg/ trinitycore</blockquote>
Now we make a build directory in the 'trinity' home directory, and run the Cmake configuration script: <br />
<br />
<blockquote style="font-family: "Courier New",Courier,monospace;">
$ mkdir build<br />
$ cd build<br />
$ cmake ../trinitycore/ -DPREFIX=/home/trinity/server -DSQL=1 -DTOOLS=1</blockquote>
For the build, I passed the '-j 2' switch to use both cores - use different values after '-j' depending on the number of your cores.:<br />
<blockquote style="font-family: "Courier New",Courier,monospace;">
$ make -j 2<br />
$ make install</blockquote>
For future updates to the TrinityCore server, do this:<br />
<br />
<blockquote style="font-family: "Courier New",Courier,monospace;">
$ cd ~/trinitycore/<br />
$ hg pull -u<br />
$ cd ~/build<br />
$ make clean</blockquote>
Then, repeat the steps to first configure with Cmake, then compile and install listed above.<br />
<br />
<span style="font-size: large;">Setting up TrinityDB r33 (TDB)</span><br />
<br />
Warning! It took a lot of grepping around the updates folders to get me through this part of the installation. If you don't follow the order of operations described here, or you install additional update files not mentioned, there's no guarantee it will work. Heck, even if you do follow this order, you may have to correct something different which I didn't have to deal with. Here be Dragons.<br />
<br />
Check out the database using hg:<br />
<blockquote style="font-family: "Courier New",Courier,monospace;">
$ cd ~/<br />
$ hg clone http://trinitydb.googlecode.com/hg/ trinitydb</blockquote>
Now create the three databases, 'world', 'auth' and 'characters' including mysql user privileges for 'trinity'. Don't run these again for future updates, or you'll reset your entire database and lose any current data:<br />
<blockquote style="font-family: "Courier New",Courier,monospace;">
$ mysql -u root -p < server/share/trinity/sql/tools/create_mysql.sql<br />
$ mysql -u root -p auth < trinitycore/sql/base/auth_database.sql<br />
$ mysql -u root -p characters < trinitycore/sql/base/characters_database.sql</blockquote>
<br />
Now for some 'world' database updates which come from the trinitydb sandbox. The last major release was 8874, and there's also an update pack for 8875 through 8996, but we're patching even further up to date from there in a minute.<br />
<br />
<blockquote style="font-family: "Courier New",Courier,monospace;">
$ cd ~/trinitydb/full_db/<br />
$ unzip TDB_335.10.32_8874.zip<br />
$ mysql -u trinity --password="trinity" world < TDB_335.10.32_8874.sql<br />
$ cd ../updates/335.10/<br />
$ mysql -u trinity --password="trinity" world < 33_01_corepatch_world_8875_8996.sql<br />
$ mysql -u trinity --password="trinity" world < 33_02_procedures_world.sql<br />
$ mysql -u trinity --password="trinity" world < 33_03_updatepack_world.sql</blockquote>
<br />
Now import lots of updates from trinitydb, continuing basically where 8896 left off from, in the previous trinitycore sql updates:<br />
<blockquote style="font-family: "Courier New",Courier,monospace;">
$ cd ~/trinitycore/sql/updates/3.3.5a_old<br />
$ mysql -u trinity --password="trinity" world < ../3.3.2_old/7552_world_battleground_template.sql<br />
$ mysql -u trinity --password="trinity" world < ../3.3.2_old/7432_world_access_requirement.sql <br />
$ mysql -u trinity --password="trinity" world < ../2.4.3_old/90_world.sql <br />
$ mysql -u trinity --password="trinity" world < 8897_world_npc_vendor.sql<br />
$ mysql -u trinity --password="trinity" world < 8897_world_trinity_string.sql<br />
$ mysql -u trinity --password="trinity" world < 8905_world_spell_proc_event.sql<br />
$ mysql -u trinity --password="trinity" world < 8906_world_spell_proc_event.sql<br />
$ mysql -u trinity --password="trinity" world < 8915_world_trinity_string.sql<br />
$ mysql -u trinity --password="trinity" world < 8920_world_spell_dbc.sql<br />
$ mysql -u trinity --password="trinity" world < 8920_world_spell_linked_spell.sql<br />
$ mysql -u trinity --password="trinity" world < 8921_world_spell_dbc.sql<br />
$ mysql -u trinity --password="trinity" world < 8925_world_spell_group.sql<br />
$ mysql -u trinity --password="trinity" world < 8957_world_command.sql<br />
$ mysql -u trinity --password="trinity" world < 8957_world_disables.sql<br />
$ mysql -u trinity --password="trinity" world < 8957_world_trinity_string.sql<br />
$ mysql -u trinity --password="trinity" world < 8971_world_command.sql<br />
$ mysql -u trinity --password="trinity" world < 8971_world_trinity_string.sql<br />
$ mysql -u trinity --password="trinity" world < 8975_world_spell_dbc.sql<br />
$ mysql -u trinity --password="trinity" world < 8988_world_playercreateinfo.sql</blockquote>
<blockquote>
<div style="font-family: "Courier New",Courier,monospace;">
$ cd ~/trinitycore/sql/updates </div>
<span style="font-family: "Courier New",Courier,monospace;">$ for i in `ls *_world_*.sql`; do mysql -u trinity --password="trinity" world < $i; done</span></blockquote>
<br />
The first few older updates are to fix problems with several recent updates which referred to nonexistent tables or columns. The new updates are not perfect yet, after all this is an unstable revision...<br />
<br />
Procedure for updating database in future: run these commands to update your DB sandbox, then update from the new files since your last build.<br />
<br />
<blockquote style="font-family: "Courier New",Courier,monospace;">
$ cd ~/trinitydb<br />
$ hg pull -u</blockquote>
<br />
<span style="font-size: large;">DBC, maps and vmaps: </span><br />
<br />
I copied a 3.3.5 retail client directory over from a Windows partition; you could also install through Wine directly to Ubuntu if desired.<br />
<blockquote style="font-family: "Courier New",Courier,monospace;">
$ cd ~/<br />
$ cp -R /host/Users/Public/Games/World\ of\ Warcraft/ .</blockquote>
Now, extract maps and copy to the server: <br />
<blockquote style="font-family: "Courier New",Courier,monospace;">
$ cd World\ of\ Warcraft/<br />
$ /home/trinity/server/bin/mapextractor <br />
$ cp -r dbc/ maps/ /home<username>/trinity/server/data/</username><username> </username></blockquote>
<div style="font-family: "Courier New",Courier,monospace;">
</div>
<username>And vmaps:</username><br />
<blockquote style="font-family: "Courier New",Courier,monospace;">
$ <username>/home/trinity/server/bin/vmap3extractor</username><br />
$ <username>mkdir vmaps</username><br />
$ <username>/home/trinity/server/bin/vmap3assembler Buildings vmaps</username><br />
<username>$ cp -r vmaps/ /home/trinity/server/data/</username> <username><span style="font-size: large;"></span></username></blockquote>
Afterwards you can remove the extracted data from your client directory:<br />
<br />
<blockquote>
<span style="font-family: "Courier New",Courier,monospace;">$ rm -rf dbc/ maps/ vmaps/ </span></blockquote>
<br />
<username><span style="font-size: large;"></span></username><br />
<username><span style="font-size: large;">Configuring the worldserver and authserver</span></username><br />
<blockquote>
<div style="font-family: "Courier New",Courier,monospace;">
$ cd ~/<username> </username></div>
<div style="font-family: "Courier New",Courier,monospace;">
<username>$ cd server/etc/</username></div>
<div style="font-family: "Courier New",Courier,monospace;">
<username>$</username> <username>cp authserver.conf.dist authserver.conf</username> </div>
<username style="font-family: "Courier New",Courier,monospace;">$</username><span style="font-family: 'Courier New',Courier,monospace;"> </span><username style="font-family: "Courier New",Courier,monospace;">cp worldserver.conf.dist worldserver.conf</username><span style="font-family: 'Courier New',Courier,monospace;"> </span></blockquote>
<username></username><br />
Setting up logs a bit better than the default, which dumps them into the bin directory:<br />
<blockquote style="font-family: "Courier New",Courier,monospace;">
$ cd ~/ <br />
$ mkdir -p server/log/worldserver<br />
$ mkdir -p server/log/authserver</blockquote>
<username></username><br />
<username>A few modifications are needed to worldserver.conf; set these values: </username><br />
<blockquote style="font-family: "Courier New",Courier,monospace;">
<username>DataDir = "/home/trinity/server/data/"</username><br />
<username></username><br />
LogsDir = "/home/trinity/server/log/worldserver/"</blockquote>
Changes in authserver.conf: <br />
<blockquote style="font-family: "Courier New",Courier,monospace;">
LogsDir = "/home/trinity/server/log/authserver/"<br />
BindIP = "127.0.0.1"</blockquote>
<br />
<span style="font-size: large;">Running TrinityCore 'worldserver' and 'authserver'</span><br />
<br />
For server startup, it's nice to run each daemon in the foreground in a separate terminal, as the worldserver daemon will spawn an interactive control console upon startup:<br />
<br />
The two server binaries which were just built reside here. <br />
<blockquote style="font-family: "Courier New",Courier,monospace;">
/home/trinity/server/bin/authserver<br />
/home/trinity/server/bin/worldserver </blockquote>
I created convenient start scripts in the 'trinity' user's home directory.<br />
<blockquote style="font-family: "Courier New",Courier,monospace;">
$ echo "/home/trinity/server/bin/authserver" > authserver_start.sh<br />
$ echo "/home/trinity/server/bin/worldserver" > worldserver_start.sh<br />
$ chmod +x *_start.sh</blockquote>
And created stop scripts, although in practice you can just Ctrl-C in their terminals to shut down.<br />
<blockquote style="font-family: "Courier New",Courier,monospace;">
$ echo "kill -9 `pidof authserver`" > authserver_stop.sh<br />
$ echo "kill -9 `pidof worldserver`" > worldserver_stop.sh<br />
$ chmod +x *_stop.sh</blockquote>
Running the start scripts in separate terminals under the 'trinity' user, there will be several warnings/errors in the worldserver startup log but nothing critical.<br />
<br />
<blockquote style="font-family: "Courier New",Courier,monospace;">
$ ./authserver_start.sh<br />
<br />
$ ./worldserver_start.sh </blockquote>
<br />
The authserver starts up quickly with a quiet log; the worldserver takes a minute or so to start up on my AMD Vision dual core system, and uses around 200MB of memory while running. What do they look like in the process list? Easy to spot:<br />
<br />
<blockquote style="font-family: "Courier New",Courier,monospace;">
trinity 25052 25051 6 09:57 pts/0 00:00:09 /home/trinity/server/bin/worldserver<br />
trinity 25127 1 0 10:00 pts/1 00:00:00 /home/trinity/server/bin/authserver</blockquote>
<br />
<br />
<span style="font-size: large;">Client Configuration</span><br />
<br />
<br />
The realm is running - great! Time to test a client connection. You'll need Wine to run the client:<br />
<br />
<blockquote style="font-family: "Courier New",Courier,monospace;">
$ sudo apt-get install wine1.2</blockquote>
Make sure your realmlist references are to localhost. Here's my Data/enUS/realmlist.wtf for the client:<br />
<blockquote style="font-family: "Courier New",Courier,monospace;">
set realmlist 127.0.0.1<br />
set patchlist 127.0.0.1<br />
set realmlistbn ""<br />
set portal us</blockquote>
And the WTF/Config.wtf:<br />
<blockquote style="font-family: "Courier New",Courier,monospace;">
SET realmList "127.0.0.1"<br />
SET patchlist "127.0.0.1"<br />
SET locale "enUS"<br />
SET portal "us"<br />
SET hwDetect "0"<br />
SET gxRefresh "60"<br />
SET gxMultisampleQuality "0.000000"<br />
SET gxFixLag "0"<br />
SET videoOptionsVersion "3"<br />
SET movie "0"<br />
SET Gamma "1.000000"<br />
SET showToolsUI "1"<br />
SET Sound_OutputDriverName "System Default"<br />
SET Sound_MusicVolume "0.40000000596046"<br />
SET Sound_AmbienceVolume "0.60000002384186"<br />
SET farclip "777.000000"<br />
SET specular "1"<br />
SET groundEffectDensity "24"<br />
SET projectedTextures "1"<br />
SET gxWindow "1"<br />
SET gxResolution "800x600"</blockquote>
Once the client is launched, you need to make an account to log in with: let's do a GM account first. We will use the interactive shell provided by TrinityCore. Go to the worldserver's shell, and hit 'enter', then give the following commands to create a GM account and give permissions for 2 expansion packs: <br />
<blockquote style="font-family: "Courier New",Courier,monospace;">
TC> account create admin PASSWORD<password><password></password></password><br />
TC>Account created: ADMIN<br />
TC> account set gmlevel admin 3 -1<br />
TC>You change security level of account ADMIN to 3.<br />
TC> account set addon admin 2<br />
TC>Account ADMIN (Id: 1) have up to 2 expansion allowed now.</blockquote>
You may also wish to create a regular user for testing:<br />
<blockquote style="font-family: "Courier New",Courier,monospace;">
TC>account create user PASSWORD<password></password><br />
TC>Account created: user<br />
TC> account set addon user 2<br />
TC>Account USER (Id: 2) have up to 2 expansion allowed now.</blockquote>
If you want to delete an account:<br />
<div style="font-family: "Courier New",Courier,monospace;">
</div>
<blockquote style="font-family: "Courier New",Courier,monospace;">
TC>account delete user07<br />
TC>Account deleted: USER07</blockquote>
<br />
By default, new GM account characters are created as level 80. Regular user account characters come in as level 1. This and many other parameters can be adjusted in worldserver.conf to your liking.<br />
<br />
Enjoy your new TrinityCore server! Comments/corrections are welcome as regards the build process on your system, especially on Ubuntu 10.04 or 9.10, and please keep in mind that future Trinity releases will almost certainly slightly change the database installation process.Sectio Aureahttp://www.blogger.com/profile/05757746234772925958noreply@blogger.com3tag:blogger.com,1999:blog-5137550877262530802.post-25934478263704433182010-08-22T20:17:00.000-07:002012-09-23T10:45:46.427-07:00Building Xnee 3.06 on Ubuntu Lucid 10.04Recently, I wanted to use Xnee (<a href="http://www.sandklef.com/xnee/">http://www.sandklef.com/xnee/</a>) to automate some GUI application actions on an Ubuntu Lucid 10.04 installation, but I found that the version of Xnee available from the Lucid repositories still has some problems. Specifically, this older Xnee version, 3.02-2ubuntu2, still contains workarounds for some previously existing Xorg RECORD extension problems which have themselves now been fixed in Lucid. The outcome of this mismatch is that recording fails with any of <span style="font-family: "Courier New",Courier,monospace;">cnee</span>, <span style="font-family: "Courier New",Courier,monospace;">gnee</span> or <span style="font-family: "Courier New",Courier,monospace;">pnee</span>. This is resolved in the next release of Ubuntu, 10.10 "Maverick", which includes Xnee 3.06, but I preferred not to upgrade the entire system to a pre-release state just to get this one application working.<br />
<br />
<a name='more'></a><br />
<br />
Therefore, desiring to build the latest Xnee release from source and resolve the recording problem, I used a trial and error process involving the output of the configure script, along with a good deal of web searching, to come up with a list of required packages to support building Xnee 3.06 from the GNU FTP tarball. On a fresh Ubuntu 10.04 installation, patched up to date but otherwise untouched, the build dependencies can be obtained as such (approximately 100MB in total):<br />
<br />
<span style="font-family: "Courier New",Courier,monospace;"> sudo aptitude install build-essential libxtst-dev libpanel-applet2-dev autoconf automake libtool libgnomeui-dev </span><br />
<br />
If building package documentation is desired:<span style="font-family: "Courier New",Courier,monospace;"> </span><br />
<br />
<span style="font-family: "Courier New",Courier,monospace;"> sudo aptitude install dia texi2html texinfo texlive-font-utils texlive-latex-base texlive-generic-recommended</span><span style="font-family: "Courier New",Courier,monospace;"> </span><br />
<br />
Now we can get the latest tarball from the GNU FTP site and install it. Include the --disable-doc flag (recommended) if you don't want to spend the time building the package documentation:<span style="font-family: "Courier New",Courier,monospace;"> </span><br />
<br />
<span style="font-family: "Courier New",Courier,monospace;"> </span><span style="font-family: "Courier New",Courier,monospace;">cd ~/</span><br />
<span style="font-family: "Courier New",Courier,monospace;"> wget <a href="http://ftp.gnu.org/gnu/xnee/">http://ftp.gnu.org/gnu/xnee/</a>xnee-3.06.tar.gz</span><span style="font-family: "Courier New",Courier,monospace;"> </span><br />
<span style="font-family: "Courier New",Courier,monospace;"> </span><span style="font-family: "Courier New",Courier,monospace;">tar xzvf xnee-3.06.tar.gz</span><br />
<span style="font-family: "Courier New",Courier,monospace;"> cd xnee-3.06</span><br />
<span style="font-family: "Courier New",Courier,monospace;"> ./configure [--disable-doc</span>]<br />
<span style="font-family: "Courier New",Courier,monospace;"> make</span><br />
<span style="font-family: "Courier New",Courier,monospace;"> sudo make install</span><br />
<br />
I found that <span style="font-family: "Courier New",Courier,monospace;">gnee</span>, the graphical interface for Xnee, would launch and seemed usable enough (though a bit unstable when poked the wrong way) but I wanted to start by learning the basics of its command line interface, and so I haven't messed around with 3.06's <span style="font-family: "Courier New",Courier,monospace;">gnee</span> quite as much yet. Here are a few working examples using <span style="font-family: "Courier New",Courier,monospace;">cnee</span>, the Xnee CLI tool:<br />
<br />
Recording both mouse and keyboard, storing mouse starting position, using F12 for the "stop recording" key, a countdown timer of 10 to begin and a maximum number of 1000 events to record, storing the results to a new file cnee_test.xnl: <br />
<br />
<span style="font-family: "Courier New",Courier,monospace;"> cnee --record --mouse --keyboard -o cnee_test.xnl --store-mouse-position --stop-key F12 --time 10 --events-to-record 1000 &</span><br />
<br />
Playback of mouse and keyboard events, recalling window position from the recording, with a countdown of 10 seconds to begin playback:<br />
<br />
<span style="font-family: "Courier New",Courier,monospace;"> cnee --replay --mouse --keyboard -f cnee_test.xnl --recall-window-position --time 10</span><br />
<br />
Notes:<br />
1) Recording segfaults after the starting timer completes if F5 is the stop key... I haven't experimented further to see exactly which keys cause this.Sectio Aureahttp://www.blogger.com/profile/05757746234772925958noreply@blogger.com6tag:blogger.com,1999:blog-5137550877262530802.post-14727380448745770412009-07-15T14:55:00.000-07:002012-09-23T10:45:34.239-07:00Installing Heroes of Newerth Beta on Ubuntu Linux 9.04 Jaunty<span style="font-family: Georgia,serif; font-size: 16px;"></span><br />
<div>
Well, I got my beta key for <a href="http://heroesofnewerth.com/">Heroes of Newerth</a> through the recent Slashdot giveaways. I'm excited as I used to play Starcraft back in the day, but never got into DotA. Here is my experience installing this *early closed beta* version of the game and first playing it.</div>
<div>
</div>
<div>
<h3>
</h3>
<h3>
<a name='more'></a>Installing</h3>
</div>
<div>
I downloaded the beta installer to my desktop. Looks like it's a shell script. I got a md5sum value of cc57bcbd083199b3d40007e9e8c32a5f for my download which matches the official information.</div>
<div>
</div>
<div>
Made it executable:</div>
<div>
<blockquote>
</blockquote>
</div>
<div>
$ chmod +x HoNClient-0.1.27.3-r2.sh</div>
<div>
</div>
<div>
</div>
<div>
<br />
And then ran it:</div>
<div>
</div>
<div>
<br />
$ ./HoNClient-0.1.27.3-r2.sh</div>
<div>
</div>
<div>
<br />
After accepting the license agreement, to my surprise and delight it defaults to installing to my home directory at ~/HoN. No root privileges required! Thumbs up S2. The next installer screen confirms I want to install "XDG menu entries". I say yes. After a progress bar I click "Finish" and the installer peacefully exits.</div>
<div>
</div>
<div>
In my K menu I go to Applications > Games and there it is, "Multiplayer Game" (Heroes of Newerth) with its icon. So far so good!</div>
<div>
</div>
<div>
I do note, however, that if I remove the executable bit from the shell script, then click the shell script downloaded to my desktop, Ubuntu tries to open it in Wine, with no result. Presumably, the final installer will come with the executable bit set for a commandline-free install experience.</div>
<div>
</div>
<div>
<h3>
<br />
</h3>
<h3>
Patching</h3>
</div>
<div>
After logging into the game, the auto updater started to download a 26MB patch to bring me from 1.27.3 to 1.28.2. I tabbed out to do something else while it was updating... at this point my entire system froze up, necessitating a hard reboot. I started the game again to see if it was more stable if I leave it alone and do not tab away to a different application or desktop while it is updating. This time it froze on the S2 splash screen. I killed the HoN processes, removed the ~/HoN/Update folder entirely and tried again. The result was a clean update and no problems whatsoever.</div>
<div>
</div>
<div>
<h3>
<br />
</h3>
<h3>
Playing</h3>
</div>
<div>
</div>
<div>
Armed with a fresh pot of coffee, I am ready to start playing! But... at the Game Browser screen, HoN shoots up to 100% CPU usage and I am forced to kill -9 it. Right clicking on my taskbar did not work to quit the game at this time, in fact none of the KDE taskbar was responsive.</div>
<div>
</div>
<div>
<br />
Long story short, killing PulseAudio with "kill `pgrep pulse`" after starting the game, resulted in no sound but no crashes. I filed a bug and am happily playing without PulseAudio (Used Aptitude to remove it). This incidentally resolves all the other problems I had with PulseAudio, so I'm not too upset about the workaround.</div>
<div>
</div>
<div>
<br />
I am not so good at this game yet, my kill/death ratio is around 1:3. Still having fun and learning though! The game itself runs beautifully, there aren't any significant bugs that I've run into (none during in-game play) and I feel confident in predicting that this will be one of the most popular games on the Linux platform. I'll leave you<br />
with some links that helped me get the basics down...</div>
<div>
</div>
<div>
<h3>
</h3>
<h3>
Links with info on playing Heroes of Newerth</h3>
</div>
<div>
</div>
<div>
<a href="http://forums.dota-allstars.com/index.php?showtopic=151015">The Art of DotA</a></div>
<div>
</div>
<div>
<a href="http://forums.heroesofnewerth.com/showthread.php?t=737">DotA Basics for New to Average Skill</a></div>
<div>
</div>
<div>
<a href="http://forums.heroesofnewerth.com/showthread.php?t=520">Hero/General Guide Links</a></div>
Sectio Aureahttp://www.blogger.com/profile/05757746234772925958noreply@blogger.com0tag:blogger.com,1999:blog-5137550877262530802.post-4877325330703201962008-12-13T00:15:00.000-08:002012-09-23T12:04:07.365-07:00Berkeley Logo and the Turtle on Ubuntu Linux<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhugtG3YSGsj74e2mHvoAR7ZXn01AnXswS8gaJ9fGWmpaR40cEAPGUwLVnX20Uj_tjRin4TBXi_f-7tCEtMUZNa1JX1voq082uGARdLDV82648-2cB0-7qp43wha1QSdR3IvCWQm5aAzucj/s1600/logo-star.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhugtG3YSGsj74e2mHvoAR7ZXn01AnXswS8gaJ9fGWmpaR40cEAPGUwLVnX20Uj_tjRin4TBXi_f-7tCEtMUZNa1JX1voq082uGARdLDV82648-2cB0-7qp43wha1QSdR3IvCWQm5aAzucj/s320/logo-star.png" width="308" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Berkeley Logo drawing with the Turtle on Ubuntu</td></tr>
</tbody></table>
<br />
As a kid, the first programming language I ever saw was a variant of Logo on an Amstrad PC/M system. I discovered its graphic system, the "Turtle" and how it could be used to create Spirograph-like images in a totally different environment from the word processing application or the file manager (which resembled Midnight Commander!)<br />
<br />
So naturally I have to see what it looks like now:<br />
<br />
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace;">sudo aptitude install ucblogo</span></blockquote>
<br />
According to the user manual (http://www.cs.berkeley.edu/~bh/usermanual) "Berkeley Logo provides traditional Logo turtle graphics with one turtle. Multiple turtles, dynamic turtles, and collision detection are not supported."<br />
<br />
I start the interpreter with 'logo' in a Terminal.<br />
<br />
I put my pen down:<br />
<br />
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace;">pd</span></blockquote>
<br />
Hide the turtle:<br />
<br />
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace;">ht</span></blockquote>
<br />
And draw a fancy shape!<br />
<br />
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace;">repeat 65 [fd 300 rt 165]</span></blockquote>
<br />
I was very pleased to get back up and running with Logo. However, I doubt I'll truly be satisfied until I can run an emulated version of the entire Amstrad PC/M system!<br />
<br />
<i>Edit: This post was originally published for Ubuntu 8.10. Tested working OK with identical commands in Ubuntu 12.10. Happy turtling!</i><br />
Sectio Aureahttp://www.blogger.com/profile/05757746234772925958noreply@blogger.com2tag:blogger.com,1999:blog-5137550877262530802.post-74017455368333599642008-12-12T17:58:00.000-08:002012-09-23T10:45:17.052-07:00A 3d File System Viewer: Building FSV on Ubuntu 8.10 "Intrepid"<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1MGfH_drNCyxYyFc7E65IyE7J7KyGVb3b1wTwZmwtonTR4twIqP-PH0pl3EvmP8T2ly1r3ycOUmxY2wZjdjAHB1sABFEhISfxcPvwCEZj2RsK3he-XU5DoERQRAioazGFCg3-cBs4TL6A/s1600-h/FSV-ubuntu810.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5279091527896198498" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1MGfH_drNCyxYyFc7E65IyE7J7KyGVb3b1wTwZmwtonTR4twIqP-PH0pl3EvmP8T2ly1r3ycOUmxY2wZjdjAHB1sABFEhISfxcPvwCEZj2RsK3he-XU5DoERQRAioazGFCg3-cBs4TL6A/s400/FSV-ubuntu810.png" style="cursor: pointer; display: block; height: 254px; margin: 0px auto 10px; text-align: center; width: 400px;" /></a><br />
FSV is a 3d file system viewer which reimplements FSN, memorable for its appearance in <span style="font-style: italic;">Jurassic Park</span>. You can read about FSN here:<br />
<br />
<a href="http://www.siliconbunny.com/fsn-the-irix-3d-file-system-tool-from-jurassic-park/">http://www.siliconbunny.com/fsn-the-irix-3d-file-system-tool-from-jurassic-park/</a><br />
<br />
The FSV website at <a href="http://fsv.sourceforge.net/">http://fsv.sourceforge.net/</a> provides the downloadable source code for FSV, and here is how to build it:<br />
<br />
<a name='more'></a><br />
<br />
Download the package from <a href="http://sourceforge.net/project/showfiles.php?group_id=31220&package_id=23252&release_id=48623">http://sourceforge.net/project/showfiles.php?group_id=31220&package_id=23252&release_id=48623</a>, then:<br />
<br />
<span style="font-family: courier new;">cd ~/Desktop</span><br />
<span style="font-family: courier new;">tar xzvf fsv-0.9.tar.gz</span><br />
<span style="font-family: courier new;">cd fsv-0.9</span><br />
<br />
I had to install a dependency of several GTK 1.x development libraries before the configure script would complete, as well as build-essential which I already had installed. There are a few dependencies that will additionally install when you run this:<br />
<br />
<span style="font-family: courier new;">sudo aptitude install libgtk1.2-dev gtkglarea5-dev build-essential</span><br />
<br />
Now you can configure, make and install:<br />
<br />
<span style="font-family: courier new;">./configure</span><br />
<span style="font-family: courier new;">make</span><br />
<span style="font-family: courier new;">sudo make install</span><br />
<br />
The application will be found in <span style="font-family: courier new;">/usr/local/bin/fsv</span>, you can run it with '<span style="font-family: courier new;">fsv</span>' at the command prompt now. FSV will default to the current directory as its root but allows you to change root with File > Change Root... (or hit Ctrl-N). As a nifty bonus, you get all kinds of stats on the number and disk usage of files in the visible root.<br />
<br />
I did get it to segfault when clicking on a large jpg file, but overall it is very stable and usable for a 9 year old program! Kudos to its author Daniel Richard G. aka "skunk".Sectio Aureahttp://www.blogger.com/profile/05757746234772925958noreply@blogger.com4tag:blogger.com,1999:blog-5137550877262530802.post-25003846007218055152008-12-12T14:41:00.000-08:002012-09-23T10:44:39.099-07:00Linux Audio and Music blog talks about HydrogenJust found a blog called Linux Audio and Music which briefly mentions Hydrogen, one of my favorite apps:<br />
<br />
<a href="http://linux-audio-music.blogspot.com/2008/12/hydrogen-drum-sequencer.html">Linux Audio and Music: Hydrogen drum sequencer</a>Sectio Aureahttp://www.blogger.com/profile/05757746234772925958noreply@blogger.com0tag:blogger.com,1999:blog-5137550877262530802.post-56156607695298411232008-12-12T14:29:00.000-08:002012-09-23T10:44:27.358-07:00Three free Hydrogen drumkits to downloadHydrogen drumkits are fairly easy to make and distribute, so I'm always on the lookout for new ones. <br />
<br />
Here's a link to download three free kits from Zeta Centauri: Kawai XD-5, Roland JD-990, and Yamaha TG-55:<br />
<br />
<a name='more'></a><br />
<br />
<a href="http://www.zetacentauri.com/samplecds.htm">http://www.zetacentauri.com/samplecds.htm</a><br />
<br />
Once downloaded, you can import them in Hydrogen as follows: Instruments menu > Import Library > Local File tab, hit Browse and select the downloaded .h2drumkit (which contains a .tar, if you're curious) then when the field is populated hit Install to load the drumkit.<br />
<br />
More about Hydrogen here: <a href="http://hydrogen-music.org/">http://hydrogen-music.org</a>Sectio Aureahttp://www.blogger.com/profile/05757746234772925958noreply@blogger.com0tag:blogger.com,1999:blog-5137550877262530802.post-50496911831436877182008-12-12T02:57:00.000-08:002008-12-12T19:06:47.211-08:00Music and Photos on the Golden Section theme.So, it turns out that there is a band named Sectio Aurea. Here is their MySpace page:<br />
<a href="http://profile.myspace.com/index.cfm?fuseaction=user.viewProfile&friendID=191837341">http://profile.myspace.com/index.cfm?fuseaction=user.viewProfile&friendID=191837341</a><br />
<br />
And their last.fm page:<br />
<a href="http://www.last.fm/music/Sectio+Aurea">http://www.last.fm/music/Sectio+Aurea</a><br />
<br />
Visually, this Flickr group has some splendid photographs illustrating the golden section:<br />
<a href="http://www.flickr.com/groups/sectio_aurea/">http://www.flickr.com/groups/sectio_aurea/</a>Sectio Aureahttp://www.blogger.com/profile/05757746234772925958noreply@blogger.com0tag:blogger.com,1999:blog-5137550877262530802.post-40639063386574290252008-12-12T02:26:00.000-08:002012-09-23T10:44:00.626-07:00Building Hydrogen drum machine from SVN on Ubuntu 8.10 "Intrepid"The SVN repository for the Linux drum machine software, Hydrogen has recently moved. You can read today's hydrogen-devel post about it here:<br />
<a href="http://sourceforge.net/mailarchive/forum.php?thread_name=4941A8C4.7070206%40smoors.de&forum_name=hydrogen-devel">http://sourceforge.net/mailarchive/forum.php?thread_name=4941A8C4.7070206%40smoors.de&forum_name=hydrogen-devel</a><br />
<br />
Here is how I installed Hydrogen from the new repository today on my 8.10 Intrepid system (you'll need the QT libraries, <span style="font-family: courier new;">libqt4-dev</span> if you don't already have them, as well as <span style="font-family: courier new;">build-essential</span> and probably a few others I'm forgetting):<br />
<br />
<a name='more'></a><br />
<br />
<span style="font-family: courier new;">cd ~</span><br />
<span style="font-family: courier new;">mkdir hydrogen-build && cd hydrogen-build</span><br />
<span style="font-family: courier new;">svn co http://svn.assembla.com/svn/hydrogen/trunk</span><br />
<span style="font-family: courier new;">cd trunk && scons && sudo su -c "scons install"</span><br />
<br />
Now I can run this one-liner to update Hydrogen to latest SVN (680 at this writing).<br />
<br />
<span style="font-family: courier new;">cd ~/hydrogen/trunk && svn up && scons && sudo su -c "scons install"<br />
<br />
<span style="font-family: georgia;">Hydrogen installs to /usr/local/bin/hydrogen when built this way, so you can run "hydrogen" in a terminal to open it.</span><br />
</span>Sectio Aureahttp://www.blogger.com/profile/05757746234772925958noreply@blogger.com0tag:blogger.com,1999:blog-5137550877262530802.post-4431972288729729662008-12-07T00:01:00.000-08:002012-09-23T10:43:49.726-07:00IntroductionWelcome to Sectio Aurea, a blog devoted to Linux related articles and news with a focus on the Ubuntu platform.<br />
<br />
Sectio Aurea is Latin for "Golden Section". In mathematics and the arts, two quantities are in the <a href="http://en.wikipedia.org/wiki/Golden_ratio">golden ratio</a> if the ratio between the sum of those quantities and the larger one is the same as the ratio between the larger one and the smaller.Sectio Aureahttp://www.blogger.com/profile/05757746234772925958noreply@blogger.com0