Technology
Vanity Bitcoin Keys
1So it’s been a while since I’ve talked about bitcoin and I’ve recently gotten more interested now that the prices have grown significantly. So I started explaining it to some friends at school and have gotten them interested as well. So of course I wanted a nice and custom key to show off, and it’s really quite easy with tools like vanitygen by samr7 over on the bitcoin forums which is the tool that we will be using for this post.
Because it’s actually doing alot of math to figure out (or more correctly guess) at the key, the longer you want your custom key to be, the longer you will have to crunch these numbers so don’t get too crazy with it.
The tool has several options but most of them won’t be used, in fact I only use one of the possible flags below, but there are more, you can view them by running vanitygen.exe with the “-h” flag, or just save this as something like help.bat in the same folder as vanitygen.exe and double-click the .bat file to run the help command for you.
|
1 2 3 |
@echo off vanitygen.exe -h pause |
Now that you have read the options the batch file below might make more sense, we are going to ask you for the pattern you want your custom key to have, and decided if you want it case-sensitive which takes MUCH longer, and might have strings that are not allowed, but it’ll error out if it does so you can try something different.
So save this file as something like vanity.bat in the same folder as vanitygen and run it. (Change the highlighted lines 19 and 23 to reflect the executable you are going to use for your system. (ie: if on a 64 bit system you would use vanitygen64.exe, on a gpu you would use oclvanitygen.exe)
|
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 |
@echo off echo You can always press ctrl+c to stop this script from running. CALL :GETINPUT GOTO :EOF :GETINPUT set /p Name=Enter your desiered pattern (The leading 1 has been added for you): 1 set /p ConfirmName=Your pattern will be 1%name% Is this correct [y/n]?: if "%ConfirmName%"=="" (GOTO GETINPUT) if "%ConfirmName%"=="y" (GOTO STRICTNESS) else (GOTO EXIT) :STRICTNESS set /p Eieye=Do you require your pattern to be CaSe SenSitvE [y/n]? if "%Eieye%"=="y" (GOTO CASEYES) if "%Eieye%"=="n" (GOTO CASENO) else (GOTO EXIT) :CASEYES vanitygen.exe 1%name% (GOTO EOF) :CASENO vanitygen.exe -i 1%name% (GOTO EOF) :EOF pause :EXIT exit |
Here is what the output of the script does (note, I’ve highlighted the user input for clarity, there is no color in the actual script results, and No this key should NOT be used!):
Then create a shortcut on your desktop for vanity.bat and change the icon to something that you prefer, I’ve added the image I use below for fun, and then just run this anytime you (or a friend) want a custom wallet key!
As for wallet’s, I use the Armory wallet but for most users I would recommend multibit as it’s much faster, and much smaller, but you do give up some freedom and security relying on others where armory can offer a true TNO security standpoint, just my 2 bitcents on that topic, now get mining!
Stream My Pi
2Alright, so most of my friends already know, I’ve recieved one of my Raspberry Pi computers!
w00t!
So being my old love is streaming radio, I figured why not get this little guy pushing out some tunes for me!
MPD To the rescue!
Now I did a post for Ubuntu 10.04 a while ago where I had custom compiled a .deb file that included mp3 support, however the new version of MPD for the pi has it already built in! Double sweet!
So here’s how to get it started.
First install a few apps. I personally prefer ncmpcpp as my local client to control my MPD stream from the cli. And of course you’ll need to install MPD.
|
1 |
sudo apt-get update ; sudo apt-get install mpd ncmpcpp |
Type in “Y” when it asks if you would like to install the dependencies as well, let it run and install your requested apps.
Shucks, you’re already half way done!
Now you just need to configure your server (mpd) and client (ncmpcpp) to cut down on overhead I’ll just be using the built in httpd stream as well as the alsa mixer, however the config files are much more built out with better examples then they had on my last post, so configuring them should be quite simple these days.
In order to get MPD working as your local user “pi” in this case, we’ll first need to create some directories and files. Enter in the following commands one at a time from the pi user’s home directory.
|
1 2 3 4 5 |
mkdir -p .mpd/db cd .mpd touch state pid cd db touch cache sticker.sql |
That will create the “state” and “pid” file in your .mpd folder and the “cache” and “sticker.sql” files in your .mpd/db folder.
Now let’s backup the original mpd.conf file and then edit the original file.
|
1 2 |
sudo cp /etc/mpd.conf /etc/mpd.conf.org sudo nano /etc/mpd.conf |
You can copy it straight up if you like, as your username is most likely “pi” as well. I’ve set my default music folder to “/home/pi/Music” and Playlists to “/home/pi/Playlists” if you don’t have these directories either, go ahead and make them with the mkdir command, I’ll wait.
Alright, here’s my /etc/mpd.conf file (click it to expand, it’s kinda long):
|
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 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 |
# An example configuration file for MPD # See the mpd.conf man page for a more detailed description of each parameter. # Files and directories ####################################################### # # This setting controls the top directory which MPD will search to discover the # available audio files and add them to the daemon's online database. This # setting defaults to the XDG directory, otherwise the music directory will be # be disabled and audio files will only be accepted over ipc socket (using # file:// protocol) or streaming files over an accepted protocol. # music_directory "/home/pi/Music" # # This setting sets the MPD internal playlist directory. The purpose of this # directory is storage for playlists created by MPD. The server will use # playlist files not created by the server but only if they are in the MPD # format. This setting defaults to playlist saving being disabled. # playlist_directory "/home/pi/Playlists" # # This setting sets the location of the MPD database. This file is used to # load the database at server start up and store the database while the # server is not up. This setting defaults to disabled which will allow # MPD to accept files over ipc socket (using file:// protocol) or streaming # files over an accepted protocol. # db_file "/home/pi/.mpd/db/cache" # # These settings are the locations for the daemon log files for the daemon. # These logs are great for troubleshooting, depending on your log_level # settings. # # The special value "syslog" makes MPD use the local syslog daemon. This # setting defaults to logging to syslog, otherwise logging is disabled. # log_file "/var/log/mpd/mpd.log" # # This setting sets the location of the file which stores the process ID # for use of mpd --kill and some init scripts. This setting is disabled by # default and the pid file will not be stored. # pid_file "/home/pi/.mpd/pid" # # This setting sets the location of the file which contains information about # most variables to get MPD back into the same general shape it was in before # it was brought down. This setting is disabled by default and the server # state will be reset on server start up. # state_file "/home/pi/.mpd/state" # # The location of the sticker database. This is a database which # manages dynamic information attached to songs. # sticker_file "/home/pi/.mpd/db/sticker.sql" # ############################################################################### # General music daemon options ################################################ # # This setting specifies the user that MPD will run as. MPD should never run as # root and you may use this setting to make MPD change its user ID after # initialization. This setting is disabled by default and MPD is run as the # current user. # user "pi" # # This setting specifies the group that MPD will run as. If not specified # primary group of user specified with "user" setting will be used (if set). # This is useful if MPD needs to be a member of group such as "audio" to # have permission to use sound card. # #group "nogroup" # # This setting sets the address for the daemon to listen on. Careful attention # should be paid if this is assigned to anything other then the default, any. # This setting can deny access to control of the daemon. Choose any if you want # to have mpd listen on every address # # For network #bind_to_address "localhost" bind_to_address "any" # # And for Unix Socket #bind_to_address "/var/run/mpd/socket" # # This setting is the TCP port that is desired for the daemon to get assigned # to. # port "6666" # # This setting controls the type of information which is logged. Available # setting arguments are "default", "secure" or "verbose". The "verbose" setting # argument is recommended for troubleshooting, though can quickly stretch # available resources on limited hardware storage. # #log_level "default" # # If you have a problem with your MP3s ending abruptly it is recommended that # you set this argument to "no" to attempt to fix the problem. If this solves # the problem, it is highly recommended to fix the MP3 files with vbrfix # (available as vbrfix in the debian archive), at which # point gapless MP3 playback can be enabled. # gapless_mp3_playback "yes" # # This setting enables MPD to create playlists in a format usable by other # music players. # #save_absolute_paths_in_playlists "no" # # This setting defines a list of tag types that will be extracted during the # audio file discovery process. Optionally, 'comment' can be added to this # list. # #metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc" # # This setting enables automatic update of MPD's database when files in # music_directory are changed. # auto_update "yes" # # Limit the depth of the directories being watched, 0 means only watch # the music directory itself. There is no limit by default. # auto_update_depth "3" # ############################################################################### # Symbolic link behavior ###################################################### # # If this setting is set to "yes", MPD will discover audio files by following # symbolic links outside of the configured music_directory. # #follow_outside_symlinks "yes" # # If this setting is set to "yes", MPD will discover audio files by following # symbolic links inside of the configured music_directory. # #follow_inside_symlinks "yes" # ############################################################################### # Zeroconf / Avahi Service Discovery ########################################## # # If this setting is set to "yes", service information will be published with # Zeroconf / Avahi. # zeroconf_enabled "yes" # # The argument to this setting will be the Zeroconf / Avahi unique name for # this MPD server on the network. # zeroconf_name "Music Player" # ############################################################################### # Permissions ################################################################# # # If this setting is set, MPD will require password authorization. The password # can setting can be specified multiple times for different password profiles. # #password "password@read,add,control,admin" # # This setting specifies the permissions a user has who has not yet logged in. # default_permissions "read,add,control,admin" # ############################################################################### # Input ####################################################################### # input { plugin "curl" # proxy "proxy.isp.com:8080" # proxy_user "user" # proxy_password "password" } # ############################################################################### # Audio Output ################################################################ # # MPD supports various audio output types, as well as playing through multiple # audio outputs at the same time, through multiple audio_output settings # blocks. Setting this block is optional, though the server will only attempt # autodetection for one sound card. # # See <http://mpd.wikia.com/wiki/Configuration#Audio_Outputs> for examples of # other audio outputs. # # An example of an ALSA output: # audio_output { type "alsa" name "My ALSA Device" device "hw:0,0" # optional format "44100:16:2" # optional mixer_device "default" # optional mixer_control "PCM" # optional mixer_index "0" # optional } # # An example of an OSS output: # #audio_output { # type "oss" # name "My OSS Device" # device "/dev/dsp" # optional # format "44100:16:2" # optional # mixer_device "/dev/mixer" # optional # mixer_control "PCM" # optional #} # # An example of a shout output (for streaming to Icecast): # #audio_output { # type "shout" # encoding "ogg" # optional # name "My Shout Stream" # host "localhost" # port "8000" # mount "/mpd.ogg" # password "hackme" # quality "5.0" # bitrate "128" # format "44100:16:1" # protocol "icecast2" # optional # user "source" # optional # description "My Stream Description" # optional # genre "jazz" # optional # public "no" # optional # timeout "2" # optional #} # # An example of a recorder output: # #audio_output { # type "recorder" # name "My recorder" # encoder "vorbis" # optional, vorbis or lame # path "/var/lib/mpd/recorder/mpd.ogg" ## quality "5.0" # do not define if bitrate is defined # bitrate "128" # do not define if quality is defined # format "44100:16:1" #} # # An example of a httpd output (built-in HTTP streaming server): # audio_output { type "httpd" name "Stream of Pi" encoder "lame" # optional, vorbis or lame port "8000" # quality "5.0" # do not define if bitrate is defined bitrate "128" # do not define if quality is defined format "44100:16:1" } # # An example of a pulseaudio output (streaming to a remote pulseaudio server) # #audio_output { # type "pulse" # name "My Pulse Output" # server "remote_server" # optional # sink "remote_server_sink" # optional #} # ## Example "pipe" output: # #audio_output { # type "pipe" # name "my pipe" # command "aplay -f cd 2>/dev/null" ## Or if you're want to use AudioCompress # command "AudioCompress -m | aplay -f cd 2>/dev/null" ## Or to send raw PCM stream through PCM: # command "nc example.org 8765" # format "44100:16:2" #} # ## An example of a null output (for no audio output): # #audio_output { # type "null" # name "My Null Output" #} # # This setting will change all decoded audio to be converted to the specified # format before being passed to the audio outputs. By default, this setting is # disabled. # #audio_output_format "44100:16:2" # # If MPD has been compiled with libsamplerate support, this setting specifies # the sample rate converter to use. Possible values can be found in the # mpd.conf man page or the libsamplerate documentation. By default, this is # setting is disabled. # #samplerate_converter "Fastest Sinc Interpolator" # ############################################################################### # Volume control mixer ######################################################## # # These are the global volume control settings. By default, this setting will # be detected to the available audio output device, with preference going to # hardware mixing. Hardware and software mixers for individual audio_output # sections cannot yet be mixed. # # An example for controlling an ALSA, OSS or Pulseaudio mixer; If this # setting is used other sound applications will be affected by the volume # being controlled by MPD. # mixer_type "hardware" # # An example for controlling all mixers through software. This will control # all controls, even if the mixer is not supported by the device and will not # affect any other sound producing applications. # #mixer_type "software" # # This example will not allow MPD to touch the mixer at all and will disable # all volume controls. # #mixer_type "disabled" # ############################################################################### # Normalization automatic volume adjustments ################################## # # This setting specifies the type of ReplayGain to use. This setting can have # the argument "album" or "track". See <http://www.replaygain.org> for more # details. This setting is disabled by default. # #replaygain "album" # # This setting sets the pre-amp used for files that have ReplayGain tags. By # default this setting is disabled. # #replaygain_preamp "0" # # This setting enables on-the-fly normalization volume adjustment. This will # result in the volume of all playing audio to be adjusted so the output has # equal "loudness". This setting is disabled by default. # #volume_normalization "no" # ############################################################################### # MPD Internal Buffering ###################################################### # # This setting adjusts the size of internal decoded audio buffering. Changing # this may have undesired effects. Don't change this if you don't know what you # are doing. # #audio_buffer_size "2048" # # This setting controls the percentage of the buffer which is filled before # beginning to play. Increasing this reduces the chance of audio file skipping, # at the cost of increased time prior to audio playback. # buffer_before_play "8%" # ############################################################################### # Resource Limitations ######################################################## # # These settings are various limitations to prevent MPD from using too many # resources. Generally, these settings should be minimized to prevent security # risks, depending on the operating resources. # connection_timeout "60" max_connections "10" max_playlist_length "1634" max_command_list_size "2048" max_output_buffer_size "8192" # ############################################################################### # Character Encoding ########################################################## # # If file or directory names do not display correctly for your locale then you # may need to modify this setting. After modification of this setting mpd # --create-db must be run to change the database. # filesystem_charset "UTF-8" # # This setting controls the encoding that ID3v1 tags should be converted from. # id3v1_encoding "UTF-8" # ############################################################################### # SIDPlay decoder ############################################################# # # songlength_database: # Location of your songlengths file, as distributed with the HVSC. # The sidplay plugin checks this for matching MD5 fingerprints. # See http://www.c64.org/HVSC/DOCUMENTS/Songlengths.faq # # default_songlength: # This is the default playing time in seconds for songs not in the # songlength database, or in case you're not using a database. # A value of 0 means play indefinitely. # # filter: # Turns the SID filter emulation on or off. # #decoder { # plugin "sidplay" # songlength_database "/media/C64Music/DOCUMENTS/Songlengths.txt" # default_songlength "120" # filter "true" #} # ############################################################################### |
I went and left all of the default comments in there, but of course if you want to make it more readable feel free to remove what you don’t use.
So, yea. MPD’s ready. Just restart it.
|
1 |
sudo /etc/init.d/mpd restart |
Now let’s get our client up and running so we can start playing some music!
This one’s a little more tricky as the default config file is hiding and compressed.
First let’s create the local config directory like we did for MPD.
|
1 |
mkdir ~/.ncmpcpp |
and let’s copy the example config over to our new directory.
|
1 |
cp /usr/share/doc/ncmpcpp/config /home/pi/.ncmpcpp |
and then extract it.
|
1 |
gzip -d ~/.ncmpcpp/config.gz |
Now go ahead and edit that file.
|
1 |
nano ~/.ncmpcpp/config |
Again, these are the settings I used, but it’s well documented so feel free to make changes as well. Here is my config for ncmpcpp (again, click it to expand it, it’s even longer…)
|
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 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 |
#################################################### ## this is example configuration file, copy it to ## ## ~/.ncmpcpp/config and set up your preferences ## #################################################### # ##### directories ###### ## ## Directory for storing ncmpcpp related files. ## Changing it is useful if you want to store ## everything somewhere else and provide command ## line setting for alternative location to config ## file which defines that while launching ncmpcpp. ## # ncmpcpp_directory = "~/.ncmpcpp" # ## ## Directory for storing downloaded lyrics. It ## defaults to ~/.lyrics since other MPD clients ## (eg. ncmpc) also use that location. ## # lyrics_directory = "~/.lyrics" # ##### connection settings ##### # ## set it in order to make tag editor and renaming files work properly # mpd_host = "localhost" # mpd_port = "6666" # mpd_music_dir = "/home/pi/Music" # mpd_connection_timeout = "5" # mpd_crossfade_time = "5" # #mpd_communication_mode = "notifications" (polling/notifications) # ##### music visualizer ##### ## ## Note: In order to make music visualizer work you'll ## need to use mpd fifo output, whose format parameter ## has to be set to 44100:16:1 for mono visualization ## or 44100:16:2 for stereo visualization. Example ## configuration (it has to be put into mpd.conf): ## ## audio_output { ## type "fifo" ## name "My FIFO" ## path "/tmp/mpd.fifo" ## format "44100:16:2" ## } ## # ## ## If you set format to 44100:16:2, make it 'yes'. ## # #visualizer_in_stereo = "no" # #visualizer_fifo_path = "" # ## ## Note: Below parameter is needed for ncmpcpp ## to determine which output provides data for ## visualizer and thus allow syncing between ## visualization and sound as currently there ## are some problems with it. ## # #visualizer_output_name = "" # ## ## Note: Below parameter defines how often ncmpcpp ## has to "synchronize" visualizer and audio outputs. ## 30 seconds is optimal value, but if you experience ## synchronization problems, set it to lower value. ## Keep in mind that sane values start with >=10. ## # #visualizer_sync_interval = "30" # ## ## Note: To enable spectrum frequency visualization ## you need to compile ncmpcpp with fftw3 support. ## # #visualizer_type = "wave" (spectrum/wave) # #visualizer_look = "◆│" # ##### system encoding ##### ## ## ncmpcpp should detect your charset encoding ## but if it failed to do so, you can specify ## charset encoding you are using here. ## ## Note: You can see whether your ncmpcpp build ## supports charset detection by checking output ## of `ncmpcpp --version`. ## ## Note: Since MPD uses utf8 by default, setting ## this option makes sense only if your encoding ## is different. ## # #system_encoding = "" # ##### delays ##### # ## delay after playlist highlighting will be disabled (0 = don't disable) # playlist_disable_highlight_delay = "5" # ## defines how long various messages are supposed to be visible # message_delay_time = "4" # ##### song format ##### ## ## for song format you can use: ## ## %l - length ## %f - filename ## %D - directory ## %a - artist ## %A - album artist ## %t - title ## %b - album ## %y - year ## %n - track number (01/12 -> 01) ## %N - full track info (01/12 -> 01/12) ## %g - genre ## %c - composer ## %p - performer ## %d - disc ## %C - comment ## $R - begin right alignment ## ## you can also put them in { } and then it will be displayed ## only if all requested values are available and/or define alternate ## value with { }|{ } eg. {%a - %t}|{%f} ## ## Note: If you want to set limit on maximal length of a tag, just ## put the appropriate number between % and character that defines ## tag type, e.g. to make album take max. 20 terminal cells, use '%20b'. ## ## Note: Format that is similar to "%a - %t" (i.e. without any additional ## braces) is equal to "{%a - %t}", so if one of the tags is missing, ## you'll get nothing. ## ## text can also have different color than the main window has, ## eg. if you want length to be green, write $3%l$9 ## ## available values: ## ## - 0 - default window color (discards all other colors) ## - 1 - black ## - 2 - red ## - 3 - green ## - 4 - yellow ## - 5 - blue ## - 6 - magenta ## - 7 - cyan ## - 8 - white ## - 9 - end of current color ## ## Note: colors can be nested. ## # #song_list_format = "{%a - }{%t}|{$8%f$9}$R{$3(%l)$9}" # #song_status_format = "{{%a{ \"%b\"{ (%y)}} - }{%t}}|{%f}" # #song_library_format = "{%n - }{%t}|{%f}" # #tag_editor_album_format = "{(%y) }%b" # ## ## Note: Below variables are for alternative version of user's interface. ## Their syntax supports all tags and colors listed above plus some extra ## markers used for text attributes. They are followed by character '$'. ## After that you can put: ## ## - b - bold text ## - u - underline text ## - r - reverse colors ## - a - use alternative character set ## ## If you don't want to use an attribute anymore, just put it again, but ## this time insert character '/' between '$' and attribute character, ## e.g. {$b%t$/b}|{$r%f$/r} will display bolded title tag or filename ## with reversed colors. ## # #alternative_header_first_line_format = "$b$1$aqqu$/a$9 {%t}|{%f} $1$atqq$/a$9$/b" # #alternative_header_second_line_format = "{{$4$b%a$/b$9}{ - $7%b$9}{ ($4%y$9)}}|{%D}" # ## ## Note: Below variables also supports ## text attributes listed above. ## # #now_playing_prefix = "$b" # #now_playing_suffix = "$/b" # #browser_playlist_prefix = "$2playlist$9 " # #selected_item_prefix = "$6" # #selected_item_suffix = "$9" # ## colors are not supported for below variable # #song_window_title_format = "{%a - }{%t}|{%f}" # ##### columns settings ##### ## ## syntax of song columns list format is "column column etc." ## ## - syntax for each column is: ## ## (width of column)[column's color]{displayed tag} ## ## Note: Width is by default in %, if you want a column to ## have fixed size, add 'f' after the value, e.g. (10)[white]{a} ## will be the column that take 10% of screen (so the real column's ## width will depend on actual screen size), whereas (10f)[white]{a} ## will take 10 terminal cells, no matter how wide the screen is. ## ## - color is optional (if you want the default one, type []) ## ## Note: You can give a column additional attributes by putting appropriate ## character after displayed tag character. Available attributes are: ## ## - r - column will be right aligned ## - E - if tag is empty, empty tag marker won't be displayed ## ## You can also: ## ## - give a column custom name by putting it after attributes, ## separated with character ':', e.g. {lr:Length} gives you ## right aligned column of lengths named "Length". ## ## - define sequence of tags, that have to be displayed in case ## predecessor is empty in a way similar to the one in classic ## song format, i.e. using '|' character, e.g. {a|c|p:Owner} ## creates column named "Owner" that tries to display artist ## tag and then composer and performer if previous ones are ## not available. ## # #song_columns_list_format = "(7f)[green]{l} (25)[cyan]{a} (40)[]{t|f} (30)[red]{b}" # ##### various settings ##### # ## ## Note: Custom command that will be executed each ## time song changes. Useful for notifications etc. ## ## Attention: It doesn't support song format anymore. ## Use `ncmpcpp --now-playing SONG_FORMAT` instead. ## #execute_on_song_change = "" # #playlist_show_remaining_time = "no" # #playlist_shorten_total_times = "no" # #playlist_separate_albums = "no" # #playlist_display_mode = "classic" (classic/columns) # #browser_display_mode = "classic" (classic/columns) # #search_engine_display_mode = "classic" (classic/columns) # #playlist_editor_display_mode = "classic" (classic/columns) # #discard_colors_if_item_is_selected = "yes" # #incremental_seeking = "yes" # #seek_time = "1" # #autocenter_mode = "no" # #centered_cursor = "no" # ## ## Note: You can specify third character which will ## be used to build 'empty' part of progressbar. ## #progressbar_look = "=>" # #default_place_to_search_in = "database" (database/playlist) # #user_interface = "classic" (classic/alternative) # #media_library_left_column = "a" (possible values: a,y,g,c,p, legend above) # #default_find_mode = "wrapped" (wrapped/normal) # #default_space_mode = "add" (add/select) # #default_tag_editor_left_col = "albums" (albums/dirs) # #default_tag_editor_pattern = "%n - %t" # #header_visibility = "yes" # #statusbar_visibility = "yes" # #titles_visibility = "yes" # #header_text_scrolling = "yes" # #fancy_scrolling = "yes" # #cyclic_scrolling = "no" # #lines_scrolled = "2" # #follow_now_playing_lyrics = "no" # #fetch_lyrics_for_current_song_in_background = "no" # #store_lyrics_in_song_dir = "no" # ## ## Note: If you set this variable, ncmpcpp will try to ## get info from last.fm in language you set and if it ## fails, it will fall back to english. Otherwise it will ## use english the first time. ## ## Note: Language has to be expressed as an ISO 639 alpha-2 code. ## #lastfm_preferred_language = "" # #ncmpc_like_songs_adding = "no" (enabled - add/remove, disabled - always add) # #show_hidden_files_in_local_browser = "no" # #display_screens_numbers_on_start = "yes" # ## ## How shall key_screen_switcher work? ## ## - "previous" - switch between current and last used screen ## - "sequence: 2 -> 9 -> 5" - switch between given sequence of screens. ## ## Screen numbers you can use after 'sequence' keyword are: ## ## - 1 - help ## - 2 - playlist ## - 3 - browser ## - 4 - search engine ## - 5 - media library ## - 6 - playlist editor ## - 7 - tag editor ## - 8 - outputs ## - 9 - visualizer ## - 10 - clock ## ## As you can see, above example will switch between ## playlist, visualizer and media library screens. ## #screen_switcher_mode = "sequence: 2 -> 3" # ## ## Default width of locked screen (in %). ## Acceptable values are from 20 to 80. ## # #locked_screen_width_part = "50" # #ask_for_locked_screen_width_part = "yes" # ## ## Note: You can define startup screen for ncmpcpp ## by choosing screen number from the list above. ## #startup_screen = "2" # #jump_to_now_playing_song_at_start = "yes" # #ask_before_clearing_main_playlist = "no" # #clock_display_seconds = "no" # #display_volume_level = "yes" # #display_bitrate = "no" # #display_remaining_time = "no" # #regular_expressions = "basic" (basic/extended) # ## ## Note: If below is enabled, ncmpcpp will ignore leading ## "The" word while sorting items in browser, tags in ## media library, etc. ## #ignore_leading_the = "no" # #block_search_constraints_change_if_items_found = "yes" # #mouse_support = "yes" # #mouse_list_scroll_whole_page = "yes" # #empty_tag_marker = "<empty>" # #tag_editor_extended_numeration = "no" # #media_library_display_date = "yes" # #media_library_display_empty_tag = "yes" # #media_library_disable_two_column_mode = "no" # #enable_window_title = "yes" # ## ## Note: You can choose default search mode for search ## engine. Available modes are: ## ## - 1 - use mpd built-in searching (no regexes, pattern matching) ## - 2 - use ncmpcpp searching (pattern matching with support for regexes, ## but if your mpd is on a remote machine, downloading big database ## to process it can take a while ## - 3 - match only exact values (this mode uses mpd function for searching ## in database and local one for searching in current playlist) ## # #search_engine_default_search_mode = "1" # ## ## Note: Below variables can allow you to physically ## remove files and directories from your hdd using ## ncmpcpp's browser screen. ## # #allow_physical_files_deletion = "no" # #allow_physical_directories_deletion = "no" # #external_editor = "" # #use_console_editor = "no" (set to yes, if your editor is console app) # ##### colors definitions ##### # #colors_enabled = "yes" # #empty_tag_color = "cyan" # #header_window_color = "default" # #volume_color = "default" # #state_line_color = "default" # #state_flags_color = "default" # #main_window_color = "yellow" # #color1 = "white" # #color2 = "green" # #main_window_highlight_color = "yellow" # #progressbar_color = "default" # #statusbar_color = "default" # #alternative_ui_separator_color = "black" # #active_column_color = "red" # #visualizer_color = "yellow" # #window_border_color = "green" # #active_window_border = "red" # |
So yea. That’s it! You should be up and running!
Start ncmpcpp in a tty with the logical command of “ncmpcpp” This will open the client app and allow you to start playing music! Being it’s a command line app, most of the work is done with keyboard commands. Press the number “1″ on your keyboard (NOT on the 10key if you have one to the right of your normal keyboard but the numbers above the qwerty row) and you will be shown a VERY long list of keyboard commands to control ncmpcpp, however the arrow and space and enter key’s will get you through most of it easily.
Plug it in to your amplifier, or better yet, grab your android phone and grab the free app called “MPDroid” it’s the best app I’ve found to interface with MPD. Now you can control your music from your phone, and get a stream of it sent TO your phone as well! No wires needed! (however it will be significantly buffered, so be patient when you first choose to start your stream)
Not too bad right!
Enjoy and if you have any questions, feel free to post a comment, here or in our forums, or even in my IRC hangout at italktomachines.com !
Coining the term “PirateDriving”
1So I’ve long been a fan of wardriving which is the act of driving around with a laptop sniffing packets of open (and closed) wifi access points (Great android app, check out wigle.net or search the android market for wigle wifi). However I’ve yet to hear of a term defining driving around with an open wifi access point (such as my piratebox) offering content instead of looking for other’s. So following the spirit of merging the two concepts that brought me to this head, I’ll just start calling it “PirateDriving”.
I’ll be running around Martinez/Concord/Pleasent Hill/Walnut Creek area’s in California the next few weeks with my piratebox hooked up to my power inverter and my piratebox running. When I’ll be parked for a while I’ll be the white truck with several antenna’s on the roof and one really long stainless steel whip that stand’s at around 12′ in the air. Feel free to approach me, I’m harmless I promise, and I just might have some decent content you might be looking for!
Loving the new server install.
0So as you may remember I have updated the server’s hosting this and many other site’s I own (and a few I don’t) and have installed ispconfig3 on debian, and it really is the perfect server setup!
I just updated wordpress automatically (never been able to do that before!) and it worked great! Mad props to wordpress.org, debian, howtofordge apache, lighttpd and ispconfig3 for providing absolutely great and free software and support! I’m a happy sys-admin
Asus wl-330gE Antenna mod.
4First off I’d like to give credit where credit is due.
I only found out about this awesome mini wireless router due to the PirateBox project that I’m currently in the middle of building. In the information on their site they link to a picassa photo collection on modding the antenna of this router. However the info and recommendations we’re left to be improved upon in my opinion so I figured I’d do it myself.
To start you need to get the router open. If your still kinda new to modding hardware often times the screws are hidden under the rubber feet. This happens to be the case on the asus wl-330gE. There are two screws under the feet closest to the “top” if it were hanging on a wall using the included slot.
After you remove the 2 screws the unit simply unfolds in half.
The hookup is the same as in the other post, ground wire is the shielding on the antenna cable, antenna is the small center wire.
Measure out enough wire that it will make both contact’s however the insulation is as close to the solder point’s as possible so that no shorting will happen due to the exposed shielding touching something it’s not supposed to. If you cut off too much insulation, adding some heat shrink tubing to the wire before you solder it on is a good alternative.
Then just take a razor knife and make a parallel cut up the side of the shielding (that braided wire showing in the pic above) so that you can twist it up into it’s own wire.
If your going to be making a slot you can do this later, if you want a nice finished hole drill a hole and put your wire through it FIRST! (I can’t tell you how many times I’ve soldered something and forgot to put it through a cover first…)
Once you have the two wires ready, put a dot of extra solder on each of the antenna points *use a rosin core wire!* so that you don’t have to keep alot of heat on the board, you’ll be soldering close to other connections, 2-3 seconds max! Then apply the soldering iron to the wire get it to where it’s soaked up some solder on each wire (center and shielding) then touch the iron to the points already on the board and let the wire squish into the beads. Cut off any extra wire.
Now that your antenna’s connected you just need to put it back together! If you have any zip ties laying around putting one inside your case attached to your antenna wire with a little slack is a good idea. It keeps the strain off of your soldering connections.
A little dremel work to get rid of the stock antenna holders (they get in the way of the new soldering points and wire)
Put your two halves of the case back together and viola! Your pimping new asus mini router with a not so mini range! Put dd-wrt firmware and boost the output a little (I’d keep it under 90 myself) and this thing really pumps it out!












