TIY-ATL-ROR-2015-May / assignments

Just for issue tracking really
0 stars 0 forks source link

HW 05-20 (Blergers) #91

Closed kingcons closed 9 years ago

kingcons commented 9 years ago

Questions.md: https://github.com/TIY-ATL-ROR-2015-May/lectures/blob/master/w03-models/wed/questions.md

Post a link to your fork of the blergers code from class.

Paste the results of running the following commands in pry in a comment:

Close the issue when you're done!

arfranco commented 9 years ago

https://github.com/arfranco/blergers

Blergers::Post.page(1) => [#<Blergers::Post:0x007fa158b9a770 id: 382, title: "The Right Thing", content: "\nI've been programming for 8 years now. Only half that time professionally.\nIt seems like a long time to me but is a drop in the bucket compared to many in this industry.\n\nIf I had to pick two big lessons from the past 8 years to tell someone\ngetting into Software Development for the first time, I would probably say:\n\n1. Software is never finished.\n2. Software is never \"right\".\n\n## Software is Never Finished\n\nSoftware is never finished because it exists in a social context.\nSoftware is an accessory to daily life and life changes.\nAs our needs evolve, and the context around software shifts, so must the software itself.\n\nNot to mention the fact that the teams working on software and the organizations around it shift.\nWe cannot forget Conway's Law!\n\nI often cannot imagine how the Software industry will ever settle with regards\nto tools and practices, when I see our tumultuous past 50 years.\nBut even if our techniques and tools settle, I don't imagine our codebases will.\n\n## Software is Never \"Right\"\n\nYou might imagine that this section is redundant. Certainly it sounds similar to \"Software is Never Finished\".\nBut I mean something different. I mean that there isn't a single right way that all software should be written or made.\n\nThe internet would lead you to believe otherwise. Programmers are nothing if not evangelists, even zealots, about their\ntools and techniques, their pet styles and practices, their esoterica.\n\nThe most important thing you can do is ignore this. Ignore the hate, Ignore the hype. Do not second guess yourself.\n\nTools, practices, and domains of knowledge are just that. Even if Software wasn't a moving target (see: Never Finished),\nwe still do not have a single methodology understood to always produce the ideal code. Indeed, there isn't some ideal code\nwe're after. The code is not the most important part, it's just the part we're paid to obsess over.\n\nSo don't sweat the folks who insist everyone should follow their \"better\" way. At the end of the day, good documentation\nand happy customers are probably more important than most particulars of your codebase.\n\nBy all means, don't stop learning and write the best code you can.\nBut chart your own path through our tangled maze of lore.\nAnd remind yourself that it's okay to be an [average programmer][average].\nWe've got to find time for families and lives, after all.\nSpeaking of which ...\n\n[average]: https://www.youtube.com/watch?v=hIJdFxYlEKE\n\n## The Right Thing\n\nIt's tough to try to plan for retirement. I'm still\ntoo young to think confidently on decade plus time scales.\n\nIt's tough to decide how to teach my students and gauge assignments.\nIt's tough to decide what to learn next to become better at programming.\nIt's tough to decide what I want from my career, how to nourish it and have it nourish me.\nIt's tough to decide what's worth doing in general, when our lives are so busy and full.\n\nBut there's one decision I make that's really easy, even when it makes my life harder.\n\nIt's coming up on six years since Dad died.\nI cannot measure the amount I've grown since then. I know he'd be proud.\nBut I'm proud and that's even more important.\nThe biggest lesson I might have learned from John Glenn is this:\n\nLoving other people is so obviously the right thing.\n\nI cannot think of a time when I am as confident in my decisions\nas when I am loving and supporting others.\n\nI'm not proud of my programming skills or code, though cl-6502 is kind\nof neat. I'm not proud of my job or relationship, though I am thrilled\nwith those aspects of my life.\n\nI'm proud that I handle hard situations with all the grace I am able.\nI'm proud that I treat others with respect and care because I didn't used to.\n\nMost importantly, I'm proud that when I see someone struggling, I love them.\n\nWe do not get to have many easy decisions in our adult lives.\nBut loving those around us, pleasant or unpleasant, in good times or bad\nis an enormous undertaking. I certainly fail at it, but I never regret it.\n\nIt's unfortunate that with our busy lives, in the sea of our alerts and notifications,\nit is so difficult to focus on the simple and important things. But I truly believe\nloving others is the most important thing that I do.\n\nI have failed many times before and in many ways and modalities.\nI have character flaws. I have shortcomings.\nBut if I have helped those around me through difficult periods in their lives\nand supported them when they were in need? Well, then it's all probably worth it.\n", date: 2015-05-09 03:35:00 UTC, format: "md">,

<Blergers::Post:0x007fa158b9a540

id: 77, title: "Confronting Impostor Syndrome", content: "\nFor the bulk of my professional career as a software developer, I've felt like a fraud.\nTo some extent, I think various aspects of tech hiring practices and tool fads/fetishes\nin the software industry create or exacerbate this feeling in most of us.\n\nI read Joel Spolsky's Java Schools article way back when, before I was really programming.\nI looked down on Web Dev for a long time. I played with lisp, played with emulation.\n... But I've been a professional web dev. Why am I fighting it and being hard on myself\nfor not being a systems programmer?\n\nI flogged myself for some time, a little voice in my head saying that web devlopment\n\"isn't real programming\". I would flog myself for not being good at web development\nwhen I hadn't embraced it. I would flog myself for not being knowing systems programming\nwhen I haven't put any time into it.\n\nSure, there's plenty I still don't know. But \"I don't know but I can figure it out\" is the\nright instinct to have. Trying a bunch of stuff and not finishing is vastly better than paralysis.\nExploring any ecosystem and building better apps is better than misguided elitism.\n\nI'm a hacker, through and through. I want to learn, want to improve, want to synthesize\nnew things from my understanding, grow, share, and change. I looked up to the hackers of lisp\nlore and AI Labs. But that hero worship has become negative, is distracting me from just\nbuilding things.\n\nPart of the reason that little voice is in my head (and I listened to it for so long)\nis because I thought I didn't have a chance in this industry.\n\nI've been a successful developer for years but often unable to enjoy my jobs because\nI've been too uncomfortable to embrace them. Then feared I'll be found out as a fraud,\nnot a \"real programmer\".\n\nI've been telling my students that since they understand the major components in web development\nand have some understanding of how they fit together, their real focus to grow should be practice.\nConstantly building bigger things, trying to make each piece more cleanly than in the past,\ngradually knowing how to solve harder and harder problems.\n\nI stopped taking my own advice at some point. It's time to build new things again.\nBigger things. Not the prettiest or the best, but real.\n", date: 2015-03-10 19:57:00 UTC, format: "md">,

<Blergers::Post:0x007fa158b9a338

id: 151, title: "Goals for 2015", content: "\n## Recreation and Balance\n\nFor years, I've been focused on production. Even my \"relaxing\" activities aside from\nthrowing dinner parties or going to concerts with friends have been productive in nature.\n\n Open Source\n Trying to Make Music\n Pseudo-Competitive Smash Brothers Melee\n\nYou get the idea. For the past 5 years or so, I've been terrible at doing things purely\nfor recreation and fun. I struggle not to think of it as \"wasting time\". I'm always anxious\nabout my technical abilities, my ability to find employment, my preparedness for the future.\nRationally, I know that's all pretty ridiculous but I struggle to unwind all the same.\n\nWork life balance has for a while seemed a relic of a bygone era. But I want to turn that\naround this year. Ironically, I've worked more 50 and 60+ hour weeks this year than any\nprevious one. It turns out becoming responsible for the education of 15 people in a 12-week\nprogramming bootcamp is pretty demanding. That's why I'm listing these purely recreational\ngoals to try and commit myself to doing some things just for fun.\n\n## Recreational Goals\n\n#### Reading\n\n1. The Causal Angel by Hannu Rajaniemi\n2. Saga by Brian K. Vaughan\n3. One of Idoru or Pattern Recognition by William Gibson\n4. One of Redemption Ark by Alistair Reynolds or The Player of Games by Iain Banks\n5. Prince of Persia journals\n6. One of Transmetropolitan / Y: The Last Man\n\n#### Gaming\n\n1. Retro/Kickstarted: Hyper Light Drifter\n2. New Adventure: One of Rime or Legend of Zelda Wii U\n3. Nostalgia: One of Ocarina of Time, Fez, or Pokemon Red/Blue\n4. Sci-fi: One of SW: KoToR or Mass Effect\n5. Fantasy: Final Fantasy III or Chrono Trigger or Final Fantasy IX or Earthlock\n6. Magic: Play more Magic the Gathering with James, spend money on cards. Be a kid.\n\n#### Visual\n\n Watch at least 2 documentaries about creative passions: Cooking, Indie Games, etc\n Citizenfour\n Outerlands?\n Game Loading?\n Mind of a Chef?\n No Map for these Territories?\n One of Modulations / Hi-Tech Soul\n\n#### Vacation\n\n Take at least one trip to the beach for no less than 5 days.\n Take at least one trip to see: James, Burke, or Justin.\n", date: 2015-02-21 15:18:00 UTC, format: "md">,

<Blergers::Post:0x007fa158b9a158

id: 150, title: "Goals for 2015", content: "\n", date: 2015-01-02 09:26:00 UTC, format: "md">,

<Blergers::Post:0x007fa158b99f50

id: 152, title: "Goals for 2015", content: "\n## Technical Goals\n\nI've been in a technical rut for a while. Sure, I learned new things\nat my job but limited myself outside of it by sticking to projects I\nwasn't motived about and only working with tools I was familiar with.\n\nAs much as anything, 2015 is going to be about playing with new projects,\nexperimenting with new tools, and focusing on fundamentals again.\nSeeing as I have 3 big goals here, I might just try to tackle one each\nsemester. :)\n\n### Ocaml\n\nTo that end, my primary goal will be to [learn Ocaml][rwo] and build\nsomething cool with it. I'm leaving that just as open ended as it sounds.\n\nI'm interested in Ocaml for a variety of reasons. Its origin dates from\na time before Intel and Microsoft created a 20-year dominant platform.\nIt was envisioned as a systems language, much like Lisp, to compete with\nC++.\n\nThat said, it employs pattern matching and a strong, static type\nsystem like Haskell. Unlike Haskell, it has a fairly simple runtime and\ncompiler built to give very clear intuition about code performance.\nWhile Ocaml is strongly functional, it provides for use of imperative\nstate without monad machinations (sorry @James).\n\nThere are other reasons but I think this is a good start. I'd be interested\nin everything from writing an IRC bot, to scripting tasks, to NES reverse\nengineering tools (i.e. lots of graph manipulation), to [OpenMirage][om] toys.\n\n[om]: http://openmirage.org/\n[rwo]: https://realworldocaml.org/\n\n### Javascript / Frontend\n\nI've leaned towards backend work in my career where possible. After helping\nTA Tim's Frontend engineering course last semester I finally want to pick up\nsome front end skills. I'm not angling to get much better from a design or\nHTML/CSS perspective, but have a definite interest in [mithril][lotj] and\nClojurescript's [om][clj_om]. Elm also seems really cool but I'd prefer to\nstick to slightly less alien tech for the time being.\n\nI'm considering porting my [Nintendo emulator][famiclom] to Clojurescript\nand getting it to use canvas but I worry about getting bogged down as I did\nwith the Lisp version. It was fairly painless getting a\n[rough cl-6502 port][cljs-6502] up in Clojurescript in a few days though.\n\n[lotj]: http://lhorie.github.io/mithril/\n[clj_om]: https://github.com/swannodette/om\n[famiclom]: https://github.com/redline6561/famiclom\n[cljs-6502]: https://github.com/redline6561/cljs-6502\n\n### Algorithms\n\nTo be honest, my algorithms chops have never been terribly good. I think\none thing that's intimidated me working on [trowel][trowel] is a lack of\nconfidence in my algorithmic reasonining. So I'll be working through the\nlatest edition of Sedgewick's [Algorithms][sedgewick] with a particular\nfocus on graphs. With any luck I'll actually make some progress on trowel.\nMaybe I'll even wire it to an om app with some [logic programming][core-logic]\nor [constraint propagation][screamer] tricks.\n\n[sedgewick]: http://algs4.cs.princeton.edu/home/\n[trowel]: https://github.com/redline6561/trowel\n[core-logic]: https://github.com/clojure/core.logic/wiki/A-Core.logic-Primer\n[screamer]: http://nikodemus.github.io/screamer/\n", date: 2015-01-01 18:15:00 UTC, format: "md">,

<Blergers::Post:0x007fa158b99cd0

id: 153, title: "Goals for 2015", content: "\n2014 was a huge year. Notably, I moved in with Norma, switched jobs\nfrom writing code to [teaching how to code][hello_ironyard], and\nlearned more about [how to manage myself][starting].\n\n[starting]: http://blog.kingcons.io/posts/Starting-Again.html\n[hello_ironyard]: http://atlanta.theironyard.com/post/105713862140/\n\nI've got plenty of things to work on in 2015 so I'm breaking this into\na sequence of posts based on subject. I'd like to broadly note that\nfor my first semester (roughly January through March) I might barely\nget anything done and that is okay. I've never taught before and I\nexpect that learning curve to take up most of my time until early\nApril. Now without any further ado ...\n\n## A Few Goals for 2015\n\n1. [Personal][personal] (forthcoming)\n2. [Technical][technical]\n3. [Musical][musical] (forthcoming)\n4. [Competitive][competitive] (forthcoming)\n5. [Recreational][recreational]\n\n[personal]: Goals-for-2015-Personal.html\n[technical]: Goals-for-2015-Technical.html\n[musical]: Goals-for-2015-Musical.html\n[competitive]: Goals-for-2015-Competitive.html\n[recreational]: Goals-for-2015-Recreational.html\n", date: 2015-01-01 17:50:00 UTC, format: "md">,

<Blergers::Post:0x007fa158b99a50

id: 349, title: "Starting Again", content: "## A Fresh Start\n\nI've been struggling a lot this year. I got stuck in a hole and it\ntook me a while to find my way out. But I learned a few things along\nthe way and I'm very excited about what's coming next.\n\nI've accepted a job as a Ruby on Rails instructor at [The Iron Yard][tiy].\nI'll be training people to become engineers in a very short timespan.\nFor over a year, I've been whispering now and then about an interest\nin teaching, to Norma and friends. Starting January 5th, I'll have\nmy first students. I'm equal parts nervous and exhilarated. I can't wait.\n\n[tiy]: http://theironyard.com/\n\n## Learning How to Quit\n\nA lot of my happiness and self-worth is tied up in making visible\nprogress on things I care about. Over the past 10 months I lost faith\nin what I was doing at work and enthusiasm for my personal\nprojects. Rather than recognizing that I should find a job I was\npassionate about or spend time on projects that excited me, I dug my\nheels in. No longer.\n\nAt one point, I said a [Nintendo emulator][towards] was my forever\nproject. I'd still like to see it taken further but I'm not going to\nwork on that now. Belligerently sticking to those guns has been\nlimiting my own potential. The only purpose of personal projects is to\nlearn and to grow. They are mine and no one else's.\n\nSo until further notice, the emulator is on the backburner. Coleslaw\nwill still get maintenance work but probably not much feature\ndevelopment. There are new things I'm fired up about and my focus will\nbe on deriving as much momentum from them as possible.\n\n[towards]: http://blog.redlinernotes.com/posts/Towards-Comprehensible-Computing.html\n\n## Going Forward\n\nI'm playing with Renoise and trying to pick up\nsome music theory. I'm still not really making songs but I'll get\nthere. I'm continuing to [learn melee][melee] and now that I have a\nreal training regiment in place I'm seeing much faster improvement.\nHopefully I'll make it out to local tournaments every now and then.\n\nI want to become more structured about practice. That includes\nstarting to chip away at the stacks of CS and programming books I own\nthat I haven't gotten around to reading. And experimenting with new\ntools like Ocaml, OpenMirage, and Ansible. And making room for play\nwhere nothing gets done.\n\nI need to learn how to love and care for myself in spite of how much I\nget done, in spite of visible progress made or unmade. Part of that is\ngoing to be taking back my online presence, away from the more\ncultivated space of the last few years. There's a lot I want to\naccomplish over the next year or so. I'm sure plenty of what I learn\nwon't be according to plan. But it's time to get going. It's time get\norganized. It's time to dig in.\n\n[melee]: http://blog.redlinernotes.com/posts/Learning-Melee-1-Year-In.html\n", date: 2014-11-30 21:20:00 UTC, format: "md">,

<Blergers::Post:0x007fa158b99618

id: 189, title: "Learning Melee", content: "\n## Disclaimer\n\nThis post is mostly written for myself. It assumes familiarity with\nvarious terms, people, equipment, etc. If you find it useful or\nentertaining, whether you play melee or not, cool. This post is not\nintended to be a training guide. I'm not good enough to be educating\nbeginners, just to observe my experience over the last year.\n\nIf you do want to get started with Melee, you need a few things:\n\n Good condition [Gamecube Controller][gc] (Nintendo-only, no knockoffs)\n A CRT or [lagless setup][lagless], I rock a BenQ RL2455HM with the\n Sewell Wii-to-HDMI converter and an Avermedia LGP for recording\n A Gamecube and Melee disc, or better,\n Wii and [20xx hack pack][20xx] on SD card\n Familiarity with the basics of smash as a series\n and a character to focus on\n A good guide, maybe check the resources at the end :)\n\n[gc]: http://astore.amazon.com/smashboards00-20/detail/B0017KIBAI\n[lagless]: http://www.reddit.com/r/smashbros/comments/26got5/quick_followup_to_miom_lag_article/\n[20xx]: http://smashboards.com/threads/the-20xx-melee-training-hack-pack-3-02-update-pal-chars-more-alt-stages-costumes-new-debug-menu.351221/\n\n## Enter Melee\n\nI'm not a gamer. The last time I really put substantial time into\nvideo games was high school. I also wouldn't describe myself as a\ncompetitive person. But for whatever reason, I've always been\ncompetitive in [Smash Bros][smash_series]. I want to win.\n\nLate last October, I stumbled on [a documentary][smashdoc] detailing\nthe history of the competitive smash brothers scene. I was riveted.\nI was suddenly aware of a massive depth to the game I'd hitherto\nmissed. I had to know more, I had to try to my hand at competitive play.\n\n[smash_series]: http://en.wikipedia.org/wiki/Super_Smash_Bros.#Gameplay\n[smashdoc]: https://www.youtube.com/playlist?list=PLoUHkRwnRH-IXbZfwlgiEN8eXmoj6DtKM\n\n## Why Do This?\n\nIn addition, I've always struggled with things I'm not immediately\ngood at. I'm terrible at being patient with myself, at viewing life\n(and goals) as a journey and not a destination to be reached post\nhaste. Melee remains an excellent opportunity to practice being loving\nand patient with myself, and handling failure and defeat gracefully.\n\nAs I said before, it's a monumentally deep game. Like in chess,\ncharacter positioning and board layout is paramount. As in poker,\nbluffing and calling your opponent's bluffs is crucial. There's also\nan executional aspect. Professional players routinely execute 300\nactions per minute and have to perform complex controller inputs in a\n20th of a second window or less. Not to mention just learning the\nproperties of 25 characters, their moves, and the Rock Paper Scissors\nof what beats what in which situations.\n\nI've been at it for a while now. I'm still not good but I'm much more\nat peace with that than I was when I started. Here are a few things\nI've learned playing melee the past year. A lot of these things are\nhabits I've had to work hard to break. Just remember not to get\ndiscouraged. Melee can be very unforgiving.\n\n## Rule Number 1: Keep It Fun\n\nYou have to stay motivated. If things get too serious and you're not\nhaving fun you're going to play less and your skill will plateau.\nThere are a lot of things beginners have to absorb and a plethora of\nsuggestions, bordering on rules, about how to practice. Feel free to\nviolate anything anyone says in order to keep things fun.\n\nA few semi-regular suggestions I violate in the name of fun are:\n\n Focus on 1 character\n\n> I play 2 seriously (Sheik/Marth), 2 semi-seriously (Fox/Falcon),\n> and 2 for fun (Pikachu/Doc Mario). If I don't switch it up, I find\n> myself getting frustrated with progress on a single character.\n> And when playing with friends, it can be surprisingly rejuvenating to go\n> play a quick falcon ditto after an hour or more of serious play.\n>\n> Additionally, I find some characters make certain kinds of practice\n> more rewarding. For me, Fox makes it really fun to practice tech\n> skill and Marth makes it really fun to practice spacing. Those\n> characters really emphasize those attributes which makes the practice\n> payoff very clear.\n\n* Don't practice against CPUs ... (above level 5, to hone your mental game, etc)\n\n> The big argument here is that CPUs ingrain bad habits. Especially\n> if all you're trying to do is win. So don't try to win. PPMD talks\n> about doing something called [shadowboxing][shadowboxing],\n> essentially playing the CPU like a human opponent. The 20xx hack pack\n> is supposed to improve their behavior in various ways, especially DI.\n> I find it helpful to practice tech skill at a level where the CPU\n> will punish me if I'm too slow or miss an input.\n\n[shadowboxing]: http://smashboards.com/threads/falco-discussion-thread.256826/page-439#post-14739329\n\n## Rule Number 2: Structure Your Play\n\n> Editor's Note: Some of the advice in this section is specific to me\n> because I don't attend or plan to attend lots of local tournaments.\n> The core advice of separating different kinds of play still applies.\n\nTo play competitively, you're going to wind up doing 3 things:\n\n1. Practicing tech skill\n2. Experimenting with your play\n3. Competing seriously\n\nIt is important that you keep these things distinct. For example,\nI try to spend 20-30 minutes a day practicing tech skill. I move\naround the stage, working on flubs or things I execute too slowly.\nI try to learn new tech (such as waveshines). I don't go to many\nlocal tournaments so I experiment with different approaches and\npunishes against a CPU. Finally, when I want to be competitive\nI play (seriously) against friends.\n\nInitially, you'll want to blur all this together. You'll be playing\nsemi-seriously with a friend and be tempted to try \"new stuff\":\nplatform movement, wavedashing, the \"Ken combo\", getting an off stage\nFalcon Punch. Don't give in to the temptation. Melee requires you to\nadapt to your opponent above all else. If you're too busy obsessing\nover moves you want to land, you'll limit your options and your play\nwill suffer for it. This isn't to say you shouldn't try to work on\nspecific things in matches with your friends. Just that tech skill you\nhaven't mastered and particular combos are not those things.\n\nTo emphasize further, don't practice specific combos. Part of\nMelee's depth comes from DI, or Directional Influence, the upshot of\nwhich is that getting a specific combo might be impossible depending\non the opponent's actions. Long story short, DI allows you (and your\nopponent) to change the direction a hit knocks them in, potentially\nmaking follow up attacks miss. The interesting choices in melee come\nin between hits as you watch what your opponent does and react to\nit. While there are \"guaranteed\" combos in specific situations\n(character a vs character b at XX%), most of our combos come from\nreacting not planning.\n\n## Rule Number 3: Work To See The Neutral Game\n\nIf you've spent years playing Smash casually, you'll largely see the\ngame as hitting or being hit, offense or defense. But that brutal\nsimplification will limit your ability to see the larger game.\nTwo common adages fall under this section:\n\n1. Don't Mindlessly Approach (your opponent)\n2. Don't Mindlessly Trade (hit for a hit)\n\nThe takeaway is, It's better to not get hit than to get a hit.\n\nYou'll be tempted to rush in right away, ignore that impulse. You'll\nbe dying to hit them back for hitting you, re-establish good footing\ninstead. The \"neutral game\" is everything that happens outside of\ngetting a hit or combo and trying to escape being hit. The sooner you\ncan see encroaching on an opponent's space on the stage as a useful\nform of micro-aggression, the better off you'll be. Just positioning\nyourself in a threatening way is a hugely useful tool.\n\nDon't force your play into a false dichotomy of attacking or defending.\n\n## Rule Number 4: Remember Where Your Good Options Are\n\n> Editor's Note: This rule was originally called \"Stay Grounded\" and\n> came from my reflections on the Marth v Link matchup with my buddy\n> Max. Some of this section will be dependent on the matchup.\n\nStage position is important. Let's say it again: Stage position is\nreally, really important. When I first started playing Marth, I\nalways wanted to approach in the air. Just all the time. Lord knows\nwhy. But being in the air takes away a huge number of movement\noptions. Your opponent can plan around and react to your play more\neasily when you have fewer options.\n\nI wound up above Max a lot and got punished. Even if your character\nhas good aerial attacks, unless you're talking cross up nairs with\nPikachu or Fox there are probably safer, better approaches. So, being\nabove your opponent is usually a pretty negative situation.\n\nIn general, center stage is a great place to be, and above the\nopponent, in a corner, or on the ledge, are bad places to\nbe. Platforms are a bit more of a mixed bag. But remember where on the\nstage you have advantage and where your good options aren't available\nand figure out why that is.\n\nIn addition, spacing is really important. Spacing is more than\njust trying to throw out attacks from a safe distance, or thinking\nabout your opponent's range. It also has to do with thinking about the\nrange at which your character performs best. Marth and Falcon, for\nexample, are mid-range powerhouses, while Fox and Sheik generally need\nto get in close to be really effective. Know where your character\nperforms well and remember to stay in that effective range as much as\npossible.\n\n## Rule Number 5: Do Think About Options, Action States, and Transitions\n\nKirbykaze's blog posts explain this much more clearly than I will.\nAny time you can keep most of your options open while limiting your\nenemy's, do it. That's a huge advantage. And any time you can narrow\ntheir range of choices you have a much better chance of predicting\ntheir play, or finding a tactic that covers every possible outcome.\n\nSince Melee is so much about movement and positioning, being fast\nis key. And indeed, most of the executional aspects of high-level play\nare in service of eliminating as much lag as possible from your\ncharacter's moves. It's useful to try to build a formal model here.\n\nEvery move in the game has a set duration, though certain moves (dash\ndancing, wave dashing, aerials) can be shortened to varying degrees.\nOnce you've committed to a move, the opponent knows more or less how\nlong the move's hitbox will be active, how long you'll be unable to\nexecute a different move, etc.\n\nConsequently, speed mostly comes from transitioning quickly between\nmoves or, as Kirbykaze's blog says, \"action states\". The better you\nget at switching between shielding, standing, walking, dash dancing,\nwavedashing, and attacking, the faster you'll be. Seamlessly and\nquickly transitioning between these states is vastly more valuable\nthan L-canceling all your down aerials.\n\nThis is something I'm just now realizing and trying to improve\non. It's very appealing to just work on l-canceling or short hops or\nwavedashing but misses the real point. The connecting tissue between\naction states is where most of our sluggishness comes from.\n\n## Don't Give Up\n\nFinally, it should be obvious that regular, focused practice makes a\nbig difference. I'm going to try to practice 20 minutes a day, 5 days\na week going forward. I'm still figuring out exactly what that practice\nregimen will consist of, probably mostly tech skill and movement with\nSheik and Marth. Wavedashing and L-canceling are muscle memory, sure,\nbut practicing the basics shouldn't ever really stop.\n\nAnd I'm still not where I want to be but I've had [a][falcon_gfy]\n[few][fox_gfy] [good][marth_gfy] [moments][sheik_gfy]. I hope this\nhas been an interesting post on some things I've struggled with\nwhile learning melee. Happy smashing and if you're in Atlanta and\nwant a game, feel free to drop me a line.\n\n## Resources\n\nI really enjoy Kirbykaze's blog and writings about the game.\nTwo particularly good posts are [Movement Drills, Part 1][movement1]\nand [Tactics][tactics].\n\n[movement1]: http://myneverendingbrainstorm.blogspot.com/2014/10/diy-ssbm-movement-drills-part-12.html\n[tactics]: http://myneverendingbrainstorm.blogspot.ca/2014/10/i-recently-posted-this-question-to-my.html\n\nVarious people have posted articles for beginners on getting better:\n\n* Mango\n* NMW\n* sleepyk\n* Albert\n\nRead. Them.\n\n[fox_gfy]: http://gfycat.com/SadBlondHalcyon\n[falcon_gfy]: http://gfycat.com/FaithfulSnoopyHornshark\n[marth_gfy]: http://gfycat.com/MiniatureSphericalBufeo\n[sheik_gfy]: http://gfycat.com/AlarmingAdmiredCarpenterant\n", date: 2014-11-22 15:00:00 UTC, format: "md">,

<Blergers::Post:0x007fa158b991e0

id: 356, title: "Strangeloop Thoughts, 2014 Edition", content: "\n### Why do Programming?\n\nAfter going to Strangeloop for the first time in 2012, I was really\nfired up about programming. I'd only been out of school a year and was\nalready a full-remote Clojure developer making a great salary. Even\nbetter, I had made good progress on my lisp emulation project and\nreceived some recognition from hackers I respected for it.\n\nThe last two years Strangeloop has been a lot more sobering. I told\nmyself things in 2012 about how fast I'd get better and how good I'd\nbe. Even though my expectations were unreasonable it's taken a long\ntime to not feel bad about my (relative lack of) progress. I've been\nslow to accept the fact that I don't want to fight my way to being the\nbest in my field.\n\n### Strangeloop, 2014\n\nI got in Tuesday night, dropped my bags at the hotel, and immediately\nran off to drinks and phenomenal conversation at the Schlafly Tap\nRoom. Many of the best experiences I've had at Strangeloop have been\nat the tap room. Sure there is excellent food, beer, and technical\nconversation, but I've always gotten a sense of personal acceptance at\ngatherings there. Strangeloop is certainly a welcoming crowd.\n\nWednesday was a blast as well, as any day with a trip to the STL City\nMuseum should be, but more and more I found I cared about personal\ninteractions more than the content of the talks I attended.\n\nBy the end of Thursday, I was stressed out. I wasn't even excited\nabout the talks, which isn't to say they weren't good. I hated the\nidea that I was just an average programmer, that I didn't aspire to\nmore than hacking bog-standard Rails apps as a career, that I'd spent\nalmost $2000 out of my own pocket to come to a conference that someone\nelse might have gotten more out of. I went to bed early that night.\n\nI kept my mindset in check much better on Friday. I reminded myself to\nbe excited about others discoveries and creations, not to demand\nmyself learn every tool or technique. The conference wrapped up well\nand I particularly enjoyed some of the Distributed Systems talks, a\nsubfield I still have no experience with. Not to say I want to go\nfight distributed heisenbugs soon or design highly reliable\nsystems. The talks were quite entertaining and informative is all.\n\n### Back Home\n\nThe main takeaways I've had from Strangeloop have nothing to do with\ntech and everything to do with me. Strangeloop has, in many ways,\nbeen a time for me to reflect these last two years. I'm not sure\nthat's a good way to use the conference but it seems to be what I've\ndone.\n\nThe first takeaway that comes to mind is that I need to try and\nrespect myself for just being a decent Rails developer. I'm not great\nat solving algorithmically tricky problems and my CS background is,\nfrankly, pretty damn weak. But no matter what I shouldn't beat up on\nmyself for being \"just a programmer\". I need to put in an honest day's\nwork and actually pat myself on the back at the end of it.\n \nThe second takeaway is that I need to program for me again. I got\ninto programming mostly because I wanted to know more about how\ncomputers work. The emulator and talks surrounding it, some of my\nfavorite work, is really more an investigation than artifact.\nI still want to support coleslaw. It actually has a few satisfied\nusers and I'm one of them. But the only real purpose of the emulator\nis to sate my curiosity. Not to become a real thing or be special or\ngroundbreaking.\n\nThere is plenty I'm still digesting and plenty I'm still not sure of,\nboth technically and in terms of what I want for myself, my career, my\nlife. But I'll leave that for another day. Cheers.\n", date: 2014-09-24 16:05:00 UTC, format: "md">,

<Blergers::Post:0x007fa158b98e70

id: 61, title: "Big Changes for Coleslaw", content: "\nI'm working towards 1.0 and Coleslaw's basic architecture seems to have\nsettled down. The areas of focus for 1.0 will be better error handling,\ncommand-line conveniences, more content types, and possibly some new\nways to ingest data.\n\nColeslaw 0.9.6 will be released this Saturday and, not long after,\nmake it into the next quicklisp release. Seeing as it contains big\nchanges, some of them breaking, I thought I'd put out an announcement.\n\n## Coleslaw 0.9.6\n\nColeslaw 0.9.6 unifies how we handles URLs throughout the application and\nsimplifies the deploy strategy. The good news is, this makes the install\nprocess easier for new users. The bad news is, if you've got an existing\ninstall, you'll need to add a new plugin (versioned) to your config\nfile for the old deploy behavior.\n\nThat's not so rough, right? In addition, custom themes and plugins that\nhaven't been upstreamed may need some minor tweaks. The [NEWS][news]\nhas more details.\n\nFeel free to grab the basic-deploy branch from my [repo][repo] and\ntry it out. There are some new [docs][docs] and the README has been\ncleaned up. There's also a plugin for [Twitter Summary Card][ts-card]\nsupport and the usual smattering of bugfixes.\n\n## Going Forward\n\nWhile I'm happy to maintain Coleslaw if no one else steps up to work on it,\nI'm going to try and shift my focus towards emulation work and weird lisp\nnoodling. If you're interested in taking on a co-maintainer role or working\nwith me on the project please get in touch. I've been very appreciative of\nthe help and interest thus far. If there's anything I can do to make the\nproject more approachable or help people get started, do let me know.\n\n[repo]: https://github.com/redline6561/coleslaw\n[docs]: https://github.com/redline6561/coleslaw/blob/basic-deploy/docs/\n[news]: https://github.com/redline6561/coleslaw/blob/basic-deploy/NEWS.md\n[ts-card]: https://dev.twitter.com/cards/types/summary\n", date: 2014-09-22 10:36:00 UTC, format: "md">] ESCOC t into the next quicklisp release. Seeing as it contains big\nchanges, some of t

