Browse Source

style edit

master
sipp11 10 years ago
parent
commit
6eb42533cd
  1. 6
      _config.yml
  2. 1
      _includes/footer.html
  3. 25
      _includes/paginator.html
  4. 2
      _layouts/post.html
  5. 15
      _posts/2007-08-04-all-the-connector-diagram-in-the-world.markdown
  6. 80
      _posts/2007-08-23-how-to-config-samba-server-and-user.markdown
  7. 15
      _posts/2009-06-02-bing-re-badge-live-search.markdown
  8. 30
      _posts/2009-11-10-change-login-screen-background-in-windows-7.markdown
  9. 19
      _posts/2010-02-22-xpvista-cannot-load-cd-driver.markdown
  10. 63
      _posts/2011-11-11-freenas-8-cave-man-can-do-it.markdown
  11. 16
      _posts/2013-08-02-why-should-we-have-3rd-party-sign-in.markdown
  12. 6
      _posts/2013-10-03-epson-linux-driver.markdown
  13. 48
      _posts/2013-10-22-share-printer-from-linux-box-to-windows.markdown
  14. 114
      _posts/2014-02-12-ssl-nginx.markdown
  15. 78
      _posts/2014-02-20-cryptocurrency-mining-rig-power-supply-unit.markdown
  16. 357
      _posts/2014-02-20-mining-rig-setup.markdown
  17. 27
      _posts/2014-04-13-psql-connect-server.markdown
  18. 18
      _posts/2014-10-28-weird-day-spammers-request-remove-links-wth.markdown
  19. 6
      _sass/_base.scss
  20. 41
      _sass/_color.scss
  21. 1
      _sass/_layout.scss
  22. 3
      css/main.scss
  23. 20
      index.html

6
_config.yml

@ -5,9 +5,13 @@ description: > # this means to ignore newlines until "baseurl:"
10ninox is a place where you'll find talks about tech mostly.
Opinions, how-tos, fixes, deals, dreams all in one place.
baseurl: "" # the subpath of your site, e.g. /blog/
url: "http://blog.10ninox.com" # the base hostname & protocol for your site
url: "http://blog.10ninox.com/" # the base hostname & protocol for your site
twitter_username: sipp11
github_username: sipp11
permalink: /:year/:month/:day/:title/
paginate: 8
paginate_path: "post/page/:num/"
# Build settings
markdown: kramdown

1
_includes/footer.html

@ -9,6 +9,7 @@
<ul class="contact-list">
<li>{{ site.title }}</li>
<li><a href="mailto:{{ site.email }}">{{ site.email }}</a></li>
<li class="rss-subscribe">subscribe <a href="{{ "/feed.xml" | prepend: site.baseurl }}">via RSS</a></li>
</ul>
</div>

25
_includes/paginator.html

@ -0,0 +1,25 @@
{% if paginator.total_pages > 1 %}
<div class="pagination">
{% if paginator.previous_page %}
<a href="{{ paginator.previous_page_path | prepend: site.baseurl | replace: '//', '/' }}">&laquo; Prev</a>
{% else %}
<span>&laquo; Prev</span>
{% endif %}
{{ site.baseurl }}
{% for page in (1..paginator.total_pages) %}
{% if page == paginator.page %}
<em>{{ page }}</em>
{% elsif page == 1 %}
<a href="{{ '/index.html' }}">{{ page }}</a>
{% else %}
<a href="/{{ site.paginate_path | replace: ':num', page }}"> {{ page }}</a>
{% endif %}
{% endfor %}
{% if paginator.next_page %}
<a href="{{ paginator.next_page_path | prepend: site.baseurl | replace: '//', '/' }}">Next &raquo;</a>
{% else %}
<span>Next &raquo;</span>
{% endif %}
</div>
{% endif %}

2
_layouts/post.html

@ -5,7 +5,7 @@ layout: default
<header class="post-header">
<h1 class="post-title">{{ page.title }}</h1>
<p class="post-meta">{{ page.date | date: "%b %-d, %Y %H:%M" }}{% if page.author.display_name %} • {{ page.author.display_name }}{% endif %}{% if page.meta %} • {{ page.meta }}{% endif %} • {{ page.tags | array_to_sentence_string }}</p>
<p class="post-meta">{{ page.date | date: "%b %-d, %Y %H:%M" }}{% if page.author.display_name %} • {{ page.author.display_name }}{% endif %}{% if page.meta %} • {{ page.meta }}{% endif %} • {{ page.categories | array_to_sentence_string }} • {{ page.tags | array_to_sentence_string }}</p>
</header>
<article class="post-content">

15
_posts/2007-08-04-all-the-connector-diagram-in-the-world.markdown

@ -18,9 +18,12 @@ categories:
- electronic
tags: []
---
<p>just to keep it for the archive, so I don't have to google much :-P I don't know this is worse than googling when I want. Let's try =)<br />
<a href="http://pinouts.ru/connector/"> http://pinouts.ru/connector/</a><br />
The common thing we should know:-</p>
<p><a href="http://pinouts.ru/connector/2_pin_MONO_plug_connector.shtml"><img src="http://pinouts.ru/connectors/teleph35mm.gif" alt="2 pin MONO plug connector" border="0" /></a><a href="http://pinouts.ru/connector/2_pin_MONO_plug_connector.shtml"> 2 pin MONO plug</a></p>
<p><a href="http://pinouts.ru/connector/2_pin_MONO_plug_connector.shtml"></a><br />
<a href="http://pinouts.ru/connector/2_pin_RCA_plug_connector.shtml"><img src="http://pinouts.ru/connectors/rca.gif" alt="2 pin RCA plug connector" border="0" /></a><a href="http://pinouts.ru/connector/2_pin_RCA_plug_connector.shtml"> 2 pin RCA plug</a></p>
just to keep it for the archive, so I don't have to google much :-P I don't know this is worse than googling when I want. Let's try =)
<a href="http://pinouts.ru/connector/"> http://pinouts.ru/connector/</a>
The common thing we should know:-
<a href="http://pinouts.ru/connector/2_pin_MONO_plug_connector.shtml"><img src="http://pinouts.ru/connectors/teleph35mm.gif" alt="2 pin MONO plug connector" border="0" /></a><a href="http://pinouts.ru/connector/2_pin_MONO_plug_connector.shtml"> 2 pin MONO plug</a>
<a href="http://pinouts.ru/connector/2_pin_MONO_plug_connector.shtml"></a>
<a href="http://pinouts.ru/connector/2_pin_RCA_plug_connector.shtml"><img src="http://pinouts.ru/connectors/rca.gif" alt="2 pin RCA plug connector" border="0" /></a><a href="http://pinouts.ru/connector/2_pin_RCA_plug_connector.shtml"> 2 pin RCA plug</a>

80
_posts/2007-08-23-how-to-config-samba-server-and-user.markdown

@ -19,32 +19,54 @@ tags:
- how to
- linux
---
<p>First, I was switching from all time Windows user to Linux user, more specifically Ubuntu--first Linux that I can use regularly. I was wondering if I can share files over the network with Windows as well. I know that there is Samba service out there but I don't know how to configure it properly. I messed things up as usual; all I knew to make it work is editing /etc/samba/smb.conf as <em>security=share</em>. Then I could get in there easily but no protection at all. Now I know, so I think it might be a good idea to explain in my ways instead of reading any-distro-docs which sometimes is too complex for novice users.</p>
<p>First of all, you have to install Samba server. I won't go through this process because if you don't know about this, you have to find out and get used to Linux first. My recommendation is trying with Debian, such as Ubuntu. It's really easy to understand.</p>
<p>Second, we have to configure the smb.conf file. This time you have to be as "root" to make a share folder. You have 2 choices here, GUI or editing the file. I found that GUI is easy to understand but I can't get it work for some reasons, thus I choose the traditional way :-P</p>
<p>After we already created share folders, we have to create a user for Samba too. This the point I misunderstood for a while; I thought that Samba will use the user from the system; however, it's not and system and Samba user are not the same as well.</p>
<p>These 3 steps are all you have to do to make it work perfectly. I brief all the processes first so you can imagine what we are doing in each step.</p>
<p>for editing Samba configuration file (smb.conf) you have to get in there</p>
<p class="codebox"> sudo gedit /etc/samba/smb.conf</p>
<p>once you get in there you will find a lot of comments and samples; you may go through the file for more understanding of each. However, we will pay attention to how to set share folder.</p>
<p class="codebox">[share-name]<br />
path = /media/hdax/xxx/<br />
comment = whatever you want<br />
available = yes<br />
browsable = yes<br />
public = yes<br />
writable = yes/no</p>
<p>This is what you have to insert at the end of the file. After you put the proper value, you will be able to see this share from another Windows PCs. However, you can't browse the file right now because of login window. Whatever user and password you fill are not working :-P Don't be surprise, that's normal. You still have to know 2 more values which are</p>
<p class="codebox">valid user = user-name<br />
guest ok = yes/no</p>
<p>the first one, valid user, is which user you give permission to read and/or write. Another one, guest ok, is to enable guest user which is read-only user.</p>
<p>After this step, if you enable guest user, you will be able to see the share folder without any problem. If not, you still have to go on setting user.</p>
<p>For creating user, you will run the smbpasswd utility to create user and password</p>
<p class="codebox">sudo smbpasswd -a user-name</p>
<p>Then you have to add that user to smbusers file</p>
<p class="codebox">sudo gedit /etc/samba/smbusers</p>
<p>What you have to put in there is this form</p>
<p class="codebox">system-user-name = "smb-user-name"</p>
<p>As you see, you may use Samba username (is what you add in <em>smbpasswd</em>) that differs from your username in the system depending on choice of preference.</p>
<p>All these methods above, you will be able to make many share folders with many conditions as you wish :-P</p>
<p><u><strong>Note:</strong></u> If you just want to share all share folders without any restricts, you may change the line <em>security = user</em> in <em>smb.conf</em> to <em>security = share</em> and that's all set.</p>
First, I was switching from all time Windows user to Linux user, more specifically Ubuntu--first Linux that I can use regularly. I was wondering if I can share files over the network with Windows as well. I know that there is Samba service out there but I don't know how to configure it properly. I messed things up as usual; all I knew to make it work is editing /etc/samba/smb.conf as `security=share`. Then I could get in there easily but no protection at all. Now I know, so I think it might be a good idea to explain in my ways instead of reading any-distro-docs which sometimes is too complex for novice users.
First of all, you have to install Samba server. I won't go through this process because if you don't know about this, you have to find out and get used to Linux first. My recommendation is trying with Debian, such as Ubuntu. It's really easy to understand.
Second, we have to configure the smb.conf file. This time you have to be as "root" to make a share folder. You have 2 choices here, GUI or editing the file. I found that GUI is easy to understand but I can't get it work for some reasons, thus I choose the traditional way :-P
After we already created share folders, we have to create a user for Samba too. This the point I misunderstood for a while; I thought that Samba will use the user from the system; however, it's not and system and Samba user are not the same as well.
These 3 steps are all you have to do to make it work perfectly. I brief all the processes first so you can imagine what we are doing in each step.
for editing Samba configuration file (smb.conf) you have to get in there
sudo gedit /etc/samba/smb.conf
once you get in there you will find a lot of comments and samples; you may go through the file for more understanding of each. However, we will pay attention to how to set share folder.
[share-name]
path = /media/hdax/xxx/
comment = whatever you want
available = yes
browsable = yes
public = yes
writable = yes/no
This is what you have to insert at the end of the file. After you put the proper value, you will be able to see this share from another Windows PCs. However, you can't browse the file right now because of login window. Whatever user and password you fill are not working :-P Don't be surprise, that's normal. You still have to know 2 more values which are
valid user = user-name
guest ok = yes/no
the first one, valid user, is which user you give permission to read and/or write. Another one, guest ok, is to enable guest user which is read-only user.
After this step, if you enable guest user, you will be able to see the share folder without any problem. If not, you still have to go on setting user.
For creating user, you will run the smbpasswd utility to create user and password
sudo smbpasswd -a user-name
Then you have to add that user to smbusers file
sudo gedit /etc/samba/smbusers
What you have to put in there is this form
system-user-name = "smb-user-name"
As you see, you may use Samba username (is what you add in `smbpasswd`) that differs from your username in the system depending on choice of preference.
All these methods above, you will be able to make many share folders with many conditions as you wish :-P
<u><strong>Note:</strong></u> If you just want to share all share folders without any restricts, you may change the line `security = user` in `smb.conf` to `security = share` and that's all set.

