New Blog
I moved my blog, new one is here: http://nelsonware.com/blog.html

#extradirty
Peter Solarz
Sade Olutola

blake kathryn
Alisa U Zemlji Chuda
i don't do bad sauce passes

Andulka
No title available

Origami Around
🪼
we're not kids anymore.
No title available

Product Placement
art blog(derogatory)
PUT YOUR BEARD IN MY MOUTH
"I'm Dorothy Gale from Kansas"

Kaledo Art

❣ Chile in a Photography ❣
will byers stan first human second

Kiana Khansmith
seen from United States
seen from China

seen from United States

seen from United States
seen from Malaysia
seen from Brazil
seen from United States

seen from Canada
seen from United States

seen from United Kingdom
seen from Iraq
seen from Canada
seen from United States

seen from United States

seen from United Kingdom

seen from Malaysia
seen from United States

seen from United States

seen from Malaysia
seen from Malaysia
@mcnelsn-blog
New Blog
I moved my blog, new one is here: http://nelsonware.com/blog.html
Baofeng, and Adventures in Ham Radio
Fascination & Struggles
In 2008, I somehow bamboozled my way through a 2-week Amateur Radio class, and landed my technician license.
I cannot overstate how excited I was -- radios were like the coolest thing ever to teenage Michael. I was stoked to be discovering a whole new community of awesome nerds. Alas, if only it was what I was expecting. I quickly realized I was a member of a minority of young folks (under 18). I listened, I quietly gave my callsign a few times, and then lost interest for 7 years.
Which brings us here, to almost 2015. I'm puttering around on the internet one day, and all the sudden, there's talk of Baofeng handheld tranceivers. Haven't really done anything with my Ham radio license, but hey, I still love the idea of talking on the radio. After doing some research, I determine that I absolutely have to invest in a Baofeng radio. In fact, I'd be stupid not to. I choose the UV-B5, and I'm currently blown away by what my $30 got me.
The UV-B5 is small enough to easily bring anywhere, and doesn't look like a brick. But, best of all, there's open source software that allows you to write memory channels and settings via a CSV spreadsheet (CHIRP). This is absolutely huge! Another hurdle for new hams, totally gone.
I'm speculating that Baofeng handhelds will substantially change the community and the hobby in general. Being a pretty involved web developer, I work 9-5 on the internet, that's a pretty big chunk of my life. I also happen to work at a place right now that values cutting-edge web technology, moves fast, and is always about "best practice. My sense is that Baofeng handhelds embody this perspective well, and will ultimately become the gateway drug for new operators who will have hands that are used to cradling smart phones, who only might have $30 to spend, and who can't be bothered to deal with antennas and mobile installations. Baofeng is exactly what we need to excite the younger generation about such an old hobby.
Fedora + Ruby On Rails Development Environment
The Perfect Web Dev Environment Based on Totally Free Software
Fedora Linux Distribution
Why
Red Hat flavors, while many speculate on future strength in web hosting, still have a significant market share of web-related duties.
Yum.
No commercialization awkwardness (Unity search ads, anyone?). Live and breath free and open source.
Sane release frequency. Good development pace but doesn't shove new releases down your throat.
How
Start at the Fedora Project Site. Get the 64-bit, GNOME version which should be default. Don't futz with DVDs! Use the Fedora liveusb-creatorto produce an installation USB stick.
Run through the install process, it's pretty straightfoward. At the end, the first thing you should do is open a terminal and update your system:
`sudo yum update`
Then, get these core package groups:
sudo yum groupinstall "Development Libraries" \ "Development Tools" \ "Editors" \ "MySQL Database" \ "Web Development" \ "Office/Productivity" \ "PostgreSQL Database"
This will get all the basic necessities. I recommend a 'Source' folder in your home directory for keeping bundles of source code you may happen to download, or as a place to throw downloaded program installers.
mkdir ~/Source
Putting your cursor in the upper-left corner of the screen triggers Desktop Expose mode. Love this feature, hate this "hot corner." If you agree, easy to disable: Disable Gnome 3 Hot Corner. Simply activate by using the Windows key or clicking Activities.
Google Chrome
Why
As browsers go these days, Chrome's where it's at. Sure, you could use Firefox. But Chrome's still where it's at.
How
Get the only dependency at the time of this writing:
sudo yum install wget redhat-lsb
Go get the 64-bit RPM at the Chrome Download Site, and install:
sudo rpm -ivh (Name of downloaded file).rpm
You should be good to go. Launch, sign in, and customize.
Terminator
Why
As web developers, we need a great, flexible terminal emulator. The standard Linux terminal works fine but lacks the ability to split up your window into multiple sessions. With a lot of screen space, this is a really important feature. On the OSX side, we have iTerm. On the Linux side, Terminator.
How
Install:
sudo yum install terminator
Get ProggyClean, an attractive monospace font. Go to the download page and get the TrueType version of "proggy clean", the first option. Then, install:
cd ~/Downloads unzip ProggyClean.ttf.zip mkdir /usr/share/fonts/proggy-clean mv ProggyClean*.ttf /usr/share/fonts/proggy-clean/
Terminator's got a few bugs with its preferences dialog, so best to just work directly with the configuration file:
gedit ~/.config/terminator/config
Paste in this:
[global_config] handle_size = 4 title_hide_sizetext = True title_transmit_fg_color = "#000000" title_inactive_fg_color = "#909090" borderless = True enabled_plugins = InactivityWatch, CustomCommandsMenu, ActivityWatch, LaunchpadCodeURLHandler, APTURLHandler, LaunchpadBugURLHandler title_transmit_bg_color = "#00a3a5" tab_position = hidden title_inactive_bg_color = "#3e3e3e" [keybindings] go_left = <Ctrl><Shift>h go_down = <Ctrl><Shift>j reset_clear = <Ctrl>k go_right = <Ctrl><Shift>l go_up = <Ctrl><Shift>k [profiles] [[default]] use_system_font = False login_shell = True background_darkness = 0.86 background_type = transparent scrollbar_position = hidden cursor_color = "#00a3a5" foreground_color = "#ffffff" scroll_on_output = False icon_bell = False font = ProggyCleanTT CE 12 scrollback_infinite = True
This will give you the kind of terminal that's optimized for space, and will allow you to operate splits and tabs almost entirely with the keyboard.
Workflow
I find one of the most useful layouts is a stack of 3 horizontal splits on half of the screen. Start by pressing Windows key + left / right to split the terminal on one side of your screen. Then, use control+shift+O to split the terminal horizontally. Adjust the vertical sizes with your mouse.
Control + shift + (HJKL): Move between splits.
Control + K: Clear the current terminal output. Useful for tailing logs.
Control + shift + X: Toggle full-window mode. Useful for temporarily seeing more of your split.
Control + shift + T: Open a new tab. I find that I typically won't open more than 2-3 tabs, so seeing the graphical representation of them at the top isn't helpful. See next.
Control + PageUp/PageDown: Switch previous/next tab.
Control + D: End current session/close current tab/split.
Git
Why
Git is universally accepted as the most up-to-date version control system. Its secret sauce is that it works independantly of any server, eliminating any delays from having to connect. Git is also usable completely via command-line. Although its syntax can get pretty insane, the essentials aren't hard to master. Also, Github. 'Nuff said.
How
Install:
sudo yum install git
Incredibly helpful command shortcuts. These shorten the most common things you'd be typing:
gedit ~/.bashrc
alias gs='git status' alias gl='git log' alias gst='git stage -A .' alias gd='git diff' alias gds='git diff --staged' alias gdh='git diff HEAD' alias gdu='git diff --diff-filter=U' alias gg='git grep --untracked -i -n' alias gb='git branch -b' alias gc='git commit -m' alias gch='git checkout' alias gpl='git pull' alias gph='git push' alias gbl="git for-each-ref --count=6 --sort=-committerdate refs/heads/ --format='%(refname:short)'" alias gdm="git diff --staged master" alias grh="git reset --hard"
Set up git:
git config --global push.default current git config --global user.name "Your Name" git config --global user.email [email protected]
Workflow Tips
Start by executing gs, or git status. This is like your go-to. It is the answer to the question "where am I" or "what was I doing again?".
Check out branches using gch -b branch_name.
When you are ready to commit, use gst or git stage -A. This "stages" all currently modified files -- flipping the "I want this file to be included in the commit" switch. Each can be staged or un-staged independantly, but this will stage everything in your current directory and in all sub-directories.
Review the actual code changes that are about to be committed by typing gds or git diff staged. This shows you a quick list of red/green adds/removals that are about to be commited. Scroll/exit by using J/K/Esc.
When you're ready to commit everything that's green in gs, type gc "A commit message". This makes the actual commit.
Dropbox
Why
You probably find yourself on different computers depending on whether you're at home, work, or on the go. Wouldn't it be nice to sync up your config files so that when you add that Git alias that you wondered how you previously lived without to your bash profile, it is delivered to your other computers? Symlink config files to your Dropbox and keep it all in sync.
How
Get the 64-bit Fedora client from the Dropbox Download Site.
Install:
sudo rpm -ivh (Name of downloaded file).rpm
Now, sync up config files by symlinking to your Dropbox. For example, to sync up your Terminator settings:
cd mv .config/terminator/config Dropbox/.my-terminator-config ln -s Dropbox/.my-terminator-config .config/terminator/config
Repeat for pretty much anything that has a config file. Vim folder, bash config, instant-messenging clients, etc.
RVM
Why
RVM is a must-have the minute you start working with multiple codebases. It provides a slick solution for juggling Ruby versions when you have a bunch of different applications each depending on their own environment.
How
Grab the only dependency:
sudo yum install libxslt-devel
Install:
curl -L https://get.rvm.io | bash -s stable --rails --autolibs=enabled # Or, --ruby=1.9.3
That command should get you Ruby on Rails. However, I've found RVM to occasionally need a little extra prodding. Run the following to make sure you have Ruby and the latest Rails:
rvm get stable rvm install latest gem install rails bundle install
GVim
Why
Speed, but not at first. Takes lots of patience and practice, but totally worth it in the long run. With the right set of plugins (below), you'll find GVim goes from useful to mega-useful.
How
Good news, you already have it. It came with the yum group "Editors" that you installed way up in the Fedora section. Most plugins that we care about come in a bundle called Janus which is hosted on Github. Start by making sure you have the dependencies:
sudo yum install ack ctags
Install Janus. This takes quite awhile because it hits a whole bunch of Git repos, so go grab a coffee or something.
curl -Lo- https://bit.ly/janus-bootstrap | bash
Next, get NERDTree Tabs:
cd ~/.janus git clone https://github.com/jistr/vim-nerdtree-tabs.git
Totally up to you to find a Vim theme you like, but I recommend Mustang. Being reasonably artistically-oriented, I find the syntax highlighting colors look really great together. Hey, just because you're a back-end developer doesn't mean your code needs to look ugly!
mkdir ~/.janus cd ~/.janus mkdir mustang cd mustang mkdir colors wget http://www.deviantart.com/download/98974484/Mustang_Vim_Colorscheme_by_hcalves.vim
MySQL Workbench
Why
The most mature MySQL graphical client for linux. Feels the most natural and full-featured out of all seven or so options. Unfortunately, it isn't perfectly stable. I found that it tends to crash about once every two or so days of fulltime work, which is acceptible for the robustness of the application.
How
sudo yum install mysql-workbench
Pretty straightfoward, connect via local pipe (leave the path blank).
LibreOffice Base
Why
While slightly tacky, Base stood out from all other options I tried when it came to PostgreSQL admin'ing. It's a pretty simple program (after you get past initial set up and connection), and it's stable.
How
sudo yum install libreoffice-base
I don't use it enough to remember how I set it up. But, someday I'll fill this out!
My Setup
So, because I started building my computers as a kid, I've put together a lot of really nice builds, and a good handful that caused buyer's remorse. As with any hobby or profession, I think there are best practices for computer hardware, and this outlines what I believe them to be. Typical disclaimer, it's not like I'm some hardcore CNet reviewer or anything, just a dude with a little experience. Take it or leave it.
Current build: Fox
In early 2011, right as the Sandy Bridge chipset was revised, I put together my current computer, named Fox. I decided there were 3 important goals of this build, and this has worked so well that I'd recommend keeping these objectives in mind for any future build:
Small - We're all watching mobile devices -- smart phones and tablets -- get more and more powerful. Rumor has it that many tech giants want tablets to replace desktop PCs! Crazy, but feasible. So why the hell would you want an E-ATX monster? In my mind you should have every intention of getting rid of excess computer guts to minimize footprint. This means that unless you have lots of money and a need to be absolutely maximized on all fronts, the ITX formfactor is the sweetspot. Hell, it should be the new standard. In the past one could argue you sacrifice a lot for the size, but that simply isn't the case anymore. We're seeing the decline of expansion cards, and the only thing greater formfactors get you is more space for them. mATX is not bad, but everything below the PCI Express x16 slot is excess. The best part? As you'll see below, there's no longer any loss of power capability with the ITX formfactor.
Quiet - Air cooling has always been plenty sufficient, and always will be. The small performance advantage of fussing with water hoses and noisy reservoirs isn't worth it. Forget about numbers for a minute -- modern CPUs are powerful enough for day-to-day use. When it comes to fans, always be thinking wide and flat. Every fan in your case should be no less than 120mm in size, preferably 140mm. Get rid of that stock Intel cooler, they don't cool very well and sound like forklift when throttling up and down. Consider every part and work on anything that would be potentially noisy. New dual-fan video card with thin blades, they're really quiet. Passively cooled power supply. Quiet hard drives and an SSD.
Powerful - In an ITX build going for maximum efficiency and the least noise, you're probably worried about losing processing/video power. ITX motherboards can do any current gen (Ivy Bridge, AM3+, etc) CPU just fine. There's a PCI express slot -- ITX motherboards support GTX 6xx / HD 7xxx series video cards, and a typical ITX case will have room for it. You have two memory slots, which is plenty for up to 16GB (2 x 8GB). Small and quiet doesn't mean wimpy now, especially now that we have such amazing small and powerful components. My last build was an overclocked Core 2 Duo (4 ghz) which was great, but no longer necessary.
Case: Lian-Li PC-Q08
Super efficient use of space. Supports full ATX power supply! Also, room for 4 drives, 1 SSD, 1 full-size video card, aftermarket cooler. What a winner.
Processor: Intel i5-2500K
Sandy Bridge is last-gen now, but this is a fantastic CPU. Note that an H67 chipset doesn't overclock, but this chip has the capability of overclocking (just in case).
Storage, capacity: 2x WD Green 1TB in RAID 1
I've had WD Black and Blue in addition to Green, and the only significant real-world difference (that matters to me) between them all is noise. The Blacks click so loudly that you can feel the vibrations on your desk. The Blues are better, but the Greens are where it's at. Their mechanical noise sounds like pins dropping and is inaudible over the low whir of large case fans.
Still have a loud fan? Fan Controller
It's worth backing off! I got one of these that I didn't end up using because the fans were quiet enough at normal speed. Get a fan controller to back off any rouge fans. You'll thank yourself later.
Power supply: Seasonic SS-460FL
Passive (silent), modular, 80 gold (efficient) certification, all at 460 watts (sufficient for current-gen video cards, even though they'll say 500 watts). Nice.
Video Card: Sapphire Radeon HD 7950
The PC-Q08 supports a dual-slot card. This card is a beast while still being uber-quiet. It also has two mini displayport outputs.
Storage, speed: Samsung 830 256GB SSD
Solid state is still a young technology, so get whatever is the current best. Right now, 256GB SSDs are the sweet spot. Don't short yourself size. 64GB is too small.
Motherboard: ASRock H67M-ITX/HT
Full-size (not laptop-sized SO-DIMMs) memory slots. 4 SATA ports, built-in WiFi and audio. Nice EFI BIOS.
Memory: Crucial 8GB (2 x 4GB)
I am a power user, and I still don't ever find myself bumping my head. 8GB is plenty. These days, I'd go for 16GB. So cheap, why not?
Optical Drive: Optical Drive
You really don't need an optical drive anymore. Every CD that I got in the past two years has landed in the trash (or sent to that new recycling place, if I'm in the Bay Area). But, just in case, right?