~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ESCOD t into the next quicklisp release. Seeing as it contains big\nchanges, some of them breaking, I thought I'd put out an announcement.\n\n## Coleslaw 0.9.6\n\nColeslaw 0.9.6 unifies how we handles URLs throughout the application and\nsimplifies the deploy strategy. The good news is, this makes the install\nprocess easier for new users. The bad news is, if you've got an existing\ninstall, you'll need to add a new plugin (versioned) to your config\nfile for the old deploy behavior.\n\nThat's not so rough, right? In addition, custom themes and plugins that\nhaven't been upstreamed may need some minor tweaks. The [NEWS][news]\nhas more details.\n\nFeel free to grab the basic-deploy branch from my [repo][repo] and\ntry it out. There are some new [docs][docs] and the README has been\ncleaned up. There's also a plugin for [Twitter Summary Card][ts-card]\nsupport and the usual smattering of bugfixes.\n\n## Going Forward\n\nWhile I'm happy to maintain Coleslaw if no one else steps up to work on it,\nI'm going to try and shift my focus towards emulation work and weird lisp\nnoodling. If you're interested in taking on a co-maintainer role or working\nwith me on the project please get in touch. I've been very appreciative of\nthe help and interest thus far. If there's anything I can do to make the\nproject more approachable or help people get started, do let me know.\n\n[repo]: https://github.com/redline6561/coleslaw\n[docs]: https://github.com/redline6561/coleslaw/blob/basic-deploy/docs/\n[news]: https://github.com/redline6561/coleslaw/blob/basic-deploy/NEWS.md\n[ts-card]: https://dev.twitter.com/cards/types/summary\n", date: 2014-09-22 10:36:00 UTC, format: "md">] ESCOC t into the next quicklisp release. Seeing as it contains big\nchanges, some of t

