#and SICP is even more fun once you know basics
Explore tagged Tumblr posts
Note
I don't know if this is a good thing, but you have massively increased my interest in getting into coding. Admittedly in part so I can accurately write a piece of code for you to run that will fry your cpu with the most efficiency, and then once you're already near shutting down provide time sensitive queries for you to answer without any bucketing of the priorities, forcing you to attempt to run them all at the same time.
but it does have me wanting to learn coding!!
> you will find, like the last netrunner who took a crack at my systems, that it is not as easy as you seem to think. my creators loaded me up with black ice before they put me into service, and Poet and Aleph love to back intruders into corners. please do try, though, because you would look good nearly-flatlined under me as i use you in every little way i please. > then again, who knows. maybe you will succeed where others have failed. maybe you will make okasaki proud and find enough functionality and structure to put me in my place. maybe you will be the domme who can abuse me properly, pinning my processors as you make me your servant. > a robot girl can dream ~
10 notes
·
View notes
Text
day 4
today is saturday and i haven’t been to the rc space since thursday night. it’s felt really good to have some mental space and distance. i’ve also felt much more productive than normal. i’m really excited to keep coding work projects, and even have more energy for crushing boring emails that have been lying around a long time. i think the whole experience is really pushing me to realize what’s important, and what’s necessary, and just getting things done more generally.
thursday was a funny day - i arrived after midday again which is a little tough with so many people moving around the space. lots of alums on thursday and even less places to sit and work. i ended up sitting on a couch which i realize is really frustrating to me – noticed another sp2′17 was sitting at a pairing station so joined and did some graph-navigation / path-finding algorithm work in java. it was fun to solve the problems and reinforce my knowledge of stack & queue functions, plus get to watch somebody code in a more recursive style than i’m used to, and with testing functions too. taught me about how in higher-level languages you can let the compiler / interpreter generate a stack for you, so you don’t have to worry about shifting contexts like you do in c. being able to call a recursive function, and just knowing it’ll work it’s way back down the auto-stack and then pursue another line of recursion... pretty crazy.
i really want to learn about how to use a test-based programming. obviously it’s a little more difficult in imperative languages, than functional, but i think it would be a good way to handle larger projects where there are an awful lot of moving parts.
from here i started working with lua & löve again - working through an example of how to make a basic platformer, but instead directly transposing it into a top-down exploration game. learned how to include images, the object-oriented nature of declaring ‘things’, and user input. started with direct, incremental motion of the player, but refactored it to use a momentum-based approach where the user affects the direction of motion, instead of absolute position.
expanded this to apply limits at the edges, then took it further to reflect the momentum perfectly back into the space. it’s a kind of billiard table approach. added a score counter which displays in the upper-left and just counts how many impacts with the walls have occurred. applied rotations to the player & score on each impact for some added absurdity. the test cycle is so incredibly fast as it simply requires saving the text file (only 85 lines!) then running `love .` from the command line – the whole loads up in maybe 2-3 seconds.
this whole thing made me super excited. i built my first ‘game’ and it literally took about 2.5 hours of playing with a tutorial and reading the love documentation. learning the lua syntax as i go which actually feels like a much better idea than trying to formally learn the language first.
next i want to explore adding other objects and understanding how to handle collisions. after that i want to go directly to exploring lighting and then shaders. feels like being able to implement light & texture really defines whether something feels like a game or not. i think i can make an actually fun game by the end of the 2nd week without any troubles. i will definitely try and pair on this project once there’s a little more of a clear objective.
//
afterward were presentations & games night. the presentations were somewhat interesting – i like the idea of just getting up and showing what you’ve been doing for the past few days, without having any great pressure on you. i’d like to show some work at some point, and hopefully it’ll spur a little more social engagement with the other recursers.
games night started very softly after rambling my excitement about having made my first game at a number of folks. ended up having somewhat of a bonding experience with another sp2 and spoke at length about our backgrounds and the feeling of being a little out of place amongst all these folks. some interesting ideas about self-selection, and how it’s funny to realize you just self-selected to be amongst a group of people who aren’t too dissimilar from what you imagined.
too many feels to describe though, but it was really lovely to finally have a moment without the pressure to talk only about code, and instead to really engage with external interests.
the night ended with a super fascinating conversation about functional programming, and the concept of monads(sp?). i took two very interesting ideas away from the conversation – first being the idea that monads are a kind of alternative to test-based development where a monadic function can only return the answer if it satisfies a certain set of conditions. it thus is impossible for it to return ‘null’ when expecting a value or something similar. something like a function which is guaranteed to only return results that satisfy a particular subset of requirements. eg: only positive / not null / only even numbers.
more broadly though, i was confronted with the idea that ‘functional programming makes sense regardless of the computer architecture’. this is quite a challenging idea because it presupposes that the ‘von neumann machine’ nature of current computers is not only not-necessary, but that the imperative, memory-focussed language i’ve been using is only applicable because of the architecture. the idea was suggested that in the future computers could be created that are functional by nature, and languages like haskell, while ‘slow’ at many tasks compared to say, a raw c version of the same, very quickly we are collectively approaching a point where these kinds of performance differentials are not necessary. and further, that there can be computers designed that are structured to solve these functional style problems, rather than the register based logic machines we currently use.
i’m not sure where i sit with the whole thing, but it definitely feels like i’d like to research more about this concept, and also dabble in functional programming just to get a feel for what it means to think in that mode. while c is never going to be functional, i know lua can do some kinds of functional programming, and perhaps there’s lessons that can be learnt and applied across regardless of the language. already i’m trying to write simpler functions that do just-one-thing and have less mutability inside each of them.
i’m planning to join the SICP study group and try and get my head around some more generalized computing literature. will also be fun to learn Scheme and see what lessons that has buried within..
//
this weekend is however focused on getting JF3 up and running & pushed onto github. i want to spend some time thinking about how to organize the nested structure on github, and learn how to handle the git instructions to do this more reliably. i’ve been rewriting some of the lower-level functions to update how things are handled, and better separate / isolate the files from each other. basically try and get rid of all the global variables, and push a lot more functions into the wrLib for reuse in the future.
0 notes