It was the Bitcointalk forum that inspired us to create Bitcointalksearch.org - Bitcointalk is an excellent site that should be the default page for anybody dealing in cryptocurrency, since it is a virtual gold-mine of data. However, our experience and user feedback led us create our site; Bitcointalk's search is slow, and difficult to get the results you need, because you need to log in first to find anything useful - furthermore, there are rate limiters for their search functionality.
The aim of our project is to create a faster website that yields more results and faster without having to create an account and eliminate the need to log in - your personal data, therefore, will never be in jeopardy since we are not asking for any of your data and you don't need to provide them to use our site with all of its capabilities.
We created this website with the sole purpose of users being able to search quickly and efficiently in the field of cryptocurrency so they will have access to the latest and most accurate information and thereby assisting the crypto-community at large.
#!/usr/bin/env python
# encoding: utf-8
"""
ATIConfigParser.py
Created by LehmanSister (a pseudonymn) on 2011-06-12.
Copyright (c) 2011 LehmanSister. All rights reserved.
"""
import sys
import os
import shlex, subprocess
class ATIConfigParser:
def __init__(self):
self.base_env = os.environ
def getTemp(self, display_val):
"""Get Temperature For A Display ID"""
#"Temperature for thermal controller 0 is 58.000000\n"
cl = "aticonfig --pplib-cmd \"get temperature 0\""
args = shlex.split(cl)
env_cpy = self.base_env
env_cpy["DISPLAY"] = display_val
raw = subprocess.check_output(args, env=env_cpy)
try:
return raw.split(" ")[6].strip()
except:
return False
def getFanSpeed(self, display_val):
"""Get Fan Speed For A Display ID"""
# output looks like
"""
Fan speed query:
Query Index: 0, Speed in percent
Result: Fan Speed: 80%
"""
cl = "aticonfig --pplib-cmd \"get fanspeed 0\""
args = shlex.split(cl)
env_cpy = self.base_env
env_cpy["DISPLAY"] = display_val
raw = subprocess.check_output(args, env=env_cpy)
#print raw
try:
return raw.split("\n")[2].split(" ")[3]
except:
return False
def getActivity(self, display_val):
"""Get General Activity"""
# output looks like
"""
Current Activity is Core Clock: 975MHZ
Memory Clock: 340MHZ
VDDC: 1163
Activity: 99 percent
Performance Level: 2
Bus Speed: 5000
Bus Lanes: 16
Maximum Bus Lanes: 16
None
"""
cl = "aticonfig --pplib-cmd \"get activity\""
args = shlex.split(cl)
env_cpy = self.base_env
env_cpy["DISPLAY"] = display_val
raw = subprocess.check_output(args, env=env_cpy)
line = raw.split("\n")
#print raw
try:
rtn = {}
rtn['gpu_clock'] = line[0].split(":")[1].strip()
rtn['mem_clock'] = line[1].split(":")[1].strip()
rtn['vddc'] = line[2].split(":")[1].strip()
rtn['perf_level'] = line[3].split(":")[1].strip()
rtn['bus_speed'] = line[4].split(":")[1].strip()
rtn['bus_lanes'] = line[5].split(":")[1].strip()
rtn['max_bus_lanes'] = line[6].split(":")[1].strip()
return rtn
except:
return False
def getClocks(self, adapter_id="all"):
"""Get Clocks"""
# output looks like
"""
Adapter 0 - ATI Radeon HD 5800 Series
Core (MHz) Memory (MHz)
Current Clocks : 975 340
Current Peak : 975 340
Configurable Peak Range : [600-875] [900-1200]
GPU load : 99%
Adapter 1 - ATI Radeon HD 5800 Series
Core (MHz) Memory (MHz)
Current Clocks : 975 340
Current Peak : 975 340
Configurable Peak Range : [600-875] [900-1200]
GPU load : 99%
"""
cl = "aticonfig --odgc --adapter="+str(adapter_id)
args = shlex.split(cl)
raw = subprocess.check_output(args)
line = raw.split("\n")
# fuck it, whoever feels like finishing this off...
return raw
"""
try:
rtn = {}
return rtn
except:
return False
"""
if __name__ == '__main__':
x = ATIConfigParser()
print x.getTemp(":0.0")
print x.getFanSpeed(":0.0")
print x.getActivity(":0.0")
print x.getClocks()
#!/usr/bin/python
# Python Process Musings w/ aticonfig
# (c) 2011 By LehmanSister (a pseudonymn) under the BPL
import os
import shlex, subprocess
# Base Environment
environ = os.environ
# Sample Command
cl = "aticonfig --pplib-cmd \"get temperature 0\""
args = shlex.split(cl)
# Example Of How To Play Around
environ['DISPLAY']=":0.0"
t1_raw = subprocess.check_output(args, env=environ)
environ['DISPLAY']=":0.1"
t2_raw = subprocess.check_output(args, env=environ)
print t1_raw
print t2_raw
#/bin/bash
# Mine Monitor v0.1
# (c) 2011 By LehmanSister (a pseudonymn) under the BPL
#
# Notes: needs some work to move everything into curses, and strop extra info
#
# TODO:
# - move this to pycurses
# - keep logs
# - publish stats somewhere via simple protocol dujouri
# - possible an CnC interface for multiple miners / pool control
# - PROFIT
SLEEP_TIME_SECONDS=30
ATICONFIG_CMD=aticonfig
SENSOR_CMD=sensors
if [ -z "$@" ]
then
echo "mine_monitor.sh - Quick (yet ugly) GPU hardware info"
echo "Usage: ./monitor_miner display_id_0 [display_id_1] ..."
echo "Example: ./monitor_miner 0 1"
echo ""
echo "Requires lm-sensors (apt-get install lm-sensors, yum install lm-sensors"
echo ""
echo "(c) 2011 By LehmanSister (a pseudonymn) under the BPL"
exit
else
echo "Doing Stats For $@"
while true;
do
uptime
hostname
uname -a
date
echo
echo "*** Temperature ***"
$ATICONFIG_CMD --odgt --adapter=all
echo "*** Clocks ***"
$ATICONFIG_CMD --odgc --adapter=all
for did in $@
do
echo "*** GPU #$did Stats ***"
export DISPLAY=:0.$did; $ATICONFIG_CMD --pplib-cmd "get fanspeed 0"
export DISPLAY=:0.$did; $ATICONFIG_CMD --pplib-cmd "get temperature 0"
export DISPLAY=:0.$did; $ATICONFIG_CMD --pplib-cmd "get activity"
done
echo "*** CPU and Misc Sensors ***"
$SENSOR_CMD
echo
date
sleep 30;
clear
done;
fi