15
_posts/2009-06-02-bing-re-badge-live-search.markdown

@ -18,8 +18,13 @@ categories:
tags:
- search engine
---
<p><a href="http://blog.10ninox.com/wp-content/uploads/2009/06/introducingb-g.gif"><img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="introducingb__g" border="0" alt="introducingb__g" align="right" src="http://blog.10ninox.com/wp-content/uploads/2009/06/introducingb-g-thumb.gif" width="273" height="43" /></a> This is definitely not the breaking news. Microsoft just decided to change the word, <em>Live</em>, to “<em>Bing</em>” I don’t know if Bing is so much better word or anything. Will Live suite which is great change its name to Bing suite as well? They claimed that Bing uses new algorithm or whatever to achieve better performance; we probably don’t care either. What we care is whether “our keyword” can generate the result we want or not.</p>
<p><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.10ninox.com/wp-content/uploads/2009/06/image.png" width="610" height="122" /> </p>
<p>After trying for a while, I don’t see anything much interesting or persuasive enough to convince me that it’s much more than a re-brand &amp; putting useless features like category, search history. I honestly don’t know if you feel the same way, to me, search is built to destroy any classified, categorized data since if you do arrange stuffs neatly, you don’t need search, but if you do need “search, “ then you have no need of organizing them [that includes others’ stuffs which is categorized in the different ways of your brain]</p>
<p>In short, if Bing couldn’t change attitude about putting more and more bots for much larger coverage, like Google, and try to get most out of those huge database, they are not going to be even close to the first choice. Don’t think Google is the only competitor here. Yahoo, which gives the results much different than Google, might be much better alternative to Google rather than old <em>archive</em> search like Bing.</p>
<p>ps. I really feel sorry for Microsoft that they have soo much potential in every ways, but they couldn’t come up with the ace solution to the market. They might need to re-organize or something to aim their goals much more efficient. For instance, if they happen to amalgamate all E-mail clients’ teams such as Windows Live Mail, Windows Mail, Outlook Express, Outlook 2007, into only 1 e-mail client—might be 2 sub-divisions: web-based &amp; desktop-based. I believe they can have GMail-equivalent easily. But, they are dividing into small groups to achieve in everything as far as the products go. Consequently they just divide themselves… and think of it as a good plan. Hurr what a waste..</p>
<a href="http://blog.10ninox.com/wp-content/uploads/2009/06/introducingb-g.gif"><img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="introducingb__g" border="0" alt="introducingb__g" align="right" src="http://blog.10ninox.com/wp-content/uploads/2009/06/introducingb-g-thumb.gif" width="273" height="43" /></a> This is definitely not the breaking news. Microsoft just decided to change the word, <em>Live</em>, to “<em>Bing</em>” I don’t know if Bing is so much better word or anything. Will Live suite which is great change its name to Bing suite as well? They claimed that Bing uses new algorithm or whatever to achieve better performance; we probably don’t care either. What we care is whether “our keyword” can generate the result we want or not.
<img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.10ninox.com/wp-content/uploads/2009/06/image.png" width="610" height="122" />
After trying for a while, I don’t see anything much interesting or persuasive enough to convince me that it’s much more than a re-brand &amp; putting useless features like category, search history. I honestly don’t know if you feel the same way, to me, search is built to destroy any classified, categorized data since if you do arrange stuffs neatly, you don’t need search, but if you do need “search, “ then you have no need of organizing them [that includes others’ stuffs which is categorized in the different ways of your brain]
In short, if Bing couldn’t change attitude about putting more and more bots for much larger coverage, like Google, and try to get most out of those huge database, they are not going to be even close to the first choice. Don’t think Google is the only competitor here. Yahoo, which gives the results much different than Google, might be much better alternative to Google rather than old <em>archive</em> search like Bing.
ps. I really feel sorry for Microsoft that they have soo much potential in every ways, but they couldn’t come up with the ace solution to the market. They might need to re-organize or something to aim their goals much more efficient. For instance, if they happen to amalgamate all E-mail clients’ teams such as Windows Live Mail, Windows Mail, Outlook Express, Outlook 2007, into only 1 e-mail client—might be 2 sub-divisions: web-based &amp; desktop-based. I believe they can have GMail-equivalent easily. But, they are dividing into small groups to achieve in everything as far as the products go. Consequently they just divide themselves… and think of it as a good plan. Hurr what a waste..

30
_posts/2009-11-10-change-login-screen-background-in-windows-7.markdown

@ -17,13 +17,23 @@ categories:
- Windows 7
tags: []
---
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="login screen win7" src="http://blog.10ninox.com/wp-content/uploads/2009/11/IMG_6041.jpg" border="0" alt="login screen win7" width="300" height="245" align="right" /> If you are sick of vanilla login screen background, there is a way to change =) You have to tweak in registry a bit though, Microsoft just made it easy for OEM partner only :-P</p>
<p>First of all, you have to prepare your new background. Crop your image to 1:1 to your screen resolution. The catch is you should save your image not to be larger than 256kB. You might think it turns to crap one, but believe me that’s good enough =)</p>
<p>After getting an image you want, rename it to "backgroundDefault.jpg”. Then copy to the folder</p>
<p class="codebox">%windir%\system32\oobe\info\backgrounds</p>
<p>in case it doesn’t exist, create your own.</p>
<p>Secondly, enable the background in Registry, by getting into “regedit”</p>
<p class="codebox">HKLM\Software\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background</p>
<p><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="regedit - OEMBackground" src="http://blog.10ninox.com/wp-content/uploads/2009/11/image1.png" border="0" alt="regedit - OEMBackground" width="539" height="71" /></p>
<p>Create new key DWORD 32-bit, value 1 (1 as enable, 0 as disable) Also, if any of these doesn’t exist, create your own =)</p>
<p>That is it!, you may lock the computer and appreciate your personal login screen. Make your PC personal again!! lol</p>
<img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="login screen win7" src="http://blog.10ninox.com/wp-content/uploads/2009/11/IMG_6041.jpg" border="0" alt="login screen win7" width="300" height="245" align="right" /> If you are sick of vanilla login screen background, there is a way to change =) You have to tweak in registry a bit though, Microsoft just made it easy for OEM partner only :-P
First of all, you have to prepare your new background. Crop your image to 1:1 to your screen resolution. The catch is you should save your image not to be larger than 256kB. You might think it turns to crap one, but believe me that’s good enough =)
After getting an image you want, rename it to "backgroundDefault.jpg”. Then copy to the folder
%windir%\system32\oobe\info\backgrounds
in case it doesn’t exist, create your own.
Secondly, enable the background in Registry, by getting into “regedit”
HKLM\Software\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background
<img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="regedit - OEMBackground" src="http://blog.10ninox.com/wp-content/uploads/2009/11/image1.png" border="0" alt="regedit - OEMBackground" width="539" height="71" />
Create new key DWORD 32-bit, value 1 (1 as enable, 0 as disable) Also, if any of these doesn’t exist, create your own =)
That is it!, you may lock the computer and appreciate your personal login screen. Make your PC personal again!! lol

19
_posts/2010-02-22-xpvista-cannot-load-cd-driver.markdown

@ -16,8 +16,17 @@ categories:
- after-works
tags: []
---
<p>If you have a problem that your CD/DVD-ROM cannot be seen in my computer or exclamation mark on CD in device manager and you can do nothing about it, it can be fixed.</p>
<p><span style="color: #339966;"><em>How come does this issue happen?</em> </span>conflict happened when you have &gt;1 CD drivers related installed. It might be from CD/DVD burning app, such as Nero Burning ROM, Roxie, or daemon app like Virtual CD, MagicISO and such.</p>
<p><span style="color: #3366ff;"><em><span style="color: #339966;">How to fix:</span> </em></span>First, uninstalling anything won't help, neither will updating. What you have to do is getting into Registry editor (start | "regedit")</p>
<p>Then, find "LowerFilters" and/or "UpperFilters" and delete them. <strong><span style="text-decoration: underline;">Look carefully</span></strong>, you have to delete only ones in <span style="color: #ff0000;">HKLH\System\CurrentControlSet\Control\Class\{4D36E966-E325-11CE-BFC1-08002BE10318} </span><span style="color: #0000ff;">whose Class key is CDROM</span>. However, you don't have to worry much if you delete in others, you might have to restart more than once since Windows will have to detect and install the hardware driver again.</p>
<p>After deleted those 2 keys, just restart once. Your CD/DVD will come alive.</p>
If you have a problem that your CD/DVD-ROM cannot be seen in my computer or exclamation mark on CD in device manager and you can do nothing about it, it can be fixed.
__How come does this issue happen?__
conflict happened when you have &gt;1 CD drivers related installed. It might be from CD/DVD burning app, such as Nero Burning ROM, Roxie, or daemon app like Virtual CD, MagicISO and such.
__How to fix:__
First, uninstalling anything won't help, neither will updating. What you have to do is getting into Registry editor (start | "regedit")
Then, find "LowerFilters" and/or "UpperFilters" and delete them. **Look carefully**, you have to delete only ones in `HKLH\System\CurrentControlSet\Control\Class\{4D36E966-E325-11CE-BFC1-08002BE10318}` whose Class key is CDROM. However, you don't have to worry much if you delete in others, you might have to restart more than once since Windows will have to detect and install the hardware driver again.
After deleted those 2 keys, just restart once. Your CD/DVD will come alive.

63
_posts/2011-11-11-freenas-8-cave-man-can-do-it.markdown

