tag:blogger.com,1999:blog-69591482024-03-17T22:00:31.176-05:00<geekwagon.net />Sometimes something cool falls off.Jameshttp://www.blogger.com/profile/16357536770828429679noreply@blogger.comBlogger261125tag:blogger.com,1999:blog-6959148.post-28320820578880156842015-06-22T21:14:00.000-05:002015-06-22T21:15:40.253-05:00How I WorkYou know that <a href="http://lifehacker.com/tag/how-i-work">Life Hacker segment called "How I Work"</a> full of intelligent people sharing how they do productive things? I never read those. I should because I feel like a hypocrite writing a blog post with this title. I digress, the point of this post is to help my friends.<br>
<div>
<br></div>
<div>
Several people have asked me how I do web development. I understand they are looking to find easier ways of doing it, and I want to help. The truth is: I'm about to disappoint you. I do it the hard way (but there are some awesome advantages).<br>
<br></div>
<div>
<br>
</div><a href="http://blog.geekwagon.net/2015/06/how-i-work.html#more">Read more »</a>Jameshttp://www.blogger.com/profile/16357536770828429679noreply@blogger.com80tag:blogger.com,1999:blog-6959148.post-80235951437158731152015-04-26T10:41:00.000-05:002015-04-26T10:41:45.385-05:00Sudoku from the Other Side<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioueKs_8Qx01O1dowTVaAVsBToWhV3h2Zzr83Oy5immTUSNLsxxyctym7KRMVfP8ldWBdRYP5ekv4rj2jatNQTi5-OmnDKSQwYpK97oo8nlv7LVNLmTaHJtZL6E3jhXMZA-xZhxQ/s1600/IMG_20150424_140251.jpg" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioueKs_8Qx01O1dowTVaAVsBToWhV3h2Zzr83Oy5immTUSNLsxxyctym7KRMVfP8ldWBdRYP5ekv4rj2jatNQTi5-OmnDKSQwYpK97oo8nlv7LVNLmTaHJtZL6E3jhXMZA-xZhxQ/s1600/IMG_20150424_140251.jpg" height="320" width="273"></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">I also play in pen because I'm a glutton for punishment.</td></tr>
</tbody></table>
I do love Sudoku, and I play it too much. Not long ago (before this semester started kicking my butt) there were two things I wanted to play with: Local Storage and a Sudoku library.<br>
<br>
This is what I came up with: <a href="http://geekwagon.net/projects/sudoku/">http://geekwagon.net/projects/sudoku/</a><br>
<br>
<br>
<a href="http://blog.geekwagon.net/2015/04/sudoku-from-other-side.html#more">Read more »</a>Jameshttp://www.blogger.com/profile/16357536770828429679noreply@blogger.com7tag:blogger.com,1999:blog-6959148.post-50770646118475956212015-03-22T20:33:00.000-05:002015-03-22T20:33:04.020-05:00Unscientific Soylent Test<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://fbcdn-sphotos-b-a.akamaihd.net/hphotos-ak-xpf1/v/t1.0-9/11000432_821362187939185_2398847368577710804_n.jpg?oh=922025db2232e48bf5b4c69365c4739b&oe=557E1291&__gda__=1433672699_ef9d103c82c8db4aaa6affdcd8e96beb" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="180" src="https://fbcdn-sphotos-b-a.akamaihd.net/hphotos-ak-xpf1/v/t1.0-9/11000432_821362187939185_2398847368577710804_n.jpg?oh=922025db2232e48bf5b4c69365c4739b&oe=557E1291&__gda__=1433672699_ef9d103c82c8db4aaa6affdcd8e96beb" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">I'm not a fan of the name, but I cannot knock <br />them on professional packaging.</td></tr>
</tbody></table>
Over spring break I decided to give Soylent a try. If you haven't heard of it <a href="http://lmgtfy.com/?q=soylent">check out this link to learn more</a>. My original plan was to give it a solid scientific method-ing (could I be the first person to use "scientific method" as a verb?), but either because I'm busy, lazy, or a realist I opted for a simple approach.<br />
<br />
Almost six months ago I ordered a week supply of Soylent. Version 1.4 is what arrived; which is nice because they ditched the little bottle of fish oil. Only powder from here on out. For the first batch I followed the instructions to the letter. Pour a whole package in the container they sent, added some water, shake the hell out of it, then added more water. By the second round of shaking I knew future batches were going in the blender. When I opened the bottle to check consistency it smelled horrible. Absolutely horrible. Had I wasted my money?<br />
<br />
It is supposed to be refrigerated for at least two hours, but I let it sit over night. The most surprising thing, the next morningit had no smell. Maybe a faint difficult to describe "Soylent" smell, but not repulsive like before. It didn't have any taste, although a lifetime of spicy food brings my taste buds discernibility into question. I had heard people say it had a chalky texture--they're right. Imagine blending up sticks of sidewalk calk with water. A fine grit suspended in liquid.<br />
<br />
I started using it regularly on Sunday and by Wednesday had figured out a pattern that didn't exclude real food. I make up half a bag with two bananas and an apple (estimate 1300 calories). Drink that through the day, then have a normal dinner. The drink is filling, some days I didn't eat much.<br />
<br />
There is a chart of different additives I tried and short opinion of each. I've weighted myself at irregular intervals (see how unscientific this is going) and couldn't detect any significant gain or loss--less than 4 pounds difference. I can only guess my caloric intake and burn is unchanged. The only difference is I don't "eat" a lunch. Presumably this is healthy too.<br />
<br />
Speaking of healthy, I had to admit the first few cups of Soylent were strange. One time I had a tightness in my chest and noticeable increase in heart beat. Another time I felt a little dizzy. I cannot say with absolute certainty these were caused by Soylent because I've felt these symptoms before. On the other hand they happened right after consumption. By the third day I felt great. My theory (or hope) is my body in shock from having healthy food for a change. My regular diet has an embarrassing Oreo ratio.<br />
<br />
The downside to Soylent is I have a number of friends that like to cook and give me flack for my culinary laziness. Honestly, I kind of enjoy cooking the rare occasion I do it. I could potentially pursue that as a hobby if the world wasn't full of so many cool things to do. Soylent is a way to give me time to focus on other hobbies. Breakfast and lunch this week has been no more complicated than getting another cup of coffee. I lose about 10 minutes every evening making a new batch and washing the blender.<br />
<br />
Soylent fills a need in the market for fast healthy food. Subway used to fill that spot, but they give so many options now healthy becomes opt-in. The worst part is I came up with a similar idea a long time ago (to be fair Futurama played a big role in that idea). The only difference is mine was more like cereal, and it had to taste good with water, milk, or beer.<br />
<br />
Short list of things I tried to flavor Soylent with an opinion:<br />
<br />
<ul>
<li><b>Two bananas per 1/3 of bag:</b> very banana-y</li>
<li><b>Banana, apple, six frozen strawberries per 1/2 bag:</b> not bad</li>
<li><b>Banana, apple, lots of frozen strawberries per 1/2 bag</b>: not so good.</li>
<li><b>Two bananas, an apple per 1/2 bag:</b> pretty awesome, apple adds a little texture</li>
<li><b>One banana, and two apples per 1/2 bag:</b> too much texture</li>
<li><b>Two bananas, a pealed apple per 1/2 bag:</b> not worth the effort</li>
<li><b>Four double stuffed Oreos per 1/6 bag</b>: expectations where high but not bad (had to be tried--ridiculous amount of calories for the volume)</li>
</ul>
<br />
<ul></ul>
<br />
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
Jameshttp://www.blogger.com/profile/16357536770828429679noreply@blogger.com20tag:blogger.com,1999:blog-6959148.post-88820768029060867812015-01-30T06:35:00.000-06:002015-01-31T18:44:56.167-06:00Some Backup ScriptsI've been updating my backup procedure for Windows and learned some new tricks to share. My current backup procedure is the most horrible thing I could imagine. It copies and compresses all the files I care about and stores them on a NAS. It ignores some critical backup components:<br>
<ul>
<li><b>Waste space</b>, no incremental just a full copy of everything. This takes up a lot of space.</li>
<li><b>No daily</b> archive. What if I want to recover a file I deleted 17 days ago from a networked directory? As of right now it cannot be done.</li>
<li><b>Compression sucks</b>, for three reasons. </li>
<ul>
<li><i>First</i>, it takes longer to do the backup.</li>
<li><i>Second</i>, it is harder to search through.</li>
<li><i>Third</i>, if the single massive zip file is corrupt the backup is useless.</li>
</ul>
</ul>
<div>
These are some serious issues I should deal with in my new solution. In addition to that I don't want to give up the power, flexibility, and--let's just go with--geek pride a scripted solution provides. Geek pride could be replaced with frugal, but to be honest some of this stuff is a little fun to figure out. Saving a dollar is a by product more than a motivator.</div>
<div>
<br></div>
<div>
</div><a href="http://blog.geekwagon.net/2015/01/some-backup-scripts.html#more">Read more »</a>Jameshttp://www.blogger.com/profile/16357536770828429679noreply@blogger.com21tag:blogger.com,1999:blog-6959148.post-55795247229950865982014-12-12T16:09:00.000-06:002014-12-12T19:48:26.447-06:00A Real Ajax Login System<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJlwUmzZdk5kA_QEsZbSF6sEL_FzwTTViifS9J8dMbazv6jZJVDggnoboXX7GUqht8Sor5r_u-nnrMAp8iGHVxJmbIzVjbqczm8ipEAz0MCQUxKqfjEPUnobFOagXunJQS0X_wjw/s1600/Untitled.jpg" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJlwUmzZdk5kA_QEsZbSF6sEL_FzwTTViifS9J8dMbazv6jZJVDggnoboXX7GUqht8Sor5r_u-nnrMAp8iGHVxJmbIzVjbqczm8ipEAz0MCQUxKqfjEPUnobFOagXunJQS0X_wjw/s1600/Untitled.jpg"></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Dashed borders lets you know this is <br>
hard core web design.</td></tr>
</tbody></table>
<a href="http://geekwagon.net/projects/real-ajax-login/login.html">Demo</a> | <a href="https://github.com/deplicator/real-ajax-login">Source</a><br>
<br>
After a bit of Google searching, I could not find the login system I want. I would say 'fit my needs', but that's not accurate. There were tons that could fit the need, but I want a back end php system that allows a user to login by way of ajax calls. Specifically one that didn't require all my file names to end in .php. Is that necessary? No. Is that being picky? Probably. Is it fun to make it work anyway? Of course.<br>
<br>
There are plenty of php ajax style login systems and examples out there. I started with <a href="http://www.9lessons.info/2014/07/ajax-php-login-page.html">this one from 9lessons</a>.<br>
<br>
I have no right to complain about other people's work, but wow this code is hard to read and inconsistent. It works though, so I chose to clean it up and start making changes.<br>
<br>
<span style="color: #cc0000;"><b>DISCLAIMER</b></span>: I would like to note I am not a security expert. While I feel this system is decent enough, I cannot advise using it in a real application environment.<br>
<br>
<a href="http://geekwagon.net/projects/real-ajax-login/">Here is a demo</a>, note all pages end in html. You can log in with demouser and password, but check out the registration. That's where most of the magic is.<br>
<br>
<a href="http://blog.geekwagon.net/2014/12/a-real-ajax-login-system.html#more">Read more »</a>Jameshttp://www.blogger.com/profile/16357536770828429679noreply@blogger.com15tag:blogger.com,1999:blog-6959148.post-52456545210077027082014-11-29T14:23:00.000-06:002014-11-29T14:23:14.577-06:00jQueryFileTree - an old pluginI've been on a project at school for some time, it's a lot of fun. I enjoy working with others for a change. The project uses jQuery and we had a need to view directories from the server. Originally I wrote a very messy class that got the job done, but then one day I stumbled on <a href="http://www.abeautifulsite.net/jquery-file-tree/">jQueryFileTree</a>.<br />
<br />
Over all it was much simpler than my implementation. The only thing I don't like about it is it passes raw html from the connector script. My implementation passed a json object. Still, didn't take much work to get everything changed over. Most importantly, jQueryFileTree's implementation looked prettier... a lot prettier.<br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoeGIdZglXTBCiU2ugD18Pp5j7RpBsJPFXfehqmt9_dHq6mz4MKq4FMs_hsgPzgC6lBiI7OhDD82Mw5sIHJtm3q2jIkUfXbvtR9ikD4lmIxLP-8d6to2ZpU6woxc9KefP9RumOkQ/s1600/Untitled.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoeGIdZglXTBCiU2ugD18Pp5j7RpBsJPFXfehqmt9_dHq6mz4MKq4FMs_hsgPzgC6lBiI7OhDD82Mw5sIHJtm3q2jIkUfXbvtR9ikD4lmIxLP-8d6to2ZpU6woxc9KefP9RumOkQ/s1600/Untitled.png" height="140" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">My lame file tree.</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhv8_ccFJRSkIalho0wNBbbs0HBTuOoxSUhphwBWY0qc8AZcL1-Cvu3HdkXB_hl-L6gJe3oHJ4-U76UeerbqBZNC3ZUDOT0apku4vflGmJH3F6TqUjPW92rLYSzJBcVcfT_eWNoEg/s1600/Untitled2.png" imageanchor="1" style="clear: left; display: inline !important; margin-bottom: 1em; margin-left: auto; margin-right: auto; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhv8_ccFJRSkIalho0wNBbbs0HBTuOoxSUhphwBWY0qc8AZcL1-Cvu3HdkXB_hl-L6gJe3oHJ4-U76UeerbqBZNC3ZUDOT0apku4vflGmJH3F6TqUjPW92rLYSzJBcVcfT_eWNoEg/s1600/Untitled2.png" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">jQueryFileTree's default.</td></tr>
</tbody></table>
<br />
<br />
If there is anything I've learned about working with web interfaces, it's this: noone cares how efficient/useful/pretty/awesome your underlying scripts is, they only look at the surface. It's actually unfair the value placed on aesthetics. Cover some craptacular code with bootstrap, everyone think's it gold.<br />
<br />
Why am I even writing about this?<br />
<br />
For as much as I like jQueryFileTree, there were a couple of things it couldn't do. Now it can do those things, because open source!<br />
<br />
One part of our project didn't need files, only folders. The user selects a folder and magic happens no matter what is inside. I added a Boolean option called 'folderSelect' to handle this behavior. By default it's false, but if set to true files are not displayed and when the user clicks a folder that directory path is passed to the callback.<br />
<br />
The other thing we needed was a way to exclude files by name or extension. The new option 'exclude' is an array of strings. Any strings that match a folder or file name is given a hidden class. In contrast 'folderSelect' does not return files at all, this will return the excluded names but not show them. I did this just in case we wanted to have an option to show hidden files. In addition to names, any string that starts with '*.' will exclude by file extension.<br />
<br />
jQueryFileTree with these new options can be found <a href="https://github.com/deplicator/jQueryFileTree">at this fork of the original</a>. The exclusion code get's complicated, no doubt there are ways to improve it (I'm all ears if anyone has a suggestion).<br />
<br />
Maybe I'll change it up to pass json in the ajax call, and have a way for the user to change up the look. I think that would be better. I don't have a need for that right now though, so I won't be surprised if it doesn't happen.<br />
<br />
<br />
<br />
<br />Jameshttp://www.blogger.com/profile/16357536770828429679noreply@blogger.com13tag:blogger.com,1999:blog-6959148.post-50583108025993418862014-09-29T18:38:00.000-05:002014-09-29T18:46:50.189-05:00Steal These IdeasSeptember is almost over, and I've come up with many excuses to do something other than write this months post. I'm not going to lie, this month I'm cheesing it.<br>
<br>
I've <a href="https://www.google.com/?q=steal%20my%20idea#safe=off&q=steal+my+idea">found several sites</a> with a similar "steal my idea" theme. Usually they are bad ideas. Today I'm going to share my idea math. Copied and pasted from my journal:<br>
<br>
<br>
<span style="font-family: Courier New, Courier, monospace;">Crazy Idea Math</span><br>
<span style="font-family: Courier New, Courier, monospace;">---------------</span><br>
<span style="font-family: Courier New, Courier, monospace;">Ideas are a dime a dozen, and anyone can come up with a dollar's worth in a day.</span><br>
<span style="font-family: Courier New, Courier, monospace;"><br></span>
<span style="font-family: Courier New, Courier, monospace;"> $0.10 $1.00</span><br>
<span style="font-family: Courier New, Courier, monospace;"> 12 ideas 120 ideas</span><br>
<span style="font-family: Courier New, Courier, monospace;"> </span><br>
<span style="font-family: Courier New, Courier, monospace;"> 100 are gibberish</span><br>
<span style="font-family: Courier New, Courier, monospace;"> 19 suck</span><br>
<span style="font-family: Courier New, Courier, monospace;"> 1 mediocre --------\</span><br>
<span style="font-family: Courier New, Courier, monospace;"> 1/10,000 decent }--- good ideas</span><br>
<span style="font-family: Courier New, Courier, monospace;"> 1/1,000,000 gold ---/</span><br>
<span style="font-family: Courier New, Courier, monospace;"><br></span>
<span style="font-family: Courier New, Courier, monospace;">Based on that math, it will take $8,334 worth of ideas to get to the golden one. That's almost 23 </span><span style="font-family: 'Courier New', Courier, monospace;">years if you can do a dollar a day.</span><br>
<span style="font-family: Courier New, Courier, monospace;"><br></span>
<span style="font-family: Courier New, Courier, monospace;">Writing Them Down</span><br>
<span style="font-family: Courier New, Courier, monospace;">-----------------</span><br>
<span style="font-family: Courier New, Courier, monospace;">Writing down the mediocre ideas is the only way to accelerate the process, or at least increase the </span><span style="font-family: 'Courier New', Courier, monospace;">percentage of good ideas.</span><br>
<br>
<br>
The bottom line is ideas are the easy part. Implementation is hard. I don't write down as much as I should, but in the "steal my idea" spirit I'm going to share a handful of my mediocre ones.... okay some are not even mediocre.<br>
<br>
<br>
<a href="http://blog.geekwagon.net/2014/09/september-is-almost-over-and-ive-come.html#more">Read more »</a>Jameshttp://www.blogger.com/profile/16357536770828429679noreply@blogger.com38tag:blogger.com,1999:blog-6959148.post-51977598403655628792014-08-30T20:15:00.001-05:002014-08-30T20:21:15.777-05:00Game Development Practice<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-MYgrYCpdQcOLWKX_3AKXmMuo63mFP_iA2pN3ppbERss89A9keugOQPqosRa4wCEQiu5H0cGE9KN2GX9LRjsXaRhC4480T5ZJAAStlSfe7zPR3OWcpFR7RkJh-PqX-Yrgu63u8w/s1600/LCR_Tubes.jpg" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-MYgrYCpdQcOLWKX_3AKXmMuo63mFP_iA2pN3ppbERss89A9keugOQPqosRa4wCEQiu5H0cGE9KN2GX9LRjsXaRhC4480T5ZJAAStlSfe7zPR3OWcpFR7RkJh-PqX-Yrgu63u8w/s1600/LCR_Tubes.jpg" height="245" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">LCR Tubes with less fun instructions inside.</td></tr>
</tbody></table>
I found Eric Zimmerman's blog a while back and have enjoyed his series of posts about how he teaches game design. Particularly <a href="http://ericzimmerman.wordpress.com/2014/08/11/how-i-teach-game-design-lesson-2-broken-games-and-meaningful-play/">this one about fixing broken games</a>. Like most geeks, I like games. I like playing them, thinking about them, how could I make them better, how can I make my own...<br />
<br />
Zimmerman explains broken games as ones with no meaningful outcomes. Almost exactly the same conclusion I made, except I defined it as the player having no bearing on the outcome. No doubt I picked this idea up years ago from Sid Meier's idea of games being "a series of interesting choices".<br />
<br />
Zimmerman lists five broken game examples; War, Rock-Paper-Scissors, The Dice Game, The Number Guessing Game, and Matching Pennies. The assignment in his post is to create a variation on one of these games to fix the broken aspect.<br />
<br />
I'd like to do this assignment, but I'm going to choose a different broken game: <a href="http://en.wikipedia.org/wiki/LCR_(dice_game)">LCR</a>. Here are the original rules (as best I can recall).<br />
<ul>
<li>The game has 3 custom dice; half the sides are a dot, one side is an R, one is an L, and the final is C.</li>
<li>There must be 3 or more players (too many make for a long game too few is more boring).</li>
<li>Each player starts with 3 tokens (or quarters to make the random win more exciting).</li>
<li>On each players turn they rolls a die for each token they control, max 3.</li>
<li>If a player controls no tokens, they are still in the game but cannot roll dice on their turn.</li>
<li>The player will pass a token right for each R rolled, to the left for each L rolled, and put a token in the center for each C rolled.</li>
<li>The final player to be the only one with tokens, wins (and gets the quarters in the center if playing with money).</li>
</ul>
<div>
It's a simple game, and can even be fun. I think it's a party favorite because inebriated people don't have to make decisions.</div>
<div>
<br />
I've played this silly little game many times, and every time I can't help but think we're just waiting to find out what the random outcome will be (I'm rarely inebriated). Until I read Zimmerman's post, it never occurred to me to think about how I could change the game. </div>
<div>
<br /></div>
<div>
This is what I came up with (unchanged rules are grey):</div>
<br />
<ul>
<li><span style="color: #999999;">The game has 3 custom dice; half the sides are a dot, one side is an R, one is an L, and the final is C.</span></li>
<li><span style="color: #999999;">There must be 3 or more players (too many make for a long game too few is more boring).</span></li>
<li>Each player starts with 4 tokens (or quarters to make the random win more exciting).</li>
<li><span style="color: #999999;">On each players turn they rolls a die for each token they control, max 3.</span></li>
<li>Before dice roll, the player will pass one token to the right or left.</li>
<li><span style="color: #999999;">If a player controls no tokens, they are still in the game but cannot roll dice on their turn.</span></li>
<li><span style="color: #999999;">The player will pass a token right for each R rolled, to the left for each L rolled, and put a token in the center for each C rolled.</span></li>
<li>If a player rolls three dots, they take a token (if available) from the left or right player.</li>
<li><span style="color: #999999;">The final player to be the only one with tokens, wins (and gets the quarters in the center if playing with money).</span></li>
</ul>
<br />
<div>
I didn't change much. I felt it was important to use the same dice as the original game. Everyone will start with 4 tokens (now a nice round dollar if you're playing with quarters), and pass one before the roll. At the beginning of the game the choice is arbitrary. As it goes on though I hope this will make things more interesting. Will you pass to the player with more tokens than you, or to the player with none? Having the player pass before the roll makes players with only one token effectively out of the game, but still with a decision to make.</div>
<div>
The other decision making change is when a player rolls 3 dots, there is a 1 in 8 chance a player will roll this if they have 3 tokens (based on my experiences this is more common than you'd think). These two changes give players some deciding power on tokens going out and coming in.</div>
<div>
<br /></div>
<div>
Unlike the real assignment I haven't been able to do any play testing (the number of people I know willing to play table top games is sad).</div>
<br />
<div>
</div>
Jameshttp://www.blogger.com/profile/16357536770828429679noreply@blogger.com11tag:blogger.com,1999:blog-6959148.post-36915875501021550902014-07-19T11:16:00.000-05:002014-07-19T19:07:45.078-05:00My First WildStar Addon - Kael's Housing Tour<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhZpOWrRpqspMv2lHfSAsO-69LC0SeFQFvLmqP2B8tt6EVPfBNx9uLIlNYH4948Ayd9GlKFZYjhEsNHkYyzHZG54sZ7Y2MYEInALy9QMy7S-fGC3w7h4qp5TwHzeO0H3pJzK-lTA/s1600/khtss.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhZpOWrRpqspMv2lHfSAsO-69LC0SeFQFvLmqP2B8tt6EVPfBNx9uLIlNYH4948Ayd9GlKFZYjhEsNHkYyzHZG54sZ7Y2MYEInALy9QMy7S-fGC3w7h4qp5TwHzeO0H3pJzK-lTA/s1600/khtss.png" height="320" width="294" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Hard to see, but there is a handsome<br />
warrior with new PvP gear in this picture.</td></tr>
</tbody></table>
The screen shows it's not much of an addon, but the person I made it for is ecstatic about it.<br />
<br />
This post isn't about how to use Kael's Housing Tour. I spent more time writing a readme than it will be cumulatively read by users. It's <a href="https://github.com/deplicator/HousingTour">available on the git repo</a>. After some tweaks I'll put it on Cursed Gaming too.<br />
<br />
EDIT: It's <a href="http://www.curse.com/ws-addons/wildstar/222538-kaels-housing-tour">on cursed now too</a>.<br />
<br />
The look of this addon was made by Kaelish (that's who Kael is). If you are curious why it's her housing tour I suggest the aforementioned readme file. Obviously this will get better over time, for example I'd like to grey out the Guide and Change Guide button if you haven't clicked join a tour.. or not show them.<br />
<br />
Development wise, lua is kind of strange. I'm not a huge fan of Houston, the official addon development tool. I only used it for making changes to the graphical form. All the lua editing was done in Notepad++. This was the first time I ever used git in Windows. I was told there was some pretty gui for it, but I found Git Bash and did what I usually do (except no copy and paste, lame).<br />
<br />
The API is lacking in official documentation. Most unofficial documentation is just lists of libraries and methods available. Most of my real insight was gained looking at other addons. There are some area's my code is very similar to others. At first I thought that was kind of wrong, but the right click menu code for every addon I saw was virtually identical. I cyclomatic complexity-ed mine up by changing the right click menu option based on if you are a tour guide or not. Also, if you click on yourself the text is different.<br />
<br />
The Visitor addon's function for searching random properties was decent, but I had to do some tweaking. The most notable (imo) improvement is I pass the unique properties searched to the form instead of searches done. Searches done will always increment until the user clicks stop. Unique Properties will eventually hit a cap, so the user can see they probably aren't going to find the property they're looking for. Future improvements a visual indicator that the search is still going, and I'd like to add an auto stop after so many searches with no more unique properties found. The are really a ton of things I want to add... some are in that readme.<br />
<br />
This addon also marked the next iteration of my 10 minute hack experiment. I wrote a quick blurb in my notes for almost every day. I'm happy to share it, but these <a href="http://geekwagon.net/projects/HousingTour/2014-06-26_notes.md">are just notes for myself</a> (nothing juicy). They're in markdown, but I only ever view them in a text editor so it might not be perfect markdown.Jameshttp://www.blogger.com/profile/16357536770828429679noreply@blogger.com6tag:blogger.com,1999:blog-6959148.post-10964907841939111552014-06-20T11:51:00.000-05:002014-06-20T11:51:27.399-05:00Just Another Tetris Clone<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6zdtpJavcc73rm9f0Of7iZQp4ypRU4ApCOp7I_txZAQ5bqOWzwhNLnhRZihc7hOrFxh6wPJH_h0E2T07w_c5FaqCIw93i9iS4qeccPPzY6VqFpDr8kJufrT_czUaR9Lz-K-Yjzg/s1600/Screen+Shot+2014-06-15+at+8.00.34+PM.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6zdtpJavcc73rm9f0Of7iZQp4ypRU4ApCOp7I_txZAQ5bqOWzwhNLnhRZihc7hOrFxh6wPJH_h0E2T07w_c5FaqCIw93i9iS4qeccPPzY6VqFpDr8kJufrT_czUaR9Lz-K-Yjzg/s1600/Screen+Shot+2014-06-15+at+8.00.34+PM.png" height="320" width="147" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Someone sucks at Tetris.</td></tr>
</tbody></table>
Despite WildStar's critical hit on my free time this past month, I've managed to code a little. Let me introduce both of my blog readers to the buggiest and most poorly coded version of Tetris they've ever seen.<br />
<br />
<a href="http://geekwagon.net/projects/flipsy/">http://geekwagon.net/projects/flipsy/</a><br />
<br />
Don't ask why it's called Flipsy. That was just the name of the<br />
folder when I started and I didn't bother to change it.<br />
<br />
I did follow the <a href="http://tetris.wikia.com/wiki/Tetris_Guideline">Tetris guidelines</a> to the best of my coding ability. The obvious things, like piece colors are there. With the exception of the square. One cube on the square red so I could see it was rotate. Less obvious Tetris familiarity is the piece randomness. There are a ton of guidelines I haven't implemented yet.<br />
<br />
The primary goal of this project was to increase my familiarity with <a href="http://phaser.io/">Phaser.io</a>, an HTML5 game framework. It takes care of the lame part of game crafting, drawing stuff on a canvas, and lets you focus on the look and logic of the game. Their site has a lot of examples to help you. I found most of their examples are for every game type imaginable except a falling block puzzle game. They are none the less helpful at getting concepts across.<br />
<br />
This was also a personal experiment with <a href="http://lifehacker.com/5889332/the-10-minute-hack">the 10 minute hack</a>.<br />
<br />
The idea behind the 10 minute hack is to work on something for 10 minutes every day. The idea is that once you get into a project it is easier to keep going. If you are just not in the mood you can at least say you thought about it for 10 minutes. I am certain, had this stupid WildStar game not come out there would have been less days of only 10 minutes. To be honest there were a couple of days I didn't even get my 10 minutes in. Every day I did do the 10 minute hack I made a note of it in a text file. Like a 10 minute hack daily journal. Most entries were a sentence, but I found the reflection to be useful.<br />
<br />
I'd post my 10 minute hack journal, but my biggest mistake was using the hack to work on multiple projects at once. I think in the future, for at least a few weeks at a time, decide which project the 10 minute hack will be used on.<br />
<br />
For the future of this project, first thing will be some major refacroting. Then some bug fixing. For example; if you go nuts with the rotate key and left/right arrows at the same time you can split a piece apart. Especially weird stuff can happen at the edge of the screen. After that I'd like to start making some serious changes, like make it more than another Tetris clone.<br />
<br />
<br />
<br />Jameshttp://www.blogger.com/profile/16357536770828429679noreply@blogger.com2tag:blogger.com,1999:blog-6959148.post-47277061068104546832014-05-29T12:39:00.000-05:002014-05-29T12:43:37.584-05:00Damn you Avat... I mean CarbineThis might be my last post, <a href="http://youtu.be/xHYnavDtofc?t=41s" title="what I was thinking of when I wrote the title to this post">save yourselves</a>! It's too late for me. <a href="http://www.wildstar-online.com/en/">WildStar</a> comes out in two days and I already know my weekend is ruined. This game is too much fun.<br />
<br />
<span style="color: #cc0000;">Warning: personal insights that don't <a href="http://www.thedailybeast.com/articles/2014/05/27/your-princess-is-in-another-castle-misogyny-entitlement-and-nerds.html">generalize nerds ahead</a>. </span>I'm also linking to phrases that come from pop/nerd culture that have influenced my way of thought over the years. It's an experiment to <a href="http://youtu.be/F02rzmW_HOo?t=51s">out the random clutter in my conscience</a>.<br />
<span style="color: #cc0000;"><br /></span>
<br />
<div style="text-align: center;">
<iframe allowfullscreen="" frameborder="0" height="315" src="//www.youtube.com/embed/UjlPJzJTziA" width="560"></iframe>
</div>
<br />
Like many, I want to be productive. I want to be <a href="http://youtu.be/RjzC1Dgh17A?t=23s">successful</a>. I want to balance between what is fun and what makes me <a href="http://www.liveleak.com/view?i=535_1189897817" title="what no youtube of Futurama with fry saying this?">those things I said</a>. I'm the only one that struggles with this balance, right?<br />
<br />
I get it, there is dopamine in the brain that responds quicker to games. The immediate satisfying feedback that I did something awesome (those <a href="http://youtu.be/LSWnp8BPCy4">epic level up lines</a> don't help). What bothers me, is I can feel this way about writing code, or writing creatively, or doing almost anything else. It just takes longer to get into it the flow, and it's easier to fall out of. I believe <a href="http://www.ted.com/talks/jane_mcgonigal_gaming_can_make_a_better_world" title="her book is good too, but this is the quick way to get her gist">Jane McGonigal</a> is right. If we can make real life feel like playing games we can solve all the worlds problems.<br />
<br />
I hit a good code writing snag and one of two things will happen. It will invigorate me to find the solution, or it will seem to daunting of a task and make me quit for the day (most code I write is for my own projects so I have that luxury). In my defense, after a good nights sleep I'll come back and push through it. I'm almost certain there is a level of complexity versus how tired I am that determines if I'll push through or quit.<br />
<br />
On the other hand games aren't like that. They seem to offer just as much challenge as I need to keep going. For some reason I'm not deterred when I do meet something challenging. Remember pre-internet gaming? Someone who reads this post might. It was hard core. I literally walked all over <a href="http://www.zeldacapital.com/HyruleMap/loz-overworld.gif" title="yeah the real Hyrule">Hyrule</a> burning every bush and bombing every wall because that's how you found secretes. Why can't I be that motivated when it comes to coding? Why is it a problem that <a href="https://www.google.com/webhp?q=javascript%20check%20checkbox#q=javascript+check+checkbox&safe=off" title="example of the opposite of what I mean">doesn't come up with multiple stackoverflow</a> results on a search considered hard? I'm sure developers in a pre-internet age spent just as much time hammering out problems as I did finding secretes in video games. Except now they answer those stackoverflow questions for people like me.<br />
<br />
I have to wonder how successful I will be if I'm willing to spend the time to find secrets in a game, but give up when I hit a snag in real life? I take it back I don't wonder, I know. It just makes me sad when the right answers are staring me in the face, but I will still lose this whole weekend to gaming on. You know, instead of updating the template for my blog because it's absolutely horrible.<br />
<br />
The struggle for balance continues... In the mean time I will be blowing that balance out my butt by fighting for the Exiles <a href="http://youtu.be/FJ6ZSUxa2P4?t=3m24s">right to a decent (virtual?) life</a> on Nexus. My only hope is that I can get it out of my system this weekend, then go back to trying balance again.<br />
<br />
<br />
<div>
<br /></div>
Jameshttp://www.blogger.com/profile/16357536770828429679noreply@blogger.com2tag:blogger.com,1999:blog-6959148.post-10363542228046753982014-04-30T09:57:00.000-05:002014-04-30T09:57:16.403-05:00Habits<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieRlXlowEs-KhyFeTthW55IlUiZNJ-ixsqJpcBeSypwcVkwoOjcW704ewLtjQtjbzZeWzh-kHI_b8h5A98ujXcCIFXTiLHw8J5urfkvm0Mo6n57l4uEfvzAc7Ra01BJl-w4uZRJw/s1600/Untitled.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieRlXlowEs-KhyFeTthW55IlUiZNJ-ixsqJpcBeSypwcVkwoOjcW704ewLtjQtjbzZeWzh-kHI_b8h5A98ujXcCIFXTiLHw8J5urfkvm0Mo6n57l4uEfvzAc7Ra01BJl-w4uZRJw/s1600/Untitled.png" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">No doubt, the world of<br />Habitaria fears the might<br /> of a level 4 habit builder <br />and his magic helmet.</td></tr>
</tbody></table>
I admit, the primary point of this post is to keep my resolution of one post per month. It seems like an easy goal; until finals. <i>Warning: this post contains a bit of personal junk</i>.<br />
<br />
On that note, I find personal productivity (and tracking it) an interesting field. If my RSS reader is a metric of any kind, there are a lot of people interested in it. It makes sense, we're all selfish to some extent and personal productivity is all about ourselves.<br />
<br />
Some years ago I read <a href="https://www.stephencovey.com/7habits/7habits.php">7 Habits of Highly Effective People</a>. I'm leery of book titles with numbers and 'ly' words in the title, but it remains the only book I've ever recommended to others. It was the book that made me realize I can learn how successful people do things. I still need to refine it, and practice it, and make it work for me; but I'm not starting from scratch (<i>note</i>: more proof we are living in a cool future).<br />
<br />
I don't consider myself a success, but I feel like I'm finally on the right path. Over the years I've used a number of tools to aid me in being a productive or successful person. I think many of us struggle with what works for our tastes.<br />
<br />
For me, the task managing tool I use most is the one in gmail (you know that one no one knows about and almost doesn't make sense it's even in there). When I am not at home I can add to it from my email account. When I am at home I use this link to manage the list.<br />
<br />
<a href="https://mail.google.com/tasks/canvas">https://mail.google.com/tasks/canvas</a><br />
<br />
I don't recall where I found it, or why it exists, or when Google will take it away (RIP Reader). I like it though. I don't even bother with separate lists, just one big list. For example I'll have stuff like this:<br />
<br />
<ul>
<li>COMP3223 - Assignment 3 due</li>
<li>COMP3053 - Group Project due</li>
<li>Research Group - Setup bitbucket repo</li>
<li>Personal - taxes</li>
<li>Personal - look into dropbox alternatives</li>
</ul>
<div>
I generally group them by what comes before the hyphen, but I can also sort by due date. Tasks can be edited like one big text document, and you can add notes to a specific task. The only thing simpler would be a text document (which I've been known to use but it not as satisfying to delete tasks as it is to check them off and see the line through them).</div>
<div>
<br /></div>
<div>
A couple of weeks ago I started using <a href="https://habitrpg.com/">habitrpg.com</a>. It also has a task list with satisfying checkboxes, and it's kind of fun. I've particularly enjoyed the daily tasks, I have a bad habit of skipping breakfast. Since I've started using HabitRPG I have yet to miss breakfast. </div>
<div>
<br /></div>
<div>
Time will tell how well I stick to this one, but so far it is more promising than many of the other tools I've used. It caters to the gamified desire for immediate feedback. Just the other day I was so close to level 3, I did a <a href="http://projecteuler.net/problems">Project Euler</a> problem (which is one of my regular habits) just to level up.</div>
<div>
<br /></div>
<div>
If this post has a point to make, it is try new stuff. I hear a lot of people say "Have a system and stick to it." I feel that is bad advice. I say stick with what works, but don't let that stop you from checking out everything else.</div>
<div>
<br /></div>
Jameshttp://www.blogger.com/profile/16357536770828429679noreply@blogger.com3tag:blogger.com,1999:blog-6959148.post-89128843398098198152014-03-23T11:20:00.001-05:002014-03-23T11:22:02.294-05:00Responsive Break Points<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOUFHatRrp_c9vas32V7w5LcPhKjf3F-NnpnCrHBU_pOKZDpYfzNYr4IHzo1p9sWbQH0sCAT1I9OkdopbzlxuNzCOZQM_3t50RIAyULn2aUpR6gtuLZa0-3n4qn2m1CcbiBBSICw/s1600/325px.jpg" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOUFHatRrp_c9vas32V7w5LcPhKjf3F-NnpnCrHBU_pOKZDpYfzNYr4IHzo1p9sWbQH0sCAT1I9OkdopbzlxuNzCOZQM_3t50RIAyULn2aUpR6gtuLZa0-3n4qn2m1CcbiBBSICw/s1600/325px.jpg" height="320" width="219"></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">geekwagon.net at 325px</td></tr>
</tbody></table>
I've been playing around with <a href="http://getbootstrap.com/">bootstrap</a> more, and I like <i>almost </i>everything about it.<br>
<br>
I'm not a fan of where they choose break points for responsive design. No doubt they've put in more effort than me, but with their defaults a half-sized browser window on a 1280 x 1024 monitor brings up the shortened "hotdog" style menu.<br>
<br>
I am old fashion, I still have a 4:3 monitor (in my defense it is my secondary monitor). For geekwagon.net's more responsive redesign I made up my own break points. They are not perfect, but here is the thought behind them.<br>
<br>
<br>
<a href="http://blog.geekwagon.net/2014/03/responsive-break-points.html#more">Read more »</a>Jameshttp://www.blogger.com/profile/16357536770828429679noreply@blogger.com0tag:blogger.com,1999:blog-6959148.post-41080047931608909972014-02-16T14:38:00.002-06:002014-03-07T08:42:09.615-06:00Non-stop Bitcoin MiningIt's no secret I mine Bitcoins, but I don't bring up that I'm not very good for the obvious geek creed reasons. Today I finally made a change to my mining rig that I hope will end the occasional dreaded <i>"Idle Miner Notification"</i> from <a href="http://btcguild.com/">btcguild.com</a>.<br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrGus3wnmweOS0tJEV3dc8ztLEXOIj5zpjx-0CQ9-v934Wb6B3tP-HEZ46k8JQLWxQI8xkEp-PXYoq2oNmn3pguJ52pvZ2nRch8-N4i2-rpO6XHY2GJEi2dX9tJUahbtHrJM6cYQ/s1600/it+mines!.jpg" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrGus3wnmweOS0tJEV3dc8ztLEXOIj5zpjx-0CQ9-v934Wb6B3tP-HEZ46k8JQLWxQI8xkEp-PXYoq2oNmn3pguJ52pvZ2nRch8-N4i2-rpO6XHY2GJEi2dX9tJUahbtHrJM6cYQ/s1600/it+mines!.jpg" height="276" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Screen shot of the log file, how interesting and inefficient.</td></tr>
</tbody></table>
I have small mining setup, a mix of Block Eruptors and a single Butterfly Labs Jalapeno. We started having strange Internet connection issues, and I immediately assumed it was AT&T's fault (to be fair it usually is). Also about the same time bfgminer reported the Jalapeno was <span style="color: red; font-family: Courier New, Courier, monospace;">sick</span>. Never crossed my mind these issues were related, but once I sent the Jalapeno off to be RMA'd <strike>all</strike> most of our Internet problems cleared up.<br />
<br />
With the Jalapeno gone, bfgminer ran with no problems. With the Jalapeno the program would inexplicably give up, even with the new one back in action this still happens. As a good administrator I'm sure I could have looked for a log or an error message or something, but it is very easy to putty back in, hit the up arrow, enter, ctrl+A+D, and go on with life. I can even do it remotely with <a href="http://www.teamviewer.com/en/index.aspx">TeamViewer</a> because my home PC is on almost all the time (thanks for nothing logmein). Sometimes it goes for months without my need to intervene, other times only hours (and in the middle of the night).<br />
<br />
After nearly a year of manual restarts and an immeasurably small loss of <a href="http://bitcoin.stackexchange.com/a/117">Satoshis</a>, I've finally made a script to continually check if bfgminer is running and restart it if it's not. My apologies for not giving credit where it is due, most of this script came from a post on stackoverflow, but I'm not sure where.<br />
<br />
<script src="https://gist.github.com/deplicator/9040062.js"></script>
It is far from perfect, but so far so good. I'd love to hear anyone's two <strike>cents</strike> Satoshis on how to improve it. I also hope this is an aid to other small time miners.<br />
<br />
EDIT: March 4, 2014<br />
It didn't take me long to realize this was better to run as a cronjob. The biggest problem I had was multiple screens running, so I changed it over and made my log file a little better.<br />
<br />
My first attempt was to remove the pause line and add the script as a cronjob that runs every 5 minutes.<br />
<br />
The <a href="https://help.ubuntu.com/community/CronHowto">Ubuntu Wiki CronHowto</a> was helpful, especially the <b>Enable User Level Cron</b> section.<br />
<br />
I also update the log file to show a time. For weeks I thought everything was good, because you know, nothing went wrong. I was suspicious something wasn't quite right because the log file never showed the miners being restarted.<br />
<br />
Today the power went out, and when the server came back on I expected miners to be running within 5 minutes... they did not. I dug a little deeper and <a href="http://ubuntuforums.org/showthread.php?t=1503706&p=9424083#post9424083">this comment on the Ubuntu forms</a> pointed out my issue. There were a lot of comments about making sure the script was executable and user level cron was set up. My problem specifically had to do with how <a href="http://linux.die.net/man/1/screen">screen</a> works. I needed a -d for detach. The new script is in the gist, it's been tested and rocks along well.<br />
<br />
<br />Jameshttp://www.blogger.com/profile/16357536770828429679noreply@blogger.com2tag:blogger.com,1999:blog-6959148.post-82677060176131255162014-01-25T22:12:00.002-06:002014-01-25T22:14:22.946-06:00Ultima VII Party PlannerIn an effort to learn more about <a href="http://backbonejs.org/">backbone.js</a> I made a web application that is easily considered beautifully useless (beauty in the eye of the beholder, useless in the eye of everyone else). Really, this is probably one of the finest work of code writing I've accomplished to date and there are maybe ten people in the world who will use it.<br>
<div>
<br></div>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1ajyE_Bn6HpVJn4ZiDUzocrC4_t7kvWhYZQ_7jYKa3XSI4uTmputZbwIR9Oy53DG74heAtTG3O1ii7iB-Sl0QI5a64QP6SdcoEgDLNj3WO6uv6lUUT81NZ9Bc2EyF2Pe-llYHeQ/s1600/u7pp.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1ajyE_Bn6HpVJn4ZiDUzocrC4_t7kvWhYZQ_7jYKa3XSI4uTmputZbwIR9Oy53DG74heAtTG3O1ii7iB-Sl0QI5a64QP6SdcoEgDLNj3WO6uv6lUUT81NZ9Bc2EyF2Pe-llYHeQ/s1600/u7pp.jpg" height="320" width="279"></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Menion makes out like a bandit.</td></tr>
</tbody></table>
<div>
There is plenty of room for improvements, but I'd like to write about it anyway.</div>
<div>
<br></div>
<div>
The picture is an example of a typical, eight character, all level six party. You have a list of all trainers to go visit, who to train when you get there, and about where they are on the map. It also shows how much gold to take to each trainer, and the total cost of all training.</div>
<div>
<br></div>
<div>
Link:<br>
<a href="http://geekwagon.net/projects/u7pp/">http://geekwagon.net/projects/u7pp/</a></div>
<div>
<br></div>
<div>
Source:<br>
<a href="https://github.com/deplicator/U7PartyPlanner">https://github.com/deplicator/U7PartyPlanner</a></div>
<div>
<br>
<br></div>
<div>
</div><a href="http://blog.geekwagon.net/2014/01/ultima-vii-party-planner.html#more">Read more »</a>Jameshttp://www.blogger.com/profile/16357536770828429679noreply@blogger.com20tag:blogger.com,1999:blog-6959148.post-45676873172695812772013-12-28T14:32:00.000-06:002013-12-28T14:36:40.369-06:00Gingerbread House Competition 2013This year was open to anyone to submit a gingerbread house, so Agatha and I cooked up a little hut on stilts for the Hawaiian themed contest. I used the term cooked metaphorically because we really modified a kit and went from there. The only thing we made was icing (see below for secret recipe).<br>
<br>
Agatha did all the best parts, like the water, tiki masks, palm trees, and decoration. All I did was construction.<br>
<br>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhk4tTr3nUx9Pr0QEc7AKzYrAJlEnorS11fd2BDHfcM4RJ4cej2l6igNBWWZRW-1pHyr52_bdn7LEwhoozF0E_cu_B-yG5rUX-600b2nXNwXsrGK3wEE_VYT8kTw9S2rXG3wrToog/s1600/2013-12-28+13.34.31.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="272" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhk4tTr3nUx9Pr0QEc7AKzYrAJlEnorS11fd2BDHfcM4RJ4cej2l6igNBWWZRW-1pHyr52_bdn7LEwhoozF0E_cu_B-yG5rUX-600b2nXNwXsrGK3wEE_VYT8kTw9S2rXG3wrToog/s400/2013-12-28+13.34.31.jpg" width="400"></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><br></td></tr>
</tbody></table>
<a href="https://plus.google.com/photos/100479632575151546186/albums/5962540315208458033">Photo Album</a> I didn't think to take photos while I was at the contest, but I'll add competitors houses here when I get them.<br>
<br>
<br>
<br>
<a href="http://blog.geekwagon.net/2013/12/gingerbread-house-competition-2013.html#more">Read more »</a>Jameshttp://www.blogger.com/profile/16357536770828429679noreply@blogger.com3tag:blogger.com,1999:blog-6959148.post-43633764394267060582013-12-08T11:38:00.000-06:002013-12-08T11:55:34.534-06:00Security Through Obscurity AnalogyI missed my November post, which had me thinking about productivity again. Going back through my notes on blog post ideas I always seem to come back to security.<br />
<br />
To be honest, I don't like security. I'd much rather live in a perfect world where it wasn't necessary. On the other hand, the need for security drives innovation.<br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijMvBl1RuwOpdgoufhUfq5OOf77zbRKIavyTEi_mJBvq5Z_lSJK7VwOfvcXq3m4PIkB94m2ObYNunoShGv4-2Pbd2CfXiT1Git19E6a0JyNtTvUyBC7gR7FsHpJoYUgvnYhiJF3g/s1600/ku-xlarge.jpg" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijMvBl1RuwOpdgoufhUfq5OOf77zbRKIavyTEi_mJBvq5Z_lSJK7VwOfvcXq3m4PIkB94m2ObYNunoShGv4-2Pbd2CfXiT1Git19E6a0JyNtTvUyBC7gR7FsHpJoYUgvnYhiJF3g/s1600/ku-xlarge.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Poor guy is going to get made fun of by the geek <br />
community for the rest of his acting career, but my gf<br />
thinks he's cute and that's what matters to actors.</td></tr>
</tbody></table>
One of my favorite misunderstood security phrases is "security through obscurity". Even though it is what it sounds like, <a href="http://io9.com/5960384/just-how-inaccurate-were-the-hacking-scenes-in-skyfall">Hollywood has been known to misuse</a> it (No Mr. Bond writers--I expect you to Google phrases before you use them).<br />
<br />
As an IT guy working for smaller companies I've had the luxury of making practical use of security through obscurity. It comes down to the fact no one cares or knows my servers exist. Even if they did know about them there isn't anything on them worth the effort.<br />
<br />
I'd imagine this is true for the majority of businesses, which is why only the big corporations with real secrets higher security experts. The rest of us are okay with patches from Microsoft and Canonical.<br />
For years I've had conversations about the phrase. Eventually I started using an analogy, and then expanded on it.<br />
<br />
Think of the idea of security through obscurity as an unlocked box filled with a million dollars somewhere in New York city. No one knows where the box is, what is in it, or even that it exist. The box is obscure. It is secured only by the this fact no one knows about it. If someone was to stumble upon it, they'd get a million dollars.<br />
<br />
Now normal security practices might put a luggage lock on this box. If anyone stumbles on it they will see it's locked and move on unaware of the box's value. If this is analogous to the Internet there are now hundreds of thousands of boxes all over the city. Most filled with pocket change and not worth the effort to break the luggage lock. A mischievous person might break into a few boxes just to see if they can, but odds are they will get nothing of value out of it.<br />
<br />
Of course, we could extend the analogy to include large corporations that have security experts to better secure their box (maybe a bullet proof master lock). Just like in the real world that will let people know there is something better in that box than the others. Perhaps this makes them a target, maybe it makes some steer clear... I couldn't say, I'm not a mischievous hacker.<br />
<br />
All I can say for sure is the luggage lock that protects my worthless box that looks like the other millions of worthless boxes has always worked for me. I enjoy reading others weigh in on these kinds of topics, but when it comes down to it "security through obscurity" is what most of us use because in the grand scheme of things there isn't much worth protecting.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;">
<tbody>
<tr><td style="text-align: center;"><span style="margin-left: auto; margin-right: auto;">
<a href="http://xkcd.com/538/"><img border="0" height="243" src="http://imgs.xkcd.com/comics/security.png" width="400" /></a></span></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="background-color: white; color: #222222; font-family: Consolas, 'Lucida Console', monospace; font-size: 12px; text-align: left; white-space: pre-wrap;">Actual actual reality: nobody cares about his secrets.</span><br />
<span style="background-color: white; color: #222222; font-family: Consolas, 'Lucida Console', monospace; font-size: 12px; text-align: left; white-space: pre-wrap;">(Also, I would be hard-pressed to find that wrench for $5.)</span></td></tr>
</tbody></table>
<br />
<br />
<br />Jameshttp://www.blogger.com/profile/16357536770828429679noreply@blogger.com2tag:blogger.com,1999:blog-6959148.post-85142090758855546352013-10-20T15:23:00.000-05:002013-10-20T15:23:02.866-05:00Length trumps complexity The idea of password length trumping password complexity has been around since before "<a href="http://xkcd.com/936/">correcthorsebatterystaple</a>", but lately it's been on my mind because I'm in a class that covers permutation and combination.<br />
<br />
The idea can be miss leading. While working out some stuff on a scratch pad the first thing I chose was a five character password comprised of only lower case numbers. <a href="http://www.blogger.com/blogger.g?blogID=6959148" title="Keep the math simple, I'm not that bright">The math comes to</a><br />
<br />
<blockquote class="tr_bq">
26^5 = 11.8 million unique passwords</blockquote>
<br />
Increasing the length by one creates 26x more unique passwords.<br />
<br />
<blockquote class="tr_bq">
26^6 = 308.9 million unique passwords </blockquote>
But doubling the complexity creates 31x more unique passwords.<br />
<blockquote class="tr_bq">
52^5 = 380.2 million unique passwords</blockquote>
What was my problem? The math seems simple enough, but the problem is I was only considering a simple case. The real world is a bit more complicated than lower case and upper case characters. (also, the interesting thing about exponents is they are exponential).<br />
<br />
A better, more real world, example. Consider the complexity of an eight character password that could be made with lower case, upper case, digits, and 14 special characters. This gives 76 characters to pick from.<br />
<blockquote class="tr_bq">
(26 + 26 + 10 +14)^8 = 1.1 quadrillion unique passwords (<a href="http://en.wikipedia.org/wiki/Long_and_short_scales">short scale</a>)</blockquote>
That's a lot of passwords. But to me that begs the question, "Well how long would it have to be to make 1.1 quadrillion passwords if it was made up of only lower case letters?" The answer is surprisingly short.<br />
<blockquote class="tr_bq">
26^11 = 3.6 quadrillion unique passwords</blockquote>
We had to go to 11 characters because 26 to the power of 10 is only in the trillions. For three more characters I can make more passwords using only lower case letters. It's a neat little Sunday afternoon experiment, but <a title="No, no it's not important.">is this important in any way?</a><br />
<br />
My take away from this is that long simple passwords are going to be easier to remember and more secure. I'm a second year computer science major and have worked in IT for about almost a decade, and I know it is easier for me to remember "icanhazpassword" than "P@sSw04d".<br />
<br />
<blockquote class="tr_bq">
icanhazpassword = 26^15 = 1.7 sextillion possible passwords assuming the attacker knows it is only a lower case password.</blockquote>
<blockquote class="tr_bq">
P@sSw04d = 95^8 = 6.6 quadrillion, that is using <a href="http://en.wikipedia.org/wiki/Printable_characters#ASCII_printable_characters">all ASCII printable characters</a> </blockquote>
Which brings me to my point; do attackers even bother to check for lower case only? I don't remember the details (and the information is now burred in the Internet), but a while back when the bitcoin exchange mtgox.com was hacked a list of usernames and passwords made it's rounds on the bitcoin forums (all dead links these days). My passwords was 10 characters long and was exposed, in plain text right next to my email. That's an eye opener for anyone. Granted my password was lower/upper and digits (no special characters) but there were plenty of other passwords on there that were more complex.<br />
<br />
Now I can't go back and say for sure because I don't have the data, but it would make since the cut off was length not complexity. Odds are they ran a dictionary attack to get all the easy passwords (mine would not have been picked up in a dictionary attack), then a brute force attack for anything else. Based on my password, the brute force attack looked for at least lower/upper and digital characters. Which makes me think even if my password was all lower case, but really long, an attacker isn't going to know to check only lower case. Just to be sure, I like to have something more than just lower case though, but knowing what I know now I don't go nuts with the complexity.<br />
<br />
<a title="The most important thing to learn from post.">Side note: </a>you look way cooler entering a 32 character password you know well than hunting and pecking for 8 characters and toggling the shift key.<br />
<br />Jameshttp://www.blogger.com/profile/16357536770828429679noreply@blogger.com1tag:blogger.com,1999:blog-6959148.post-70491202312604651872013-09-29T16:29:00.000-05:002013-09-29T16:29:03.312-05:00Bitcoin mining - Moving from GPUs to ASCIs<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRsDeudNPK8FTlzGVhC0_zKK4j_v3s3w1MuJE1jPKGQfiJNDgF_zTyIZ_d4XavwXlpBlJVTgtrs26caf-MSDCLzel5kqGp7qjjgVOIxZhRSZl0NNd1jX5zSuuYWs6YqJNGaw2dyg/s1600/2013-09-29+15.58.27.jpg" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRsDeudNPK8FTlzGVhC0_zKK4j_v3s3w1MuJE1jPKGQfiJNDgF_zTyIZ_d4XavwXlpBlJVTgtrs26caf-MSDCLzel5kqGp7qjjgVOIxZhRSZl0NNd1jX5zSuuYWs6YqJNGaw2dyg/s320/2013-09-29+15.58.27.jpg" width="180" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Amazing mining rigs belong<br />in crappy cases.</td></tr>
</tbody></table>
Application-specific integrated circuit, that's what ASCI stands for. I always have a hard time remembering, not only what it stands for but what order the letters go in (for some reason I always type ACSI). Bottom line is that it really doesn't matter when it comes to bitcoin mining (also, is Bitcoin supped to be capitalized--maybe we need a consortium to answer these questions).<br />
<br />
Recently I retired my two AMD Radeon HD 5830's because the difficulty has skyrocketed so high it's not worth the electricity to run them. I thought about switching them to litecoin, but wasn't happy with the way it worked. I've been easy on these cards. They always had a small overclock (10%), and I kept the intensity down to keep temperatures low. I decided longevity is better than higher speed, and they did a good job for a couple of years. Most recently I sold them on ebay for about half what I paid. Financially speaking these two video cards are the highest return on investment than anything I've ever done with money.<br />
<br />
I mine on <a href="https://www.btcguild.com/">btcguild</a> (who doesn't these days?), and when they started offering ASCI block erupters for bitcoins I jumped on it. Each one of these things mines faster than the a 5830, and they use less electricity--far less. The fact I could buy them with bitcoins made the deal great.<br />
<br />
The only downside was I had to spend real money USB hubs (block erupters are USB devices), and without much thought I picked up a <a href="http://www.amazon.com/gp/product/B0051PGX2I">Satechi 12 port hub</a>. To Satechi's credit, they have a great customer service department. Unfortunately this product was not so great. I fully expected the 2 amp DC converter not to power 10 block erupters and a fan, but this hub limits the power... not the converter. When I wired up my own <a href="http://www.amazon.com/gp/product/B009013P16/">50 amp power converter</a> I was still limited to the number of erupters that would run. Really who buys a 12 port USB hub to run 12 low power devices? Lesson learned: there is a lot of great information in Amazon comments. Had I read them I would have purchased a hub that works the first time around. After leaving a 1 star product review, Satachi refunded the full cost including shipping of my order. That was even after I informed them I cut the power cable to make use of the DC jack with my other power converter. Not many companies I know would go to such lengths, so props to them.<br />
<br />
What was the right hub? Fellow miners and Amazon reviewers agree <a href="http://www.amazon.com/gp/product/B005NGQWL2/">that Anker makes the right hub</a> for block erupters. They easily power 9 erupters and <a href="http://www.amazon.com/gp/product/B003XN24GY/">a fan</a> (I'm really sad to say I broke one of my fan blades... be careful with those things--they are the delicate flowers they look like). Nine erupters per hub makes for almost 3Gh/s. Three hubs later I was mining at ~9Gh/s. Which felt like a lot until I realized difficulty was jumping up like crazy because I am one of thousands of miners moving to easy to acquire ASCI equipment.<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJrZQk9MLORvpIrvCLCHGu7wWyCQF2MT1CM04R0_zkIQhwlYdxvtltMcXGNCa5H3lQRY0GJsZE8DbviKk5WDJ5P20jDatmTk637CJtY37BGMngUR56f9MVvrUPSBg0HVkRYeYBOA/s1600/2013-09-29+15.57.38.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="279" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJrZQk9MLORvpIrvCLCHGu7wWyCQF2MT1CM04R0_zkIQhwlYdxvtltMcXGNCa5H3lQRY0GJsZE8DbviKk5WDJ5P20jDatmTk637CJtY37BGMngUR56f9MVvrUPSBg0HVkRYeYBOA/s320/2013-09-29+15.57.38.jpg" width="320" /></a><br />
As dumb luck would have it, right as the difficulty got so high that my 9Ghz/s was bringing in as little coin as my two old video cards, I get an email from <a href="http://www.butterflylabs.com/">Butterfly Labs</a>. The Jalapeno I ordered in February was shipped. It came a couple of days later in nicer packaging than I expected. They even included this coffee cup with a giant handle. Doesn't that handle seem giant? When I hold it my hand feels really far from the coffee.<br />
<br />
This added ~7Gh/s to my mining efforts. No doubt after a jump or two in difficulty it will all be in vain.<br />
<br />
Not to be a product review post, but the Jalapeno was much louder than I expected. In it's favor, it is every bit as easy to mine with as block erupter.<br />
<br />
I managed to whip up a <a href="https://github.com/deplicator/miner-status">lame attempt at monitoring software</a>. If you can call it software, it's just a website that grabs the RPC info from bgfminer. It's been a good learning experience as it is my first attempt with the backbone framework. This has been my current side project, and hopefully it will get better as I find time to tinker with it.<br />
<br />Jameshttp://www.blogger.com/profile/16357536770828429679noreply@blogger.com5tag:blogger.com,1999:blog-6959148.post-3907753752281375692013-08-03T15:46:00.000-05:002013-08-03T15:47:34.255-05:00The End of TimeThanks to everyone for the kind feedback about <a href="http://geekwagon.net/projects/xkcd1190/">At Your Own Pace</a> and especially to the contributors who pushed the project way beyond anything I could have done alone. It is flattering to be <a href="http://xkcd.com/1190">linked to by the comic</a>.<br />
<br />
Just because the comic ended doesn't mean we can't have any more fun with it. I realized I had all this data so <a href="http://geekwagon.net/projects/xkcd1190/charts">I made a chart</a>. It's not the greatest chart, but can be zoomed in by clicking and dragging. Also the chart fills up the window, so bigger the better (there are 3099 frames)<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://geekwagon.net/projects/xkcd1190/charts/"><img border="0" height="188" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMW5w9YKcJGpFTEsiIN6Mc_pSd7gzDDn2CPSabPCxXZRCitKdYhG87fncwV4smq2MawkvSvB4r68PlOXVxdTxC4fasZbLpPvP-ZK1doook8D62BYWoT6Xhp1YDvrokOalFL9SaAA/s400/1190chart.png" width="400" /></a></div>
<br />
<br />
So what does it mean?<br />
<br />
Hovering over each point will show some numbers. Here is an example from frame/point 1. Sorry the display is a little confusing.<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">(1, 37,411) Size: 4,322</span><br />
<br />
Inside the parenthesis, the first number up to the first comma is the frame.<br />
<br />
The second number is how much action that frame got according to Google Analytics during the month of July. If it is a large number, like this frame 1 example, the chart library is kind enough to throw in a confusing second comma. In this example fame 1 got 37,411 hits (that would be direct links to geekwagon.net/projects/xkcd1190/?frame=1). It should also be pointed out, frame numbers with four digits do not have a comma.<br />
<br />
The <span style="font-family: Courier New, Courier, monospace;">Size:</span> is the number of all time Yes votes the frame has received from the vote submission system. I almost deducted No votes, but that returned negative numbers I wasn't sure what to do with.<br />
<br />
Bitly also records clicks and shares. I found their data difficult to work with in volume so it is not included on this chart.<br />
<br />
Some of the data is predictable, but there are some interesting oddities.<br />
<br />
The raw data, <a href="https://docs.google.com/spreadsheet/ccc?key=0AhWhIQONCuztdEIxR2JJZ2VJdUtVQlA0RzRadmtMbnc&usp=sharing">available on Google Docs</a>, includes no votes. If anyone has an idea for a better chart or two (shouldn't be hard to get better than this) please share it. I'd like to see it too. I'll update the data in a couple of weeks, no doubt it will get interesting as Time goes on.Jameshttp://www.blogger.com/profile/16357536770828429679noreply@blogger.com4tag:blogger.com,1999:blog-6959148.post-26682173644090116402013-05-25T19:05:00.000-05:002013-05-25T21:36:59.120-05:00AYOP UpdatesAll my blog posts have been about my <a href="http://geekwagon.net/projects/xkcd1190/">At Your Own Pace</a> project, but that's what sucks up most of my free time these days. Today I decided the acronym, AYOP, is pronounced a-ya-op (almost like awop but with a y instead of a w).<br />
<br />
Big news today, the database version of the site is now the default. It was set up separately for testing and a number of people sent good feed back on it. It sucked much less than I expected. Now anyone can vote for frames to be special. I've also set up a section below the comic image that shows how many votes a frame has received and whether or not it is a debated frame. Currently there are only a few debated frames; 1503 and a couple in the low 1400's are the only I know of. They're subject to change as people vote.<br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgD9mgre33ov6puQZfc8p4HoVbOdZdl4SM11pyILhxW-Vb2wn3XVhgCnBKMQVD0FO9EtHrIjr7ky1dB7GDAQyoLEbk1vnLdPOtbFKKHTGdD4EWlq_upaPI6XvV8l1Ui7LwFXJBV-A/s1600/2013-05-25+18.45.53.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgD9mgre33ov6puQZfc8p4HoVbOdZdl4SM11pyILhxW-Vb2wn3XVhgCnBKMQVD0FO9EtHrIjr7ky1dB7GDAQyoLEbk1vnLdPOtbFKKHTGdD4EWlq_upaPI6XvV8l1Ui7LwFXJBV-A/s320/2013-05-25+18.45.53.jpg" width="256" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Photo courtesy of my girlfriend who loves pink.</td></tr>
</tbody></table>
In addition to that, <a href="http://geekwagon.net/projects/xkcd1190/mobile/">now there is a mobile site</a> (that link works for desktop users too, but be warned you're going to see some huge stick figures). It's not much but it shows the comic at 100% width and has larger navigation buttons. I've only got two mobile devices to test it on, so it might not be great. Added bonus: it comes with massively reduced features; no preloading, no image difference, no auto play, no nifty panels that open and close.<br />
<br />
The mobile redirect uses a script from <a href="http://detectmobilebrowsers.com/">detectmobilebrowsers.com</a>, which is a nice service. I had no idea how to redirect for a mobile device and that was the first search result I found.<br />
<br />
Finally, two new panels at the bottom that show all frames for the last 24 hours or the last week, for quick ketchup.Jameshttp://www.blogger.com/profile/16357536770828429679noreply@blogger.com11tag:blogger.com,1999:blog-6959148.post-66033475875439124242013-05-08T20:11:00.001-05:002013-05-08T20:11:28.443-05:00Lessons Learned on XKCD Time - At Your Own Pace<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOcT0t4YIPgtF4xK6tD-odSGX2CljKc4n6R9S2TChjwnZ6u12cER8s2gYeEh6k99Bg6tV4KGD7pRnD-3Ohyphenhyphen0965fRCYPYacjyGZFyxEaHYvistNMRheDlE8N6du2AraCOgWwH31A/s1600/24674689fc794eda3d608644e56ec586f4cc47dcb0d9bd5bbb2d520505bbdfb1.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="228" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOcT0t4YIPgtF4xK6tD-odSGX2CljKc4n6R9S2TChjwnZ6u12cER8s2gYeEh6k99Bg6tV4KGD7pRnD-3Ohyphenhyphen0965fRCYPYacjyGZFyxEaHYvistNMRheDlE8N6du2AraCOgWwH31A/s320/24674689fc794eda3d608644e56ec586f4cc47dcb0d9bd5bbb2d520505bbdfb1.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The frame showing when I started this post.</td></tr>
</tbody></table>
I started compiling a list of things I've learned from this XKCD At Your Own Pace project. Arguably I've learned more on this than what I learned last semester at school.<br />
<br />
The number one lesson learned was an unexpected feeling. I know putting a project on Github is opening it up to the world to do with as it pleases. In my case it was this guy named <a href="https://github.com/MaPePeR">MaPePeR</a>. I'm somewhat ashamed to admit it now, but my very first thought was "Who's this guy fiddling with <i>my</i> code?" Then I started reading what he changed. My next thought was, "Holy crap all of Github must think I'm a newb," because the changes he made were great. They made sense and I learned something from them. I found I liked it. Social coding who knew right? I was so excited about it I made my own <a href="http://geekwagon.net/ufl/license.txt">awful software license</a>. It's bad, don't use it.<br />
<br />
That was my big eye opener. I'm more attached to my code than I expected to be, but letting it go has been wonderful. The project is much better for it. I might have to dance with the shift key to type his Github handle, but MaPePeR is a good programmer. I'm glad to have his input.<br />
<br />
Some random lessons<br />
<ul>
<li>I should have called it "At Your Pace".</li>
<ul>
<li>Because that's shorter and I keep typing it anyway.</li>
<li>Also AYP is a cooler acronym than AYOP.</li>
</ul>
<li>I enjoy working with others. Bouncing ideas around, getting feedback. It's a fun way to "refactor" ideas quick.</li>
<li>Firefox is the pain-in-the-butt browser now (when you choose to ignore IE<=9).</li>
<li>Web Design, granted plenty more to learn here but I was surprised to get positive feedback from how the site looks.</li>
<li>Speaking of feedback, user feedback is awesome. Not only does it keep me interested in a project it's a wonderful source of unsolicited ideas.</li>
<ul>
<li>The many "step" buttons was from user feedback, so was the linkable frame differences.</li>
<li>The play back at ludicrous speed was our idea, but everyone was thinking it.</li>
<li>We were able to troubleshoot a bug that only came up on Mac's because of user feedback. Neither of us own a Mac (okay MaPePeR troubleshooted the bug and I heard about it).</li>
</ul>
</ul>
<div>
<br /></div>
<div>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjd_ej-GS3HoiYetwszaTfBh_FxDC7NFOj4MwLg6auc1_WZgiaNFCeGfubRSyueQL2OB0_v77g6pfmFB1eA7wdXFpIFwPN6yF1GgEs43GSglO4z9P04dWW-e1E1_RSXX4iUlRx0Fw/s1600/f62106871f568ff30f146a6bc3bb34639aaabbcdec60d99362b2d51002a73c6d.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="228" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjd_ej-GS3HoiYetwszaTfBh_FxDC7NFOj4MwLg6auc1_WZgiaNFCeGfubRSyueQL2OB0_v77g6pfmFB1eA7wdXFpIFwPN6yF1GgEs43GSglO4z9P04dWW-e1E1_RSXX4iUlRx0Fw/s320/f62106871f568ff30f146a6bc3bb34639aaabbcdec60d99362b2d51002a73c6d.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Frame showing when I finished this post</td></tr>
</tbody></table>
Things I've never had to use before now</div>
<div>
<ul>
<li>Git merge, because no one forked my junk.</li>
<li>How to handle a merge conflict. I could really use more practice at this, but at least I've done it once.</li>
<li>Getting url variables with Javascript.</li>
<ul>
<li>Funny story, I was doing this with PHP and having the PHP write Javascript. Yeah that was like the first thing pointed out to me.</li>
</ul>
<li>Preloading bunches of images (when necessary), okay I didn't write the script that made it happen, but I get why it's great now.</li>
<li>Bitly api was watching out for guys like me (see figure 1).</li>
<li>Google Analytics is cool (I like data see figure 2).</li>
<ul>
<li> particularly data hub activity (I can troll on a new level).</li>
</ul>
</ul>
</div>
<div>
<br /></div>
<div>
A list of things I never knew existed until I did this project and started working with other people.</div>
<div>
<ul>
<li>github can close issues by writing in the commit.</li>
<li>git bisect, still haven't used it but man that sounds crucial.</li>
<li>jslint (I may have heard of it, but never knew what it was).</li>
<li><a href="http://toroid.org/ams/git-website-howto">http://toroid.org/ams/git-website-howto</a></li>
<li><a href="http://en.wikipedia.org/wiki/Plenken">http://en.wikipedia.org/wiki/Plenken</a> Really, that's a thing.</li>
<li>I am the only person who knows about XKCD at my University.</li>
</ul>
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhckV6foF044kDL2XKCGajJHhphaHx1k2osYnpWtwxv_LmoK6MwqZjGVeuxdW-2yl0Kkwj-9qNo80KjORxl9foHS-nttybI_CRCpVAWR6bSaphxyz0pXG8_XhuvWDj4IDD4nX47Qw/s1600/bitlychart.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="203" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhckV6foF044kDL2XKCGajJHhphaHx1k2osYnpWtwxv_LmoK6MwqZjGVeuxdW-2yl0Kkwj-9qNo80KjORxl9foHS-nttybI_CRCpVAWR6bSaphxyz0pXG8_XhuvWDj4IDD4nX47Qw/s400/bitlychart.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">figure 1 - I had a bug in the bitly link creation code.</td></tr>
</tbody></table>
<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtl-VHrMnH3ICdqV7HLwNXe8LOH0CfFVOO9R1xikAgSDdqlXdV5kpNP20j3nxzYFEjD7js-38u2gUetY6jF8cG8MnEuFVBhk2Bzgd4siJzirRpT__ebfVv_j2w5obYeGzbOtGORg/s1600/analytics.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="203" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtl-VHrMnH3ICdqV7HLwNXe8LOH0CfFVOO9R1xikAgSDdqlXdV5kpNP20j3nxzYFEjD7js-38u2gUetY6jF8cG8MnEuFVBhk2Bzgd4siJzirRpT__ebfVv_j2w5obYeGzbOtGORg/s400/analytics.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">figure 2 - Google Analytics</td></tr>
</tbody></table>
<div>
This is not a complete list, but it's a start.</div>
</div>
Jameshttp://www.blogger.com/profile/16357536770828429679noreply@blogger.com15tag:blogger.com,1999:blog-6959148.post-28473619729847797862013-04-10T11:02:00.000-05:002013-04-29T19:41:10.019-05:00Thanks Randall Munroe<b id="internal-source-marker_0.09279102459549904" style="font-weight: normal;"><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">I don't know you and you definitely don't know me, but I am a regular reader of your comic </span><a href="http://xkcd.com/" style="text-decoration: none;"><span style="color: #1155cc; font-family: Arial; font-size: 15px; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">XKCD</span></a><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> and your </span><a href="http://what-if.xkcd.com/" style="text-decoration: none;"><span style="color: #1155cc; font-family: Arial; font-size: 15px; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">What If?</span></a><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> blog. Thank you for helping me gain a little confidence.</span></b><br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiI3d6adA3RsqjSyYoxsS0FUH-dtmvLKaRSU6lZSTurEUApOVLwXCr_iOzb5pDRgOOod-QeFgAH3wddnAX3Mfc0axjoAVmv8pISlt-n5gDi72n0JckuOzVvQ3k1TPugDjSRWL5PAw/s1600/analytics.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="138" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiI3d6adA3RsqjSyYoxsS0FUH-dtmvLKaRSU6lZSTurEUApOVLwXCr_iOzb5pDRgOOod-QeFgAH3wddnAX3Mfc0axjoAVmv8pISlt-n5gDi72n0JckuOzVvQ3k1TPugDjSRWL5PAw/s400/analytics.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Guess what day I posted it to <a href="http://www.explainxkcd.com/wiki/index.php?title=1190">explainxkcd.com</a>?</td></tr>
</tbody></table>
<b id="internal-source-marker_0.09279102459549904" style="font-weight: normal;"></b><br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<b id="internal-source-marker_0.09279102459549904" style="font-weight: normal;"><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">The </span><a href="http://xkcd.com/1190/" style="text-decoration: none;"><span style="color: #1155cc; font-family: Arial; font-size: 15px; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Time</span></a><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> comic has been all around interesting, but for me it's been exciting. It represents a crossroad of my mediocre coding skills and the XKCD fans. For the first time I am decent enough to produce a website people are using. This is the whole reason I started learning to code.</span></b></div>
<b id="internal-source-marker_0.09279102459549904" style="font-weight: normal;"><br /><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"></span></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<b id="internal-source-marker_0.09279102459549904" style="font-weight: normal;"><a href="http://geekwagon.net/projects/xkcd1190/" style="text-decoration: none;"><span style="color: #1155cc; font-family: Arial; font-size: 15px; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">http://geekwagon.net/projects/xkcd1190/</span></a></b></div>
<b id="internal-source-marker_0.09279102459549904" style="font-weight: normal;">
<br /><a href="http://geekwagon.net/projects/xkcd1190/" style="text-decoration: none;"><span style="color: #1155cc; font-family: Arial; font-size: 15px; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"></span></a></b><br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<b id="internal-source-marker_0.09279102459549904" style="font-weight: normal;"><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">It's a project that has undergone a few changes since it gained popularity. The initial version didn't even use CSS. </span><a href="http://aubronwood.com/xkcd-time/" style="text-decoration: none;"><span style="color: #1155cc; font-family: Arial; font-size: 15px; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Aubron Wood's</span></a><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> post helped me with the idea of how to grab the pictures. It also represents my first use of </span><a href="https://github.com/deplicator/xkcdTime_atyourownpace" style="text-decoration: none;"><span style="color: #1155cc; font-family: Arial; font-size: 15px; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">github</span></a><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> issues--a feature request for previous and next buttons! </span></b></div>
<b id="internal-source-marker_0.09279102459549904" style="font-weight: normal;">
<br /><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"></span><div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">I have intentionally chosen not to add ‘Like’ and ‘+1’ buttons because I am tired of seeing them all over the web. Some places make sense, but so many pages are cluttered with "share this".</span></div>
<br /><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"></span><div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">I don't like to admit it, but I often don't have the confidence to post things for fear of ridicule. I know it’s silly, and it’s taken a long time to change my thinking to "who cares?" So I wanted to thank the creator of XKCD because he has motivated me to share something I did. That is, to step out of my humble comfort zone and show a little pride (yes, I am an Ultima fan). For the first time ever I have accounts on </span><a href="http://www.reddit.com/user/Deplicator/" style="text-decoration: none;"><span style="color: #1155cc; font-family: Arial; font-size: 15px; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Reddit</span></a><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> and </span><a href="https://news.ycombinator.com/user?id=Deplicator" style="text-decoration: none;"><span style="color: #1155cc; font-family: Arial; font-size: 15px; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Hacker News</span></a><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">. My project has earned a few thumbs down ratings, but the feedback from folks who use it has been a wonderful experience.</span></div>
</b><br />
<br />
<b>Update: April 13, 2013</b><br />
I got a few more hits than my usual 2 or 3 per month on this one, so here is some more about this project.<br />
<br />
There is a log file that gets made from the cronjob and bitly (that's new) url shortener code. Some pretty good oops'es in there.<br />
<a href="http://geekwagon.net/projects/xkcd1190/log.txt">http://geekwagon.net/projects/xkcd1190/log.txt</a><br />
<br />
This is the data file that holds the list of images.<br />
<a href="http://geekwagon.net/projects/xkcd1190/data.txt">http://geekwagon.net/projects/xkcd1190/data.txt</a><br />
<br />
And this is the bitly data file, admittedly not interesting, but if you ever need to prove someone has used a space separated value file, there it is.<br />
<a href="http://geekwagon.net/projects/xkcd1190/bitlydata.txt">http://geekwagon.net/projects/xkcd1190/bitlydata.txt</a><br />
<br />Jameshttp://www.blogger.com/profile/16357536770828429679noreply@blogger.com15tag:blogger.com,1999:blog-6959148.post-31641136645566217172013-03-26T09:21:00.000-05:002013-03-26T09:21:10.290-05:00Acronis Bootable Agent Management Console frustration (crtl+m is the answer)I decided a long time ago my blog is here to help me and whoever shows up (both of you). This morning I have been reminded of something that is annoying about Acronis' recovery disc and I spent all of five frustrating minutes looking up things I've looked up before.<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiehyphenhypheniDUDmgxcxVyJNopxSGhgTA1nx0B2472yvFGgRpTwgKDP40TyXvJ5uiAISA_WhuqYX5gXiV9rk1PF6FS5mhMzUAmm-CaEa126B6HztQMTnm_wqlYDRKBxR4xizdjT3K2KOY8g/s1600/keyboradnav001-300x219.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiehyphenhypheniDUDmgxcxVyJNopxSGhgTA1nx0B2472yvFGgRpTwgKDP40TyXvJ5uiAISA_WhuqYX5gXiV9rk1PF6FS5mhMzUAmm-CaEa126B6HztQMTnm_wqlYDRKBxR4xizdjT3K2KOY8g/s1600/keyboradnav001-300x219.png" /></a>I've <a href="http://blog.geekwagon.net/2011/09/dear-acronis-you-let-me-down.html">whined about Acronis before</a>, and over all I am satisfied with their business products. In my opinion they get the hard parts of backup and recover done so well that the shortcomings of their UI are more noticeable. Here is a short list of my complaints with Acronis Bootable Agent Management Console.<br />
<br />
<ul>
<li>Tabbing through text boxes don't always show a flashing cursor, so I have no idea where I am</li>
<li>Tab navigation doesn't make sense on some screens.</li>
<li>Tab navigation doesn't scroll the screen (and most of the time I'm in recover mode the screen is 1024x768 <i>or less</i>)</li>
<li><b>Not all menu items are accessible with the keyboard</b></li>
</ul>
<div>
That last one is solvable through a <a href="http://kb.acronis.com/content/6260">lame implementation of using the mouse through the keyboard</a>, but it creates it's own list of nitpicks. I end up in the recovery console regularly enough without mouse support it becomes annoying, but I never remember <b><span style="font-size: large;">crtl+m</span></b>. That's why it's so big, next time I can't remember it I can come here and find it in less time than looking it up from scratch.</div>
<div>
<br /></div>
<div>
<br /></div>
<br />
<br />
<br />
<br />Jameshttp://www.blogger.com/profile/16357536770828429679noreply@blogger.com31tag:blogger.com,1999:blog-6959148.post-86173360599914104692013-02-26T07:09:00.001-06:002013-05-09T13:37:18.849-05:00The Date Command... I mean Environmental Variable<br />
It clicked for me how the date <strike>command</strike> environmental variable works in Windows. Seems like such a simple idea, and for all the information on the Internet about it no one explains it like this (at least not that I've found). Most only show what to type to get a desired result.<br />
<br />
Let's say you run<span style="font-family: Courier New, Courier, monospace;"> md %date:~10,4%</span> from a command prompt. You just made a folder named 2013. Unless you run that same command a year from now, then you'll make a folder named 2014. This can get complicated quick. Consider:<br />
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace;">z:\logs\%Date:~-4,4%-%Date:~-10,2%-%Date:~-7,2%_Server1.txt</span></blockquote>
This is a file at "<span style="font-family: Courier New, Courier, monospace;">z:\logs\2013-02-26_Server1.txt"</span><span style="font-family: inherit;">. Wel</span>l, for today anyway.<br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">At it's </span>simplest<span style="font-family: inherit;"> you can copy and paste what you need below (why not that's what the rest of the Internet tells you to do--if you want to know why these work don't skip the last section).</span><br />
<blockquote class="tr_bq">
<ul>
<li><span style="font-family: inherit;">Four Digit Year</span><span style="font-family: Courier New, Courier, monospace;"> %Dat</span><span style="font-family: 'Courier New', Courier, monospace;">e:~-4,4%</span></li>
<li><span style="font-family: inherit;">Two </span>Digit Month<span style="font-family: 'Courier New', Courier, monospace;"> %Date:~-10,2%</span></li>
<li><span style="font-family: inherit;">Two digit Day</span><span style="font-family: 'Courier New', Courier, monospace;"> %Date:~7,2%</span></li>
</ul>
</blockquote>
<span style="font-family: inherit;">Note that in the considered example these </span>chunks<span style="font-family: inherit;"> of text are </span>separated<span style="font-family: inherit;"> by dashes '-' which is what makes the date look the way it does. Without them it would just be a jumble of numbers, 20130226, which is a personal preference. You could use slashes '/' if this didn't deal with a file name (slashes are invalid characters for a file name).</span><br />
<span style="font-family: inherit;"><br /></span>
<br />
<h3>
<span style="font-family: inherit;">%Inside the Percent Symbols%</span></h3>
<br />
<span style="font-family: inherit;">For those of use that like to know why things work open a dos prompt and type </span><span style="font-family: Courier New, Courier, monospace;">date /t</span><span style="font-family: inherit;">. The output will be </span>something<span style="font-family: inherit;"> like this:</span><br />
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace;">Tue 02/26/2013</span></blockquote>
Calling <span style="font-family: Courier New, Courier, monospace;">%Dat</span><span style="font-family: 'Courier New', Courier, monospace;">e:~-4,4%</span><span style="font-family: inherit;">, which can also be done from the command prompt b<span style="font-family: inherit;">y typing </span></span><span style="font-family: Courier New, Courier, monospace;">echo </span><span style="font-family: Courier New, Courier, monospace;">%Dat</span><span style="font-family: 'Courier New', Courier, monospace;">e:~-4,4%</span><span style="font-family: inherit;"><span style="font-family: inherit;">, wi</span>ll return the last four digits of the above date sting. Negative 4 means to start four places from the end, then the 4 tells it to go four places to the right: which is where the year is kept. </span><span style="font-family: Courier New, Courier, monospace;">%Dat</span><span style="font-family: 'Courier New', Courier, monospace;">e:~10,4%</span><span style="font-family: inherit;"> will return the same thing, the difference is the command starts from the left, moves 10 places to the right, then grabs the next four places. </span><span style="font-family: inherit;">The same is true for the month and day.</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">You can return anything in that 14 digit string, we only exclude the slashes in file operations because of name limitations. For kicks you could run </span><span style="font-family: Courier New, Courier, monospace;">echo %Date:~1,6%</span><span style="font-family: inherit;"> from the command prompt to get back "</span><span style="font-family: Courier New, Courier, monospace;">ue 02/2</span><span style="font-family: inherit;">"<span style="font-family: inherit;">. If you had a need for</span> that for whatever reason. Note the first place in the string is 0 not 1. To get the three letter day of the week would require </span><span style="font-family: 'Courier New', Courier, monospace;">echo %Date:~0,3%</span><span style="font-family: inherit;">.</span><br />
<div>
<span style="font-family: inherit;"><br /></span></div>
<div>
<span style="font-family: inherit;">To learn more search results may be </span>misleading if you are looking for help with "dos date"<span style="font-family: inherit;">, try a search on terms like "<a href="https://www.google.com/search?q=dos+string+manipulation">dos string manipulation</a>". That pointed me in the right direction.</span><br />
<span style="font-family: inherit;"><br /></span>
<br />
<h3>
Bonus: Why am I using some goofy date format?</h3>
</div>
<div>
It's sortable.</div>
<div>
<br /></div>
<div>
Let's face it, Month/Day/Year just doesn't make sense. It's out of order. I could see an argument for Day/Month/Year, but that still lacks logical sortability. </div>
<div>
<br /></div>
<div>
http://en.wikipedia.org/wiki/ISO_8601<br />
<br />
EDIT: 2013-05-09 (see what I did there), It was pointed out to me there is a difference between the command date and the environmental variable %date%. This post deals with the environmental variable not the command.</div>
Jameshttp://www.blogger.com/profile/16357536770828429679noreply@blogger.com18