aboutsummaryrefslogtreecommitdiff
path: root/misc/notes.txt
blob: f6a2bb3357257c35e3d85afe556e488685a54826 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
Clone code from git repository:
git clone http://github.com/zsloan/genenetwork.git gene 

Pull from branch in git repository:
git pull origin flask(or whatever the branch is)

Add all files in current directory branch to be staged to be committed
git add -A

Git push to my github repository
git push https://github.com/zsloan/genenetwork.git master

Get the default path being used when a command is typed:
which _______

Change default path python looks at when importing
export PYTHONPATH="/home/zas1024/gene/wqflask"

Get the paths checked when a user types a command:
echo $PATH

Get all environment variables:
set


**** apt-get is an Ubuntu system-wide package manager, while pip is a Python-only system
for python packages ****

Upgrade system packages for security updates, etc:
apt-get update
apt-get upgrade

**"apt-cache search" searches for text in the description for various packages, while
"apt-file search" searches for files within the packages**

Show information about given result item returned by apt-cache search:
apt-cache show _______

Search for package with a specified file that can be installed with apt-get
apt-file search _______

============================================

Check which system packages are installed:
dpkg -l | less

============================================

NEVER USE SUDO WITH PIP

To fix error "mysql_config not found":
sudo apt-get install libmysqlclient-dev

Create requirements.txt file:
pip freeze > requirements.txt (or whatever filename)

Install from requirements.txt:
pip install -r gene/wqflask/requirements.txt -t ve27

============================================

To get server running:

!If having seemingly inexplicable problems with imports, make sure I've started the environment!

Note: Virtual environment is not activated when running as root

Start up virtual environment:
source ~/ve27/bin/activate

Deactivate virtual environment:
deactivate (just type deactivate)

To set WQFLASK_SETTINGS environment variable:
export WQFLASK_SETTINGS=~/zach_settings.py (or wherever file is located)

zach_settings.py is the local config file with the DB_URI
default_settings.py is the config file with the configuration information that would apply
to any running instance of GeneNetwork

To change screen environment variable (if man not working or to get color, for example):
export TERM=screen

To search for commands in history if necessary:
history | grep "(whatever is being searched for)"

Reload web server:
/usr/sbin/nginx -s reload

Run server:
python runserver.py

Run sendmail.py
python send_mail.py

===========================================

UFW - default firewall confirguation tool for Ubuntu; eases iptables firewall configuration

Enable UFW:
sudo ufw enable
Check status of UFW:
sudo ufw status verbose

===========================================

Update user password:
use mysql;
UPDATE user SET password=PASSWORD('whatever') WHERE user='webqtl';
FLUSH PRIVILEGES;

===========================================

Redis things

Restart redis server:
sudo /etc/init.d/redis_6379 stop
sudo /etc/init.d/redis_6379 start

===========================================

Run pylint:
pylint file_name

For options:
pylint --help 

===========================================

Start screen session:

If "no option -R" or running for first time:
byobu-select-backend
2. screen

byobu -RD (to start)
control-a then :multiuser on
control-a then :acladd sam

More info on sharing byobu screen with other users:
http://wiki.networksecuritytoolkit.org/nstwiki/index.php/HowTo_Share_A_Terminal_Session_Using_Screen

control-a c to create channel

type: screen -list for sessions
screen -r zas1024/25679.byobu

or if only one:

screen -r zas1024/

===========================================

Start up log:
Go to /tmp and tail -f flask_gn_log

===========================================

Coffeescript Stuff:

coffee -c (filename)
coffee -c -w . (to watch for changes and recompile in current directory; the "." is for current directory)
coffee --help (for information about setting options)

===========================================

Unset ASKPASS when trying to git push

unset SSH_ASKPASS

===========================================

htop: Gives information on processes, cpu/memory load, etc
dstat: Also gives various system information, resource usage, etc
df: Reports file system disk space usage

===========================================

ll h*: Finds items in the directory starting with h

===========================================

du -hms * | sort -n : Gives size used by different directories
-h: human readable
-m: in megabytes (default)
-s: summarize

===========================================

rm -rfv

===========================================

cp -a (archive; copies recursively and doesn't follow symbol links)
   -i (interactive, prompts before overwrite)
   -v (verbose)
   -b (backup)
   
mv (same as above, but with no -a)

===========================================

Add user:
sudo adduser
Edit /etc/sudoers to give user root privileges


===========================================

tidyp - Improves/beautifies html code
tidyp -m -i -w 100 index_page.html

===========================================

ps ax - View processes
ps ux (the "u" is for user)

kill (process #)

===========================================

Installing QTL Reaper

wget http://downloads.sourceforge.net/project/qtlreaper/qtlreaper/1.1.1/qtlreaper-1.1.1.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fqtlreaper%2Ffiles%2Flatest%2Fdownload&ts=1358975786&use_mirror=iweb
tar xvf qtlreaper-1.1.1.tar.gz (to unzip)
python setup.py build
python setup.py install

===========================================

Using Yolk

Install Yolk:
pip install yolk

Check packages installed in this virtual environment:
yolk -l

Checks packages that have updates available:
yolk -U

===========================================

Python stuff:

Classes should always inherit "object"
To iterate through dictionary items: for X, Y in MyDictionary.items():

===========================================

Change import path from command line
export PYTHONPATH=~/gene/wqflask (or whatever)

===========================================

Create symbolic link:
ln -s dir_to_link_to linking_dir

===========================================

Reboot server
sudo reboot

===========================================

Using grep:

grep -ir (search string) (directory)

-i ignores case
-r searches recursively through subdirectories of directory you specify

===========================================

Change owner/group:

chown zas1024 somefile (change owner of somefile to zas1024)
chown zas1024: somefile (change owner and group of somefile to zas1024)
sudo chown root: somefile (change owner/group of somefile to root)

Change permissions:

chmod g-wr (remove write/read privileges for group)
chmod g+w (add write privileges for group)
chmod u+rwx (add read, write, and execute privileges for user)
etc.

===========================================

MySQL Things -

Create fulltext (MATCH AGAINST syntax) index:
CREATE FULLTEXT INDEX __________ ON Table (Column);

If <4 character searches not working:
Add ft_min_word_len = 2 (to make te minimum characters 2) to config file
Rebuild relevant tables with fulltext indexes with "REPAIR TABLE _______ QUICK"

===========================================

To delete all .pyc files (for example if there's some issue you're having trouble resolving):
find . -name '*.pyc' -delete
http://stackoverflow.com/questions/785519/how-do-i-remove-all-pyc-files-from-a-project