@ -19,33 +19,36 @@ categories:
- server
tags: []
---
<p>It’s FreeNAS. It’s easy. Set it and forget it with full fledge NAS you can’t find anywhere else. Well, it might not have DRBD, but for home/personal or even small business should be able to cope with rsync easily.</p>
<p>At least, this version makes me happy. My SS4200 comes alive w/ port multiplier; it just lives up to its potential.</p>
<p>Kernel log speaks louder than anything.<br />
<code><br />
+pmp0 at siisch1 bus 0 scbus1 target 15 lun 0<br />
+pmp0: &lt; Port Multiplier 0325197b 000e &gt; ATA-0 device<br />
+pmp0: 300.000MB/s transfers (SATA 2.x, NONE, PIO 8192bytes)<br />
+pmp0: 300.000MB/s transfers (SATA 2.x, NONE, PIO 8192bytes)<br />
+pmp0: 15 fan-out ports<br />
+ada1 at siisch1 bus 0 scbus1 target 1 lun 0<br />
+ada1: ATA-8 SATA 2.x device<br />
+ada1: 300.000MB/s transfers (SATA 2.x, UDMA5, PIO 8192bytes)<br />
+ada1: Command Queueing enabled<br />
+ada1: 1907729MB (3907029168 512 byte sectors: 16H 63S/T 16383C)<br />
+ada2 at siisch1 bus 0 scbus1 target 0 lun 0<br />
+ada2: ATA-8 SATA 2.x device<br />
+ada2: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes)<br />
+ada2: Command Queueing enabled<br />
+ada2: 1907729MB (3907029168 512 byte sectors: 16H 63S/T 16383C)<br />
+ada3 at siisch1 bus 0 scbus1 target 3 lun 0<br />
+ada3: ATA-8 SATA 2.x device<br />
+ada3: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes)<br />
+ada3: Command Queueing enabled<br />
+ada3: 1907729MB (3907029168 512 byte sectors: 16H 63S/T 16383C)<br />
+ada4 at siisch1 bus 0 scbus1 target 2 lun 0<br />
+ada4: ATA-8 SATA 2.x device<br />
+ada4: 300.000MB/s transfers (SATA 2.x, UDMA5, PIO 8192bytes)<br />
+ada4: Command Queueing enabled<br />
+ada4: 1907729MB (3907029168 512 byte sectors: 16H 63S/T 16383C)</code></p>
<p>Thanks, FreeBSD guys enabling this feature. Thanks, FreeNAS folks developing nice-and-easy NAS.</p>
It’s FreeNAS. It’s easy. Set it and forget it with full fledge NAS you can’t find anywhere else. Well, it might not have DRBD, but for home/personal or even small business should be able to cope with rsync easily.
At least, this version makes me happy. My SS4200 comes alive w/ port multiplier; it just lives up to its potential.
Kernel log speaks louder than anything.
+pmp0 at siisch1 bus 0 scbus1 target 15 lun 0
+pmp0: &lt; Port Multiplier 0325197b 000e &gt; ATA-0 device
+pmp0: 300.000MB/s transfers (SATA 2.x, NONE, PIO 8192bytes)
+pmp0: 300.000MB/s transfers (SATA 2.x, NONE, PIO 8192bytes)
+pmp0: 15 fan-out ports
+ada1 at siisch1 bus 0 scbus1 target 1 lun 0
+ada1: ATA-8 SATA 2.x device
+ada1: 300.000MB/s transfers (SATA 2.x, UDMA5, PIO 8192bytes)
+ada1: Command Queueing enabled
+ada1: 1907729MB (3907029168 512 byte sectors: 16H 63S/T 16383C)
+ada2 at siisch1 bus 0 scbus1 target 0 lun 0
+ada2: ATA-8 SATA 2.x device
+ada2: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes)
+ada2: Command Queueing enabled
+ada2: 1907729MB (3907029168 512 byte sectors: 16H 63S/T 16383C)
+ada3 at siisch1 bus 0 scbus1 target 3 lun 0
+ada3: ATA-8 SATA 2.x device
+ada3: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes)
+ada3: Command Queueing enabled
+ada3: 1907729MB (3907029168 512 byte sectors: 16H 63S/T 16383C)
+ada4 at siisch1 bus 0 scbus1 target 2 lun 0
+ada4: ATA-8 SATA 2.x device
+ada4: 300.000MB/s transfers (SATA 2.x, UDMA5, PIO 8192bytes)
+ada4: Command Queueing enabled
+ada4: 1907729MB (3907029168 512 byte sectors: 16H 63S/T 16383C)
Thanks, FreeBSD guys enabling this feature. Thanks, FreeNAS folks developing nice-and-easy NAS.

16
_posts/2013-08-02-why-should-we-have-3rd-party-sign-in.markdown