~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ESCOC t into the next quicklisp release. Seeing as it contains big\nchanges, some of t

~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ESCOD t into the next quicklisp release. Seeing as it contains big\nchanges, some of t

~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ESCOD t into the next quicklisp release. Seeing as it contains big\nchanges, some of them breaking, I thought I'd put out an announcement.\n\n## Coleslaw 0.9.6\n\nColeslaw 0.9.6 unifies how we handles URLs throughout the application and\nsimplifies the deploy strategy. The good news is, this makes the install\nprocess easier for new users. The bad news is, if you've got an existing\ninstall, you'll need to add a new plugin (versioned) to your config\nfile for the old deploy behavior.\n\nThat's not so rough, right? In addition, custom themes and plugins that\nhaven't been upstreamed may need some minor tweaks. The [NEWS][news]\nhas more details.\n\nFeel free to grab the basic-deploy branch from my [repo][repo] and\ntry it out. There are some new [docs][docs] and the README has been\ncleaned up. There's also a plugin for [Twitter Summary Card][ts-card]\nsupport and the usual smattering of bugfixes.\n\n## Going Forward\n\nWhile I'm happy to maintain Coleslaw if no one else steps up to work on it,\nI'm going to try and shift my focus towards emulation work and weird lisp\nnoodling. If you're interested in taking on a co-maintainer role or working\nwith me on the project please get in touch. I've been very appreciative of\nthe help and interest thus far. If there's anything I can do to make the\nproject more approachable or help people get started, do let me know.\n\n[repo]: https://github.com/redline6561/coleslaw\n[docs]: https://github.com/redline6561/coleslaw/blob/basic-deploy/docs/\n[news]: https://github.com/redline6561/coleslaw/blob/basic-deploy/NEWS.md\n[ts-card]: https://dev.twitter.com/cards/types/summary\n", date: 2014-09-22 10:36:00 UTC, format: "md">]