@ -19,7 +19,15 @@ categories:
- service
tags: []
---
<p><img class="alignnone size-full wp-image-854" alt="Login" src="http://blog.10ninox.com/wp-content/uploads/2013/08/Screen-Shot-2013-08-01-at-11.05.19-PM.png" width="578" height="86" /></p>
<p>After many security vulnerabilities at many sites, <a href="http://ubuntuforums.org/" target="_blank">Ubuntu forums</a>, for example, has turned sign-in system into only-Ubuntu One-option. This is really interesting. The reason behind is simple: keeping sensitive data like password hash far away from not-so-secure-data like forum topics and stuffs. This eliminates a lot of stress on a forum side which a team behind forum can only focus on how to make community happy, not security audit every now and then. While another team on Ubuntu One will be responsible on make things as secure as possible with one focus in mind, providing user identity.</p>
<p>In case of smaller teams, they also have tons of options: Facebook, Google, Twitter, Yahoo and so on. Not only don't users have to worry about forgetting different passwords on different sites, users also gets top-notch security from providers they trust. Moreover, user could careless things like man-in-the-middle attack on public wireless network. For example,<a href="http://blog.10ninox.com/wp-content/uploads/2013/08/Screenshot_2013-08-01-23-59-01.png"><img class="size-full wp-image-855 alignright" alt="Google auto sign-in" src="http://blog.10ninox.com/wp-content/uploads/2013/08/Screenshot_2013-08-01-23-59-01.png" width="400" height="251" /></a> I'm using Android and about to login on some websites while I'm sitting in coffee shop. If the website I want to get in has only own website login, what I need to do is filling out user and password. Yep, on the worst case, someone else might be doing ARP-poisoning and unfortunately it's not that difficult at all. At the end of the day, my login and password are compromised. It will only get worse if I use much the same login and password on multiple sites/services. However, if the website provides something like Google login option. The scenario would be changed entirely since when I tap on login with Google, browser would jump to Google login page which Browser would give you an extra option to sign in with your account on your mobile device. Soon as you choose the account, boom! you are logged on. As a result, you don't even have to expose any of sensitive data explicitly. All processes are done via temporary token which needed to prove your identity.</p>
<p>All in all, I think it's great to have a simpler solution, and more importantly more secure solution. This should be implemented to all web services. It doesn't matter whether it's OpenID, Mozilla Persona, Facebook, Twitter, Microsoft and so on. As long as you use the service from company you trust, it's still a safer solution than implementing your own.</p>
![Login](http://blog.10ninox.com/wp-content/uploads/2013/08/Screen-Shot-2013-08-01-at-11.05.19-PM.png)
After many security vulnerabilities at many sites, <a href="http://ubuntuforums.org/" target="_blank">Ubuntu forums</a>, for example, has turned sign-in system into only-Ubuntu One-option. This is really interesting. The reason behind is simple: keeping sensitive data like password hash far away from not-so-secure-data like forum topics and stuffs. This eliminates a lot of stress on a forum side which a team behind forum can only focus on how to make community happy, not security audit every now and then. While another team on Ubuntu One will be responsible on make things as secure as possible with one focus in mind, providing user identity.
In case of smaller teams, they also have tons of options: Facebook, Google, Twitter, Yahoo and so on. Not only don't users have to worry about forgetting different passwords on different sites, users also gets top-notch security from providers they trust. Moreover, user could careless things like man-in-the-middle attack on public wireless network. For example,
![Google auto sign-in](http://blog.10ninox.com/wp-content/uploads/2013/08/Screenshot_2013-08-01-23-59-01.png)
I'm using Android and about to login on some websites while I'm sitting in coffee shop. If the website I want to get in has only own website login, what I need to do is filling out user and password. Yep, on the worst case, someone else might be doing ARP-poisoning and unfortunately it's not that difficult at all. At the end of the day, my login and password are compromised. It will only get worse if I use much the same login and password on multiple sites/services. However, if the website provides something like Google login option. The scenario would be changed entirely since when I tap on login with Google, browser would jump to Google login page which Browser would give you an extra option to sign in with your account on your mobile device. Soon as you choose the account, boom! you are logged on. As a result, you don't even have to expose any of sensitive data explicitly. All processes are done via temporary token which needed to prove your identity.
All in all, I think it's great to have a simpler solution, and more importantly more secure solution. This should be implemented to all web services. It doesn't matter whether it's OpenID, Mozilla Persona, Facebook, Twitter, Microsoft and so on. As long as you use the service from company you trust, it's still a safer solution than implementing your own.

6
_posts/2013-10-03-epson-linux-driver.markdown

@ -18,5 +18,7 @@ categories:
- linux
tags: []
---
<p>Sometimes Linux distro doesn't really ship with necessary drivers and Epson main website doesn't care having one. This website, <a href="http://avasys.jp/eng/linux_driver/" target="_blank">http://avasys.jp/eng/linux_driver/</a> had been a good service for a while. Now, here you go, <a href="http://download.ebz.epson.net/dsc/search/01/search/?OSC=LX" target="_blank">Epson Japanese site</a> is taking over.</p>
<p>In short, if drivers are available, I'm a happy customer.</p>
Sometimes Linux distro doesn't really ship with necessary drivers and Epson main website doesn't care having one. This website, <a href="http://avasys.jp/eng/linux_driver/" target="_blank">http://avasys.jp/eng/linux_driver/</a> had been a good service for a while. Now, here you go, <a href="http://download.ebz.epson.net/dsc/search/01/search/?OSC=LX" target="_blank">Epson Japanese site</a> is taking over.
In short, if drivers are available, I'm a happy customer.

48
_posts/2013-10-22-share-printer-from-linux-box-to-windows.markdown

@ -22,23 +22,31 @@ tags:
- cups
- samba
---
<p>Of course, I know it needed samba, but I had difficulty sharing one to Windows PC which I didn't really get into much since the day I moved away from Windows. This was what I did to get it work.</p>
<p><code>$ /etc/samba/smb.conf</code></p>
<p>Find these lines and uncomment them; if you can't find, type.<br />
<code>printcap name = cups<br />
printing = cups</code></p>
<p>[printers] section should look similar to this</p>
<p><code>[printers]<br />
comment = All Printers<br />
browseable = yes<br />
path = /var/spool/samba<br />
printable = yes<br />
public = yes<br />
guest ok = yes<br />
create mask = 0700<br />
use client driver = yes<br />
path = /tmp<br />
</code></p>
<p>Then you have to restart samba.<br />
<code>$ sudo service smbd restart</code><br />
For some, you might have to use <code>samba</code> instead of <code>smbd</code>. That's varied by distros. However, after adding printer to your Windows box, you should be able to print. I find it's easier to navigate to <code>\\linux-box-name</code> in file explorer. Find printer there, then right-click to connect and add there. Add printer via Devices and Printer and auto discovery thing isn't impressed me 99% of the time.</p>
Of course, I know it needed samba, but I had difficulty sharing one to Windows PC which I didn't really get into much since the day I moved away from Windows. This was what I did to get it work.
$ /etc/samba/smb.conf
Find these lines and uncomment them; if you can't find, type.
printcap name = cups
printing = cups
`[printers]` section should look similar to this
[printers]
comment = All Printers
browseable = yes
path = /var/spool/samba
printable = yes
public = yes
guest ok = yes
create mask = 0700
use client driver = yes
path = /tmp
Then you have to restart samba.
$ sudo service smbd restart
For some, you might have to use `samba` instead of `smbd`. That's varied by distros. However, after adding printer to your Windows box, you should be able to print. I find it's easier to navigate to ```\\linux-box-name``` in file explorer. Find printer there, then right-click to connect and add there. Add printer via Devices and Printer and auto discovery thing isn't impressed me 99% of the time.

114
_posts/2014-02-12-ssl-nginx.markdown

@ -20,52 +20,68 @@ categories:
tags:
- ssl
---
<p><code>https</code> is pretty much preferred protocol over bare <code>http</code> nowadays and it gets very affordable for basic one sub-domain which you can get as low as $9 a year. However, how to get and use one sometimes pretty much overkill although it is rather simple. Yeah, I keep forgetting since I don't really have to do that frequent.</p>
<p>Depending on where you purchase SSL certificate, I pick namecheap. I don't have any reason for it, but they are as reliable as it could be. GoDaddy, to me, is okay--they tend to have lower renewal cost for domain too. Back to SSL certificate, you need to generate a CSR (Certificate Signing Request) to ask for SSL. I'm using openSSL.</p>
<pre># openssl req -nodes -newkey rsa:2048 -keyout mywhatever.key -out whatever.csr</pre>
<p>A series of question will be asked:</p>
<pre>Country Name (2 letter code) [AU]: US
State or Province Name (full name) [Some-State]: NH
Locality Name (eg, city) []: Atkinson
Organization Name (eg, company) [Internet Widgits Pty Ltd]: 10ninox Ltd
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []: 10ninox.com
Email Address []:
A challenge password []:
An optional company name []:
</pre>
<p>Some fields can be left blank, but you pretty much like to answer all for your own credential. The thing is you <strong>should leave challenge password empty</strong>, otherwise, you will have to type that every time your Nginx reload or restart. Then you get 2 file <code>mywhatever.key</code> and <code>whatever.csr</code></p>
<p>Back to namecheap, issue your SSL, then paste content of <code>whatever.csr</code> to the form. Wait for a verification step via email. Then you would get <code>your_site.zip</code> with following mails. The whole process should take less than 10-15 minutes as far as my experience goes.</p>
<p>Now you have to extract <code>your_site.zip</code> which contains several files something like </p>
<ul>
<li>10ninox_com.crt</li>
<li>PositiveSSLCA2.crt</li>
<li>AddTrustExternalCARoot.crt</li>
</ul>
<p>Merge those files into one, <code>10ninox-ssl-bundle.csr</code> or whatever name you want.</p>
<pre>$ cat 10ninox_com.crt PositiveSSLCA2.crt AddTrustExternalCARoot.crt > 10ninox-ssl-bundle.csr</pre>
<p>Then copy the bundle file and <code>mywhatever.key</code> we got earlier to a directory in your server; location is up to you. There is no restricted whatsoever. The last process is to setup Nginx to know where SSL certificate is in Nginx virtualhost file (likely to be <code>/etc/nginx/sites-available/10ninox.com</code> for Debian)</p>
<p>This is an example how to configure one:</p>
<pre>
server {
listen 443;
ssl on;
ssl_certificate /opt/projects/10ninox/ssl/10ninox-ssl-bundle.csr;
ssl_certificate_key /opt/projects/10ninox/ssl/mywhatever.key;
ssl_protocols SSLv3 TLSv1;
ssl_ciphers ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM;
server_name 10ninox.com;
}
</pre>
<ul>optional lines:</p>
<li><code>ssl_ciphers ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM;</code> <em>means disables all weak cipher</em>s</li>
<li><code>ssl_protocols SSLv3 TLSv1;</code> <em>means enables SSLv3/TLSv1, but not SSLv2 which is weak and should no longer be used.</em></li>
</ul>
<p>It's better to test it first with</p>
<pre># service nginx configtest</pre>
<p>If pass,</p>
<pre># service nginx restart</pre>
<p>=)</p>
`https` is pretty much preferred protocol over bare <code>http</code> nowadays and it gets very affordable for basic one sub-domain which you can get as low as $9 a year. However, how to get and use one sometimes pretty much overkill although it is rather simple. Yeah, I keep forgetting since I don't really have to do that frequent.
Depending on where you purchase SSL certificate, I pick namecheap. I don't have any reason for it, but they are as reliable as it could be. GoDaddy, to me, is okay--they tend to have lower renewal cost for domain too. Back to SSL certificate, you need to generate a CSR (Certificate Signing Request) to ask for SSL. I'm using openSSL.
# openssl req -nodes -newkey rsa:2048 -keyout mywhatever.key -out whatever.csr
A series of question will be asked:
Country Name (2 letter code) [AU]: US
State or Province Name (full name) [Some-State]: NH
Locality Name (eg, city) []: Atkinson
Organization Name (eg, company) [Internet Widgits Pty Ltd]: 10ninox Ltd
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []: 10ninox.com
Email Address []:
A challenge password []:
An optional company name []:
Some fields can be left blank, but you pretty much like to answer all for your own credential. The thing is you <strong>should leave challenge password empty</strong>, otherwise, you will have to type that every time your Nginx reload or restart. Then you get 2 file <code>mywhatever.key</code> and <code>whatever.csr</code>
Back to namecheap, issue your SSL, then paste content of <code>whatever.csr</code> to the form. Wait for a verification step via email. Then you would get <code>your_site.zip</code> with following mails. The whole process should take less than 10-15 minutes as far as my experience goes.
Now you have to extract <code>your_site.zip</code> which contains several files something like
* 10ninox_com.crt
* PositiveSSLCA2.crt
* AddTrustExternalCARoot.crt
Merge those files into one, <code>10ninox-ssl-bundle.csr</code> or whatever name you want.
$ cat 10ninox_com.crt PositiveSSLCA2.crt AddTrustExternalCARoot.crt > 10ninox-ssl-bundle.csr
Then copy the bundle file and <code>mywhatever.key</code> we got earlier to a directory in your server; location is up to you. There is no restricted whatsoever. The last process is to setup Nginx to know where SSL certificate is in Nginx virtualhost file (likely to be <code>/etc/nginx/sites-available/10ninox.com</code> for Debian)
This is an example how to configure one:
server {
listen 443;
ssl on;
ssl_certificate /opt/projects/10ninox/ssl/10ninox-ssl-bundle.csr;
ssl_certificate_key /opt/projects/10ninox/ssl/mywhatever.key;
ssl_protocols SSLv3 TLSv1;
ssl_ciphers ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM;
server_name 10ninox.com;
}
optional lines:
* <code>ssl_ciphers ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM;</code> _means disables all weak ciphers_
* <code>ssl_protocols SSLv3 TLSv1;</code> _means enables SSLv3/TLSv1, but not SSLv2 which is weak and should no longer be used._
It's better to test it first with
# service nginx configtest
If pass,
# service nginx restart
=)

78
_posts/2014-02-20-cryptocurrency-mining-rig-power-supply-unit.markdown

@ -19,41 +19,43 @@ categories:
tags:
- mining
---
<p>I was looking around to see how to determine how much power consumption my rig would be. Well, there is never a definitive answer. Yet you can estimate from specification to get roughly guide.</p>
<ol>
<li>Mainboard: 50W</li>
<li>CPU: 50-100W</li>
<li>RAM: 5W each stick</li>
<li>HDD: 10W each</li>
</ol>
<p>That's for regular parts. For GPU, there are several things to consider from PCI-e specification:
<ul>
<li>Base power - one PCI-e slot has to be provide 75W.</li>
<li>6 Pin PCI Express power connector - maximum power delivery = 75W</li>
<li>8 Pin PCI Express power connector - maximum power delivery = 150W</li>
</ul>
<p>From this information, you can tell that
<ul>
<li><a target="_blank" href="http://www.amazon.com/Gigabyte-GDDR5-3GB-2xMini-Graphics-GV-R928XOC-3GD/dp/B00FONITA6/?_encoding=UTF8&camp=1789&creative=9325&linkCode=ur2&tag=mycapsules-20">Gigabyte Radeon R9-280x</a><img src="http://ir-na.amazon-adsystem.com/e/ir?t=mycapsules-20&l=ur2&o=1" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />, which has two power connectors: 6-pin and 8-pin connectors, can draw 75W (PCI-e slot) + 150W (8-pin) + 75W (6-pin) = 300W (total)
<p><a href="http://www.amazon.com/gp/product/B00H34J64M/ref=as_li_tf_il?ie=UTF8&camp=1789&creative=9325&creativeASIN=B00H34J64M&linkCode=as2&tag=mycapsules-20"><img border="0" src="http://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B00H34J64M&Format=_SL160_&ID=AsinImage&MarketPlace=US&ServiceVersion=20070822&WS=1&tag=mycapsules-20" ></a><img src="http://ir-na.amazon-adsystem.com/e/ir?t=mycapsules-20&l=as2&o=1&a=B00H34J64M" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></li>
<li><a target="_blank" href="http://www.amazon.com/Gigabyte-Mini-Displayport-PCI-Express-Graphic-GV-R787OC-2GD/dp/B007PJVB3Y/?_encoding=UTF8&camp=1789&creative=9325&keywords=gigabyte%207870&linkCode=ur2&qid=1392895348&s=electronics&sr=1-1&tag=mycapsules-20">Gigabyte HD 7870</a><img src="http://ir-na.amazon-adsystem.com/e/ir?t=mycapsules-20&l=ur2&o=1" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />, which has 2 6-pin power connectors, can draw power 75W + 2*(75W) = 225W
<p><a href="http://www.amazon.com/gp/product/B007PJVB3Y/ref=as_li_tf_il?ie=UTF8&camp=1789&creative=9325&creativeASIN=B007PJVB3Y&linkCode=as2&tag=mycapsules-20"><img border="0" src="http://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B007PJVB3Y&Format=_SL160_&ID=AsinImage&MarketPlace=US&ServiceVersion=20070822&WS=1&tag=mycapsules-20" ></a><img src="http://ir-na.amazon-adsystem.com/e/ir?t=mycapsules-20&l=as2&o=1&a=B007PJVB3Y" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</li>
</ul>
<p>For a regular mining rig, weak CPU, with 3 GPUs (7870):</p>
<ul>
<li><code>50W</code> Mainboard</li>
<li><code>50W</code> CPU</li>
<li><code>5W</code> 4GB RAM</li>
<li>3*<code>225W</code> Gigabye 7870</li>
</ul>
<p>You will end up having 50W+50W+5W+3*225W = 780W; however, you'd better have at least 20% extra power available which helps power supply unit (PSU) not to be in too heavy load at all time. This simply means you should buy at least 780W * 1.2 = 936W. Surely, you can't find it, but 1000W PSU is close enough =)</p>
<p>Questions?</p>
<ul>
<li>Does <a href="http://www.amazon.com/gp/product/B00A0HZMI8/ref=as_li_tf_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=B00A0HZMI8&linkCode=as2&tag=mycapsules-20">AX760i</a> (Great PSU) which can provide 760W work with above example (which theoretically draws 780W) ?<br />
I'm sure it's working. What we are calculating is the maximum power consumption your machine can draw. In practice, it's never hit 100% mark, but why putting that heavy load on PSU? Its lifespan will get shorter no matter how good it is.</li>
<li>What if my machine draw more power than PSU can provide?<br />
It depends. (1) Good PSU is likely to shut itself down immediately; (2) some PSU tries harder to provide its juice which cause a ripple. Random reboot or shutdown is likely the result. Lastly (3) PSU is exploded. It is not as bad as it sounds though. In fact, capacitors inside PSU will explode. You will hear and smell clearly if it's gone. Don't worry. Maybe a bit of smoke, but mostly your components shouldn't be damaged, but you never know. :)</li>
</ul>
<p><em>Reference:</em> <a href="http://www.pcisig.com/developers/main/training_materials/get_document?doc_id=6d37ec2f8543fc1f9d8ace6264d08b469f57e5f1" target="_blank">Board Design Guidelines for PCI Express™ Architecture</a>, <a href="http://www.playtool.com/pages/psuconnectors/connectors.html" target="_blank">power supply cable at playtool</a><br />
<em>Note:</em> Above product links in this post are affiliated ;)</p>
I was looking around to see how to determine how much power consumption my rig would be. Well, there is never a definitive answer. Yet you can estimate from specification to get roughly guide.
1. Mainboard: 50W
2. CPU: 50-100W
3. RAM: 5W each stick
4. HDD: 10W each
That's for regular parts. For GPU, there are several things to consider from PCI-e specification:
* Base power - one PCI-e slot has to be provide 75W.
* 6 Pin PCI Express power connector - maximum power delivery = 75W
* 8 Pin PCI Express power connector - maximum power delivery = 150W
From this information, you can tell that
* <a target="_blank" href="http://www.amazon.com/Gigabyte-GDDR5-3GB-2xMini-Graphics-GV-R928XOC-3GD/dp/B00FONITA6/?_encoding=UTF8&camp=1789&creative=9325&linkCode=ur2&tag=mycapsules-20">Gigabyte Radeon R9-280x</a><img src="http://ir-na.amazon-adsystem.com/e/ir?t=mycapsules-20&l=ur2&o=1" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />, which has two power connectors: 6-pin and 8-pin connectors, can draw 75W (PCI-e slot) + 150W (8-pin) + 75W (6-pin) = 300W (total)
<a href="http://www.amazon.com/gp/product/B00H34J64M/ref=as_li_tf_il?ie=UTF8&camp=1789&creative=9325&creativeASIN=B00H34J64M&linkCode=as2&tag=mycapsules-20"><img border="0" src="http://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B00H34J64M&Format=_SL160_&ID=AsinImage&MarketPlace=US&ServiceVersion=20070822&WS=1&tag=mycapsules-20" ></a><img src="http://ir-na.amazon-adsystem.com/e/ir?t=mycapsules-20&l=as2&o=1&a=B00H34J64M" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
* <a target="_blank" href="http://www.amazon.com/Gigabyte-Mini-Displayport-PCI-Express-Graphic-GV-R787OC-2GD/dp/B007PJVB3Y/?_encoding=UTF8&camp=1789&creative=9325&keywords=gigabyte%207870&linkCode=ur2&qid=1392895348&s=electronics&sr=1-1&tag=mycapsules-20">Gigabyte HD 7870</a><img src="http://ir-na.amazon-adsystem.com/e/ir?t=mycapsules-20&l=ur2&o=1" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />, which has 2 6-pin power connectors, can draw power 75W + 2*(75W) = 225W
<a href="http://www.amazon.com/gp/product/B007PJVB3Y/ref=as_li_tf_il?ie=UTF8&camp=1789&creative=9325&creativeASIN=B007PJVB3Y&linkCode=as2&tag=mycapsules-20"><img border="0" src="http://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B007PJVB3Y&Format=_SL160_&ID=AsinImage&MarketPlace=US&ServiceVersion=20070822&WS=1&tag=mycapsules-20" ></a><img src="http://ir-na.amazon-adsystem.com/e/ir?t=mycapsules-20&l=as2&o=1&a=B007PJVB3Y" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
For a regular mining rig, weak CPU, with 3 GPUs (7870):
* <code>50W</code> Mainboard
* <code>50W</code> CPU
* <code>5W</code> 4GB RAM
* 3*<code>225W</code> Gigabye 7870
You will end up having 50W+50W+5W+3*225W = 780W; however, you'd better have at least 20% extra power available which helps power supply unit (PSU) not to be in too heavy load at all time. This simply means you should buy at least 780W * 1.2 = 936W. Surely, you can't find it, but 1000W PSU is close enough =)
Questions?
* Does <a href="http://www.amazon.com/gp/product/B00A0HZMI8/ref=as_li_tf_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=B00A0HZMI8&linkCode=as2&tag=mycapsules-20">AX760i</a> (Great PSU) which can provide 760W work with above example (which theoretically draws 780W) ?
I'm sure it's working. What we are calculating is the maximum power consumption your machine can draw. In practice, it's never hit 100% mark, but why putting that heavy load on PSU? Its lifespan will get shorter no matter how good it is.
* What if my machine draw more power than PSU can provide?
It depends. (1) Good PSU is likely to shut itself down immediately; (2) some PSU tries harder to provide its juice which cause a ripple. Random reboot or shutdown is likely the result. Lastly (3) PSU is exploded. It is not as bad as it sounds though. In fact, capacitors inside PSU will explode. You will hear and smell clearly if it's gone. Don't worry. Maybe a bit of smoke, but mostly your components shouldn't be damaged, but you never know. :)
_Reference:_ <a href="http://www.pcisig.com/developers/main/training_materials/get_document?doc_id=6d37ec2f8543fc1f9d8ace6264d08b469f57e5f1" target="_blank">Board Design Guidelines for PCI Express™ Architecture</a>, <a href="http://www.playtool.com/pages/psuconnectors/connectors.html" target="_blank">power supply cable at playtool</a>
_Note:_ Above product links in this post are affiliated ;)

357
_posts/2014-02-20-mining-rig-setup.markdown

@ -19,164 +19,199 @@ categories:
tags:
- mining
---
<p>Don't ask me if it's worth investment. I don't know since difficulty and exchange rate change (drop?) everyday. It's getting harder and harder to get even but it makes me feel building computer fun again. LoL</p>
<p>After trial and error, the painless route is to creating USB flash drive for it. Clone it for another rig. Of course, I use Xubuntu, I don't know how to deal with Windows these days.</p>
<p>What you need:-</p>
<ul>
<li><a href="http://xubuntu.org/getxubuntu/">Xubuntu</a> - get x64 one -- Xubuntu, not Ubuntu. Unity is weird</li>
<li>8GB or more Flash drive; it doesn't necessarily need to be a fast one. Just make sure it's not extraordinarily slow. (You need one extra for Xubuntu setup if you don't burn Xubuntu ISO to CD)</li>
<li>Mining Rig -- Any hardware with AMD/ATI VGA cards, 4GB of RAM, any CPU would do it.</li>
<li>1x-to-16x PCI-e riser or 16x PCI-e riser -- 1x-to-16x is preferred since better airflow preferred. Well, basically you don't need this to get fully functional rig, but your rig will run so darn hot and it is <strong>NOT</strong> good at all.</li>
</ul>
<p>What you don't need:-</p>
<ul>
<li>From my experience, you don't need <a href="https://www.google.com/search?q=dummy+plug">any dummy plug</a>.</li>
<li>Powered 1x-to-16x PCI-e riser -- some recommended it over unpowered but you only need if you have > 3 GPUs (or using 1x slot) since 75W each slot draw -- GPU specification -- from mainboard is pretty much putting load under mainboard, esp. you are using 1x PCI-e slot which by specification 1x slot can't handle that much power (only 25W) while 16x is comfortably handled.</li>
</ul>
<p>To build your mining rig is pretty much like every computer, but we choose to have only needed things, Mainboard, CPU, RAM, Flash drive, VGA cards, to save power as much as possible. If you like to know which hardware is better, you probably what to look at <a href="https://litecoin.info/Mining_hardware_comparison">Mining hardware comparison</a>. You should look at kH/s rate, the more the better, but IMHO you need to think of average kH/s of each GPU since the highest hash rate in that table means they overclocks their GPUs as well. To me, mining coins is long-term; need to be stable; run every at stock; keep temperature normal.</p>
<p>For the first time ever, you need to have monitor, keyboard or mouse.</p>
<ol>
<li>get into BIOS, <code>del</code> on POST and choose to boot with Xubuntu setup flash drive. Also, you might like to check option power on after power failure too. It's very handy.</li>
<li>Xubuntu setup process is pretty much painless, you mostly click many 'next' buttons to get it done. One thing you need an attention is <b>Log in automatically</b> checkbox. You need to make sure it's checked.</li>
<li>Reboot after setup is done. Now you need to test if it's working by taking out Xubuntu setup flash drive out and let Xubuntu one boot up.</li>
<li>If it boots into Xubuntu, we are on half way to success. If not, repeat above.</li>
<li>Go to terminal and install GPU driver and necessary stuffs
<pre>$ sudo apt-get update
$ sudo apt-get install byobu openssh-server fglrx-updates fglrx-amdcccle-updates fglrx-updates-dev</pre>
</li>
<li>Check if Xubuntu sees all your GPU
<pre>$ sudo aticonfig --lsa</pre>
<p>If you see every GPU, that's good. If not, try to power off, check, re-insert your GPU again</li>
<li>Configure your GPU
<pre>$ sudo mv /etc/X11/xorg.conf /etc/X11/xorg.conf.bak
$ sudo aticonfig --adapter=all --initial</pre>
</li>
<li>Reboot to verify if everything works
<pre>$ sudo aticonfig --adapter=all --odgt</pre>
</li>
<p>Next is <code>cgminer</code> part, <a href="https://app.box.com/s/4zmmfgej7ba2lg1t0uac">download here</a>. Please download 3.7.2 version since it's the last version supporting <code>scrypt</code> which is likely to be protocol for most pool; otherwise, we need proxy in order to join any pool. This post will not cover that since I like to write how I setup and get it running automatically first.</p>
<pre>$ tar xjvf cgminer-3.7.2-x86_64-built.tar.bz2</pre>
<p>You end up having <code>cgminer-3.7.2-x86_64-built</code> directory if download from here. You can test whether it is working:</p>
<pre>$ cd cgminer-3.7.2-x86_64-built
$ ./cgminer -n
[2014-02-20 13:08:06] CL Platform 0 vendor: Advanced Micro Devices, Inc.
[2014-02-20 13:08:06] CL Platform 0 name: AMD Accelerated Parallel Processing
[2014-02-20 13:08:06] CL Platform 0 version: OpenCL 1.2 AMD-APP (1214.3)
[2014-02-20 13:08:06] Platform 0 devices: 3
[2014-02-20 13:08:06] 0 Pitcairn
[2014-02-20 13:08:06] 1 Pitcairn
[2014-02-20 13:08:06] 2 Tahiti
[2014-02-20 13:08:06] ADL Initialisation Error! Error -1!
[2014-02-20 13:08:06] 3 GPU devices max detected
[2014-02-20 13:08:06] USB all: found 9 devices - listing known devices
[2014-02-20 13:08:06] No known USB devices</pre>
<ul>
<li><code>-n means listing all GPU devices</code></li>
</ul>
<p>If you don't see all, you like to try <code>aticonfig</code> things above again.<br />
My example rig above consisting of 2 * Gigabyte 7870 [Pitcairn] and 1 * Gigabyte 280x [Tahiti]. I just want to show that you can have different GPU in the same rig as long as your power supply unit can handle. </p>
<p>If you see all devices, that's a good sign. Do not worry errors like above though. It's working just fine and that's you have everything you need to mine.</p>
<p>Up to this point, monitor, keyboard and mouse are useless. You can shut computer down and take them off. From now on, you plug your power and switch on at power supply, it should be able to turn on automatically and surely that's what we intend to.</p>
<p>Running <code>cgminer</code> is the last thing left to do.</p>
<p>Well, I can't cover everything, but <a href="https://litecoin.info/Mining_hardware_comparison">Mining hardware comparison</a> is where you can see other configurations which is a good guideline for trials and errors. For pool, if you don't know anything, you will google a lot to see what the heck is pool. For me: </p>
<ul>
<li>If you want to mine LiteCoin (LTC), you go register and add worker at <a href="https://www.wemineltc.com/">WeMineLtc.com</a>. Some says they are too large pool already, but I say it's very reliable and as newbie, you need to get familiar with mining process first. This is a good place to start.</li>
<li>If you want to mine DogeCoin (DOGE), you go register and add worker at <a href="http://doge.rapidhash.net/">RapidHash</a>. Very reliable service there.</li>
</ul>
<p>You can also find small pools everywhere, but I used to try some of them and I don't get coins at all after a week mining. -*- Maybe your mileage may vary. After registration, you will get:
<ol>
<li>Statum Servers -- usually on pools' front page
<ul>
<li>WeMineLTC index page: World-Wide Server (VARDIFF): <code>stratum+tcp://hot.wemineltc.com:3335</code></li>
<li>Rapidhash has an example command shown on first page: <code>stratum+tcp://stratum.rapidhash.net:3333</code></li>
</ul>
</li>
<li>Worker user/password: it will usually be your username.xxx; for password, you can just use 1 or anything simple. If someone else want to mine for you, why not let them? haha You only keep account password and PIN safe. That's enough.</li>
</ol>
<p>Next you try running <code>cgminer</code>, command is something like this</p>
<pre>
$ export DISPLAY=:0
$ export GPU_MAX_ALLOC_PERCENT=100
$ export GPU_USE_SYNC_OBJECTS=1
$ ./cgminer --scrypt --no-submit-stale -o stratum+tcp://stratum.rapidhash.net:3333 -u username.worker -I 13 -w 256 --thread-concurrency 8192 --auto-fan --gpu-engine 980 --gpu-threads 2</pre>
<ul>
<li><code>-I </code>means Intensity [0-20] more intensity usually means more hashes, but with 280x >13 intensity produces more invalids; well, trial and error after all.</li>
<li><code>-w 256 </code>means worksize, I only see people use this value haha.</li>
<li><code>--thread-concurrency 8192 </code> to set GPU thread concurrency for scrypt mining, larger doesn't always mean more hashes though.</li>
<li><code>--auto-fan </code> means let card adjust how fast fan is based on temperature. You could do like <code>--auto-fan --gpu-fan 30-85</code> to specify range fan should be also. People claimed that running 24|7 at max fan speed could kill fan in 2 months. Well, believe it or not? I don't dare trying</li>
<li><code>--gpu-engine 980 </code> means GPU clock speed; range setting like <code>--gpu-engine 980-1000</code> is also possible.</li>
<li><code>--gpu-threads 2</code> means number of threads per GPU (1 - 10)</li>
</ul>
<p>Above you are setting one value per parameters. If you have many of the same card in your rig, that will be applied to all cards. However, if you want each card running different parameters, you could do like <code>-I 13,18 -w 256,256 --thread-concurrency 8192,12000 --auto-fan --gpu-engine 980,1050</code> to have different settings for each card. However, it's better to run many <code>cgminer</code> instance if you have 2 different GPU by using <code>-d 2</code> means using only device number 2 (from <code>./cgminer -n</code> as shown above) or you can use <code>-d 0,1</code> to use this <code>cgminer</code> instance for device number 0 and 1.</p>
<p>When you get satisfied parameters, you can create a script file. For example, <code>mining.sh</code></p>
<pre>#!/bin/sh
export DISPLAY=:0
export GPU_MAX_ALLOC_PERCENT=100
export GPU_USE_SYNC_OBJECTS=1
cd /home/ninox/cgminer-3.7.2-x86_64-built
./cgminer --scrypt --no-submit-stale -o stratum+tcp://stratum.rapidhash.net:3333 -u ninox.w1 -p 1 -d 2 -I 13 -w 256 --thread-concurrency 8192 --auto-fan --gpu-fan 20-85 --gpu-engine 980 --gpu-threads 2</pre>
<p>Then make this file executable</p>
<pre>$ chmod +x mining.sh</pre>
<p>Verify if it works</p>
<pre>$ ./mining.sh</pre>
<p>You should see something like</p>
<pre>cgminer version 3.7.2 - Started: [2014-02-19 11:42:25]
--------------------------------------------------------------------------------
(5s):699.9K (avg):684.5Kh/s | A:566864 R:4944 HW:0 WU:618.4/m
ST: 2 SS: 7 NB: 919 LW: 8874 GF: 1 RF: 0
Connected to stratum.rapidhash.net diff 128 with stratum as user ninox.w1
Block: 2102e8d1... Diff:1.15K Started: [03:17:01] Best share: 2.18M
--------------------------------------------------------------------------------
[P]ool management [G]PU management [S]ettings [D]isplay options [Q]uit
GPU 0: 75.0C 100% | OFF / 5.000h/s | A: 0 R: 0 HW:0 WU: 0.0/m I:13
GPU 1: 73.0C 60% | OFF / 0.000h/s | A: 0 R: 0 HW:0 WU: 0.0/m I:13
GPU 2: 74.0C 3367RPM | 698.9K/684.5Kh/s | A:566864 R:4944 HW:0 WU: 618.4/m I:13
--------------------------------------------------------------------------------
[2014-02-20 03:16:24] Accepted 01a73a13 Diff 155/128 GPU 2 pool 0
[2014-02-20 03:16:29] Accepted 2b989e17 Diff 1.5K/128 GPU 2 pool 0
[2014-02-20 03:16:30] Accepted 01ed9e3c Diff 133/128 GPU 2 pool 0
[2014-02-20 03:16:36] Stratum from pool 0 detected new block
[2014-02-20 03:16:56] Accepted 01423a05 Diff 203/128 GPU 2 pool 0
[2014-02-20 03:17:01] Stratum from pool 0 detected new block
</pre>
<p>Shown above is using Gigabyte R9-280x working alone. The ambient temperature is roughly 30ºC; at night with lower ambient temperature, I could push more hashes in 7x0, but in quite hot country, I don't want to kill my GPU quickly by running at 8xºC always.</p>
<p>I'm impressed with 2 * Gigabyte 7870 more. With half a price of Gigabyte R9-280x, they are running smooothly at 42x kH/s each card at very low temperature.</p>
<pre>cgminer version 3.7.2 - Started: [2014-02-19 11:43:02]
--------------------------------------------------------------------------------
(5s):823.8K (avg):844.7Kh/s | A:697728 R:4608 HW:0 WU:765.9/m
ST: 2 SS: 66 NB: 923 LW: 9081 GF: 1 RF: 1
Connected to stratum.rapidhash.net diff 128 with stratum as user ninox.w1
Block: a3b04227... Diff:1.15K Started: [03:20:46] Best share: 289K
--------------------------------------------------------------------------------
[P]ool management [G]PU management [S]ettings [D]isplay options [Q]uit
GPU 0: 74.0C 100% | 422.9K/422.5Kh/s | A:349488 R:2304 HW:0 WU: 382.8/m I:18
GPU 1: 73.0C 31% | 423.0K/422.2Kh/s | A:348240 R:2304 HW:0 WU: 383.2/m I:18
GPU 2: 75.0C 3359RPM | OFF / 0.000h/s | A: 0 R: 0 HW:0 WU: 0.0/m I:18
--------------------------------------------------------------------------------
</pre>
<p>This is stock clock speed of 7870 while I have to underclock my R9-280x and put it on the outermost to get coldest air to retain 7x ºC or its temperature will rise to 8x ºC. As always, your mileage may vary.</p>
<p>Mining part is complete. Nonetheless, you would want to have it start automatically if your system fails. The easiest way to deal with is <strong>crontab</strong>. I like to have one script to run it. </p>
<p><code>~/mining-cron.sh</code></p>
<pre>#!/bin/sh
sleep 40
screen -dmS miner280 /home/ninox/rapid-280.sh
sleep 40
screen -dmS miner7870 /home/ninox/rapid-2-7870.sh</pre>
<p>Don't forget to make this file executable also.</p>
<pre>$ chmod +x mining-cron.sh</pre>
<p>Above means hold for 40 seconds then run <code>/home/ninox/rapid-280.sh</code> in <code>screen</code> named miner280 and hold for another 40 seconds before running another file in <code>screen</code> named miner7870. For those who do not know what <code>screen</code> is it's a shell session which is always running in background. To check how session is, you could do:</p>
<pre>$ screen -r
There are several suitable screens on:
1892.miner7870 (02/19/2014 11:43:00 PM) (Detached)
1680.miner280 (02/19/2014 11:42:20 PM) (Detached)
Type "screen [-d] -r [pid.]tty.host" to resume one of them.
$</pre>
<ul>
<li>To open specific screen using <code>screen -r miner7870</code> and </li>
<li><code>CTRL + a then d</code> to get out of that session without terminating the process.</li>
</ul>
<p>Then putting in crontab</p>
<pre>$ crontab -e
@reboot /home/ninox/rapid-cronjob.sh</pre>
<p>This is setting cron job for your own user, not system.</p>
Don't ask me if it's worth investment. I don't know since difficulty and exchange rate change (drop?) everyday. It's getting harder and harder to get even but it makes me feel building computer fun again. LoL
After trial and error, the painless route is to creating USB flash drive for it. Clone it for another rig. Of course, I use Xubuntu, I don't know how to deal with Windows these days.
What you need:-
* <a href="http://xubuntu.org/getxubuntu/">Xubuntu</a> - get x64 one -- Xubuntu, not Ubuntu. Unity is weird
* 8GB or more Flash drive; it doesn't necessarily need to be a fast one. Just make sure it's not extraordinarily slow. (You need one extra for Xubuntu setup if you don't burn Xubuntu ISO to CD)
* Mining Rig -- Any hardware with AMD/ATI VGA cards, 4GB of RAM, any CPU would do it.
* 1x-to-16x PCI-e riser or 16x PCI-e riser -- 1x-to-16x is preferred since better airflow preferred. Well, basically you don't need this to get fully functional rig, but your rig will run so darn hot and it is <strong>NOT</strong> good at all.
What you don't need:-
* From my experience, you don't need <a href="https://www.google.com/search?q=dummy+plug">any dummy plug</a>.
* Powered 1x-to-16x PCI-e riser -- some recommended it over unpowered but you only need if you have > 3 GPUs (or using 1x slot) since 75W each slot draw -- GPU specification -- from mainboard is pretty much putting load under mainboard, esp. you are using 1x PCI-e slot which by specification 1x slot can't handle that much power (only 25W) while 16x is comfortably handled.
To build your mining rig is pretty much like every computer, but we choose to have only needed things, Mainboard, CPU, RAM, Flash drive, VGA cards, to save power as much as possible. If you like to know which hardware is better, you probably what to look at <a href="https://litecoin.info/Mining_hardware_comparison">Mining hardware comparison</a>. You should look at kH/s rate, the more the better, but IMHO you need to think of average kH/s of each GPU since the highest hash rate in that table means they overclocks their GPUs as well. To me, mining coins is long-term; need to be stable; run every at stock; keep temperature normal.
For the first time ever, you need to have monitor, keyboard or mouse.
* get into BIOS, ```del``` on POST and choose to boot with Xubuntu setup flash drive. Also, you might like to check option power on after power failure too. It's very handy.
* Xubuntu setup process is pretty much painless, you mostly click many 'next' buttons to get it done. One thing you need an attention is <b>Log in automatically</b> checkbox. You need to make sure it's checked.
* Reboot after setup is done. Now you need to test if it's working by taking out Xubuntu setup flash drive out and let Xubuntu one boot up.
* If it boots into Xubuntu, we are on half way to success. If not, repeat above.
* Go to terminal and install GPU driver and necessary stuffs
$ sudo apt-get update
$ sudo apt-get install byobu openssh-server fglrx-updates fglrx-amdcccle-updates fglrx-updates-dev
* Check if Xubuntu sees all your GPU
$ sudo aticonfig --lsa
If you see every GPU, that's good. If not, try to power off, check, re-insert your GPU again
* Configure your GPU
$ sudo mv /etc/X11/xorg.conf /etc/X11/xorg.conf.bak
$ sudo aticonfig --adapter=all --initial
* Reboot to verify if everything works
$ sudo aticonfig --adapter=all --odgt
Next is ```cgminer``` part, <a href="https://app.box.com/s/4zmmfgej7ba2lg1t0uac">download here</a>. Please download 3.7.2 version since it's the last version supporting ```scrypt``` which is likely to be protocol for most pool; otherwise, we need proxy in order to join any pool. This post will not cover that since I like to write how I setup and get it running automatically first.
$ tar xjvf cgminer-3.7.2-x86_64-built.tar.bz2
You end up having ```cgminer-3.7.2-x86_64-built``` directory if download from here. You can test whether it is working:
$ cd cgminer-3.7.2-x86_64-built
$ ./cgminer -n
[2014-02-20 13:08:06] CL Platform 0 vendor: Advanced Micro Devices, Inc.
[2014-02-20 13:08:06] CL Platform 0 name: AMD Accelerated Parallel Processing
[2014-02-20 13:08:06] CL Platform 0 version: OpenCL 1.2 AMD-APP (1214.3)
[2014-02-20 13:08:06] Platform 0 devices: 3
[2014-02-20 13:08:06] 0 Pitcairn
[2014-02-20 13:08:06] 1 Pitcairn
[2014-02-20 13:08:06] 2 Tahiti
[2014-02-20 13:08:06] ADL Initialisation Error! Error -1!
[2014-02-20 13:08:06] 3 GPU devices max detected
[2014-02-20 13:08:06] USB all: found 9 devices - listing known devices
[2014-02-20 13:08:06] No known USB devices
* ```-n means listing all GPU devices```
If you don't see all, you like to try ```aticonfig``` things above again.<br />
My example rig above consisting of 2 * Gigabyte 7870 [Pitcairn] and 1 * Gigabyte 280x [Tahiti]. I just want to show that you can have different GPU in the same rig as long as your power supply unit can handle.
If you see all devices, that's a good sign. Do not worry errors like above though. It's working just fine and that's you have everything you need to mine.
Up to this point, monitor, keyboard and mouse are useless. You can shut computer down and take them off. From now on, you plug your power and switch on at power supply, it should be able to turn on automatically and surely that's what we intend to.
Running ```cgminer``` is the last thing left to do.
Well, I can't cover everything, but <a href="https://litecoin.info/Mining_hardware_comparison">Mining hardware comparison</a> is where you can see other configurations which is a good guideline for trials and errors. For pool, if you don't know anything, you will google a lot to see what the heck is pool. For me:
* If you want to mine LiteCoin (LTC), you go register and add worker at <a href="https://www.wemineltc.com/">WeMineLtc.com</a>. Some says they are too large pool already, but I say it's very reliable and as newbie, you need to get familiar with mining process first. This is a good place to start.
* If you want to mine DogeCoin (DOGE), you go register and add worker at <a href="http://doge.rapidhash.net/">RapidHash</a>. Very reliable service there.
You can also find small pools everywhere, but I used to try some of them and I don't get coins at all after a week mining. -*- Maybe your mileage may vary. After registration, you will get:
* Statum Servers -- usually on pools' front page
* WeMineLTC index page: World-Wide Server (VARDIFF): ```stratum+tcp://hot.wemineltc.com:3335```
* Rapidhash has an example command shown on first page: ```stratum+tcp://stratum.rapidhash.net:3333```
* Worker user/password: it will usually be your username.xxx; for password, you can just use 1 or anything simple. If someone else want to mine for you, why not let them? haha You only keep account password and PIN safe. That's enough.
Next you try running ```cgminer```, command is something like this
$ export DISPLAY=:0
$ export GPU_MAX_ALLOC_PERCENT=100
$ export GPU_USE_SYNC_OBJECTS=1
$ ./cgminer --scrypt --no-submit-stale -o stratum+tcp://stratum.rapidhash.net:3333 -u username.worker -I 13 -w 256 --thread-concurrency 8192 --auto-fan --gpu-engine 980 --gpu-threads 2
* ```-I ```means Intensity [0-20] more intensity usually means more hashes, but with 280x >13 intensity produces more invalids; well, trial and error after all.
* ```-w 256 ```means worksize, I only see people use this value haha.
* ```--thread-concurrency 8192 ``` to set GPU thread concurrency for scrypt mining, larger doesn't always mean more hashes though.
* ```--auto-fan ``` means let card adjust how fast fan is based on temperature. You could do like ```--auto-fan --gpu-fan 30-85``` to specify range fan should be also. People claimed that running 24|7 at max fan speed could kill fan in 2 months. Well, believe it or not? I don't dare trying
* ```--gpu-engine 980 ``` means GPU clock speed; range setting like ```--gpu-engine 980-1000``` is also possible.
* ```--gpu-threads 2``` means number of threads per GPU (1 - 10)
Above you are setting one value per parameters. If you have many of the same card in your rig, that will be applied to all cards. However, if you want each card running different parameters, you could do like ```-I 13,18 -w 256,256 --thread-concurrency 8192,12000 --auto-fan --gpu-engine 980,1050``` to have different settings for each card. However, it's better to run many ```cgminer``` instance if you have 2 different GPU by using ```-d 2``` means using only device number 2 (from ```./cgminer -n``` as shown above) or you can use ```-d 0,1``` to use this ```cgminer``` instance for device number 0 and 1.
When you get satisfied parameters, you can create a script file. For example, ```mining.sh```
#!/bin/sh
export DISPLAY=:0
export GPU_MAX_ALLOC_PERCENT=100
export GPU_USE_SYNC_OBJECTS=1
cd /home/ninox/cgminer-3.7.2-x86_64-built
./cgminer --scrypt --no-submit-stale -o stratum+tcp://stratum.rapidhash.net:3333 -u ninox.w1 -p 1 -d 2 -I 13 -w 256 --thread-concurrency 8192 --auto-fan --gpu-fan 20-85 --gpu-engine 980 --gpu-threads 2
Then make this file executable
$ chmod +x mining.sh
Verify if it works
$ ./mining.sh
You should see something like
cgminer version 3.7.2 - Started: [2014-02-19 11:42:25]
--------------------------------------------------------------------------------
(5s):699.9K (avg):684.5Kh/s | A:566864 R:4944 HW:0 WU:618.4/m
ST: 2 SS: 7 NB: 919 LW: 8874 GF: 1 RF: 0
Connected to stratum.rapidhash.net diff 128 with stratum as user ninox.w1
Block: 2102e8d1... Diff:1.15K Started: [03:17:01] Best share: 2.18M
--------------------------------------------------------------------------------
[P]ool management [G]PU management [S]ettings [D]isplay options [Q]uit
GPU 0: 75.0C 100% | OFF / 5.000h/s | A: 0 R: 0 HW:0 WU: 0.0/m I:13
GPU 1: 73.0C 60% | OFF / 0.000h/s | A: 0 R: 0 HW:0 WU: 0.0/m I:13
GPU 2: 74.0C 3367RPM | 698.9K/684.5Kh/s | A:566864 R:4944 HW:0 WU: 618.4/m I:13
--------------------------------------------------------------------------------
[2014-02-20 03:16:24] Accepted 01a73a13 Diff 155/128 GPU 2 pool 0
[2014-02-20 03:16:29] Accepted 2b989e17 Diff 1.5K/128 GPU 2 pool 0
[2014-02-20 03:16:30] Accepted 01ed9e3c Diff 133/128 GPU 2 pool 0
[2014-02-20 03:16:36] Stratum from pool 0 detected new block
[2014-02-20 03:16:56] Accepted 01423a05 Diff 203/128 GPU 2 pool 0
[2014-02-20 03:17:01] Stratum from pool 0 detected new block
Shown above is using Gigabyte R9-280x working alone. The ambient temperature is roughly 30ºC; at night with lower ambient temperature, I could push more hashes in 7x0, but in quite hot country, I don't want to kill my GPU quickly by running at 8xºC always.
I'm impressed with 2 * Gigabyte 7870 more. With half a price of Gigabyte R9-280x, they are running smooothly at 42x kH/s each card at very low temperature.
cgminer version 3.7.2 - Started: [2014-02-19 11:43:02]
--------------------------------------------------------------------------------
(5s):823.8K (avg):844.7Kh/s | A:697728 R:4608 HW:0 WU:765.9/m
ST: 2 SS: 66 NB: 923 LW: 9081 GF: 1 RF: 1
Connected to stratum.rapidhash.net diff 128 with stratum as user ninox.w1
Block: a3b04227... Diff:1.15K Started: [03:20:46] Best share: 289K
--------------------------------------------------------------------------------
[P]ool management [G]PU management [S]ettings [D]isplay options [Q]uit
GPU 0: 74.0C 100% | 422.9K/422.5Kh/s | A:349488 R:2304 HW:0 WU: 382.8/m I:18
GPU 1: 73.0C 31% | 423.0K/422.2Kh/s | A:348240 R:2304 HW:0 WU: 383.2/m I:18
GPU 2: 75.0C 3359RPM | OFF / 0.000h/s | A: 0 R: 0 HW:0 WU: 0.0/m I:18
--------------------------------------------------------------------------------
This is stock clock speed of 7870 while I have to underclock my R9-280x and put it on the outermost to get coldest air to retain 7x ºC or its temperature will rise to 8x ºC. As always, your mileage may vary.
Mining part is complete. Nonetheless, you would want to have it start automatically if your system fails. The easiest way to deal with is <strong>crontab</strong>. I like to have one script to run it.
```~/mining-cron.sh```
#!/bin/sh
sleep 40
screen -dmS miner280 /home/ninox/rapid-280.sh
sleep 40
screen -dmS miner7870 /home/ninox/rapid-2-7870.sh
Don't forget to make this file executable also.
$ chmod +x mining-cron.sh
Above means hold for 40 seconds then run ```/home/ninox/rapid-280.sh``` in ```screen``` named miner280 and hold for another 40 seconds before running another file in ```screen``` named miner7870. For those who do not know what ```screen``` is it's a shell session which is always running in background. To check how session is, you could do:
$ screen -r
There are several suitable screens on:
1892.miner7870 (02/19/2014 11:43:00 PM) (Detached)
1680.miner280 (02/19/2014 11:42:20 PM) (Detached)
Type "screen [-d] -r [pid.]tty.host" to resume one of them.
$
* To open specific screen using ```screen -r miner7870``` and
* ```CTRL + a then d``` to get out of that session without terminating the process.
Then putting in crontab
$ crontab -e
@reboot /home/ninox/rapid-cronjob.sh
This is setting cron job for your own user, not system.

27
_posts/2014-04-13-psql-connect-server.markdown

@ -19,15 +19,18 @@ categories:
tags:
- error
---
<p>There are a few problems when you think of Homebrew on OSX. This is a problem that has nothing to do with Brew at all.</p>
<p><code><br />
psql: could not connect to server: No such file or directory<br />
Is the server running locally and accepting<br />
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?<br />
</code></p>
<p>When you find this error message while getting back from system crash, freeze, or any unexpected shutdown, it only means that there is a dirty PID file pointing out the somewhere empty. Basically every daemons will create .pid to store process number, socket and such, so when need, it will be able to do it right and delete right after shutting down the daemons. However, when unexpected shutdown occurs, no time for cleaning up .pid file, that's where problems start. Everyone will think that the daemon is running (its .pid file exists) and asking for something, surely that .pid file can only lead to false route.</p>
<p><strong>Solution</strong>: you do clean up for system. In this case, Brew's PostgreSQL .pid file is at <code>/usr/local/var/postgres/postmaster.pid</code><br />
<code><br />
$ sudo /usr/local/var/postgres/postmaster.pid<br />
</code><br />
Then you can start your postgres again. It's the same with every other daemons; you just need to find its PID file.</p>
There are a few problems when you think of Homebrew on OSX. This is a problem that has nothing to do with Brew at all.
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
When you find this error message while getting back from system crash, freeze, or any unexpected shutdown, it only means that there is a dirty PID file pointing out the somewhere empty. Basically every daemons will create .pid to store process number, socket and such, so when need, it will be able to do it right and delete right after shutting down the daemons. However, when unexpected shutdown occurs, no time for cleaning up .pid file, that's where problems start. Everyone will think that the daemon is running (its .pid file exists) and asking for something, surely that .pid file can only lead to false route.
__Solution__:
you do clean up for system. In this case, Brew's PostgreSQL .pid file is at ```/usr/local/var/postgres/postmaster.pid```
$ sudo /usr/local/var/postgres/postmaster.pid
Then you can start your postgres again. It's the same with every other daemons; you just need to find its PID file.

18
_posts/2014-10-28-weird-day-spammers-request-remove-links-wth.markdown

@ -19,9 +19,15 @@ categories:
tags:
- weird
---
<p>Unmaintained WordPress tends to get tons of spam comments regardless of how you do it. However, today, it's a weird day.</p>
<p><a href="http://blog.10ninox.com/wp-content/uploads/2014/10/Screenshot-2014-10-28-18.15.27.png"><img src="http://blog.10ninox.com/wp-content/uploads/2014/10/Screenshot-2014-10-28-18.15.27.png" alt="Spammers request?" width="678" height="683" class="alignnone size-full wp-image-986" /></a></p>
<p>I got a request from one of spammers that the links they put on my mom's blog was hurting them. So I checked that out. I didn't even remember the password since it wasn't maintained and my mom apparently hasn't blogged for many years already.</p>
<p><a href="http://blog.10ninox.com/wp-content/uploads/2014/10/Screenshot-2014-10-28-18.26.05.png"><img src="http://blog.10ninox.com/wp-content/uploads/2014/10/Screenshot-2014-10-28-18.26.05.png" alt="spammy-comment" width="676" height="611" class="alignnone size-full wp-image-987" /></a></p>
<p>This is what I've found. The same IP addresses have spammed not only to this web site, but another as well. I suspected this firm did hire spammers for SEO or whatever, but now it's damage control phase, huh? I have no clue what they are trying to do here since comment section on my mom's blog isn't even reachable. I migrated to Disqus years ago.</p>
<p>The question was why the heck would I care? It sounds to me like he wants me to clean up his shit he dumped on my porch. If anyone has this sorta experience, please enlighten me.</p>
Unmaintained WordPress tends to get tons of spam comments regardless of how you do it. However, today, it's a weird day.
<a href="http://blog.10ninox.com/wp-content/uploads/2014/10/Screenshot-2014-10-28-18.15.27.png"><img src="http://blog.10ninox.com/wp-content/uploads/2014/10/Screenshot-2014-10-28-18.15.27.png" alt="Spammers request?" width="678" height="683" class="alignnone size-full wp-image-986" /></a>
I got a request from one of spammers that the links they put on my mom's blog was hurting them. So I checked that out. I didn't even remember the password since it wasn't maintained and my mom apparently hasn't blogged for many years already.
<a href="http://blog.10ninox.com/wp-content/uploads/2014/10/Screenshot-2014-10-28-18.26.05.png"><img src="http://blog.10ninox.com/wp-content/uploads/2014/10/Screenshot-2014-10-28-18.26.05.png" alt="spammy-comment" width="676" height="611" class="alignnone size-full wp-image-987" /></a>
This is what I've found. The same IP addresses have spammed not only to this web site, but another as well. I suspected this firm did hire spammers for SEO or whatever, but now it's damage control phase, huh? I have no clue what they are trying to do here since comment section on my mom's blog isn't even reachable. I migrated to Disqus years ago.
The question was why the heck would I care? It sounds to me like he wants me to clean up his shit he dumped on my porch. If anyone has this sorta experience, please enlighten me.

6
_sass/_base.scss

@ -97,8 +97,8 @@ a {
}
&:hover {
color: $text-color;
text-decoration: underline;
color: $orangeAddvocate;
text-decoration: none;
}
}
@ -130,7 +130,7 @@ code {
font-size: 15px;
border: 1px solid $grey-color-light;
border-radius: 3px;
background-color: #eef;
background-color: $lightPurple;
}
code {

41
_sass/_color.scss

@ -0,0 +1,41 @@
//Variations
$purpleAmethyst: #9966cc !default;
$purpleCerise: #de3163 !default;
$purpleFandango: #b53389 !default;
$purpleHeliotrope: #df73ff !default;
$purpleLavendar: #b57edc !default;
$purpleMagenta: #ff0090 !default;
$purpleOrchid: #da70d6 !default;
$purplePlum: #8e4585 !default;
$purpleRose: #865873 !default;
$purpleBlush: #864E66 !default;
$purpleOpera: #B977A9 !default;
$purpleVerona: #A77AAC !default;
$purpleSpring: #A389B8 !default;
$purpleBlossom: #8A7AA2 !default;
$purpleShowers: #7571A4 !default;
$purpleLilac: #797FA8 !default;
//Dulux 10
$orangeAddvocate: #ff6138 !default;
$orangeGinger: #995039 !default;
$orangeAutumn: #BE5F37 !default;
$orangeDawn: #E47C6C !default;
$orangeBongo: #E66E5B !default;
$orangeMango: #E98762 !default;
$orangeCoral: #EC926F !default;
$orangePaprika: #CF5141 !default;
$orangeAfrican: #DB6335 !default;
$orangeFlame: #D46946 !default;
$orangeAuburn: #DD8251 !default;
$orangeHarvest: #EE8C4D !default;
$orangeSands: #EB8830 !default;
$lightSands: #fff2e3 !default;
$lightPurple: #f1dcff !default;

1
_sass/_layout.scss

@ -93,6 +93,7 @@
*/
.site-footer {
border-top: 1px solid $grey-color-light;
background: $lightSands;
padding: $spacing-unit 0;
}

3
css/main.scss

@ -15,7 +15,7 @@ $spacing-unit: 30px;
$text-color: #111;
$background-color: #fdfdfd;
$brand-color: #2a7ae2;
$brand-color: #E47C6C;
$grey-color: #828282;
$grey-color-light: lighten($grey-color, 40%);
@ -46,6 +46,7 @@ $on-laptop: 800px;
// Import partials from `sass_dir` (defaults to `_sass`)
@import
"color",
"base",
"layout",
"syntax-highlighting"

20
index.html

@ -6,18 +6,16 @@ layout: default
<h1 class="page-heading">Posts</h1>
<ul class="post-list">
{% for post in site.posts %}
<li>
<span class="post-meta">{{ post.date | date: "%b %-d, %Y" }}</span>
{% include paginator.html %}
<h2>
<a class="post-link" href="{{ post.url | prepend: site.baseurl }}">{{ post.title }}</a>
</h2>
</li>
{% endfor %}
</ul>
<ul class="post-list">
{% for post in paginator.posts %}
<li>
<span class="post-meta">{{ post.date | date: "%b %-d, %Y" }} • <small>{{ post.categories | array_to_sentence_string }}</small></span>
<h2><a class="post-link" href="{{ post.url | prepend: site.baseurl }}">{{ post.title }}</a></h2>
</li>
{% endfor %}
<p class="rss-subscribe">subscribe <a href="{{ "/feed.xml" | prepend: site.baseurl }}">via RSS</a></p>
{% include paginator.html %}
</div>

Loading…
Cancel
Save