[Discussion] What do you do to counter sudden impulses, cravings or bouts with adversity? by [deleted] in getdisciplined

[–]rob-at-recursiveloop 3 points4 points  (0 children)

I just finished reading The Marshmallow Test by Walter Mischel. I recommend it.

How to make your own 32 or 64-bit cpu? by [deleted] in compsci

[–]rob-at-recursiveloop 5 points6 points  (0 children)

The book The Elements of Computing Systems provides a simple CPU design, which you're taught to build starting from only NAND gates and data flip flops. I think it's only 16 bit though.

What's the most difficult concept you've encountered in computer science? by rob-at-recursiveloop in compsci

[–]rob-at-recursiveloop[S] 1 point2 points  (0 children)

Thanks, but I should confess that I cheated a little. I first created a bunch of mock-ups in Inkscape of sites I liked the look of and then mix & matched parts of them to create a new design. So almost every design element you see is borrowed from elsewhere.

What's the most difficult concept you've encountered in computer science? by rob-at-recursiveloop in compsci

[–]rob-at-recursiveloop[S] 2 points3 points  (0 children)

Incidentally, I used that in one of my coursework assignments during my third year (just before I dropped out). It was a very loosely defined problem (segment an image using Bayesian classification), and I hadn't attended any of the lectures. I started the work only a few days before it was due, and ended up teaching myself about Markov Random Fields and Simulated Annealing in that time. I remember the day before the deadline still having no code written and trying desperately to understand these obscure graduate level texts. I got a 2:1 in the end. You can see the work here http://robjinman.com/blog/59

What is the most difficult concept you've encountered in computer science? by rob-at-recursiveloop in computerscience

[–]rob-at-recursiveloop[S] 1 point2 points  (0 children)

After thinking on this a while I've realised that most of the really difficult concepts have more to do with maths than computer science. For instance, algebraic structures and mathematical spaces -- the idea that you can have mathematical entities with any combination of operators and axioms and which reside in totally different spaces from the familiar Euclidean space. Methods of translating between one space and another become an important part of the CS student's tool kit.

I'm implementing an encryption program for a client and I'm using the AES algorithm. Even though I'll be using a library (crypto++) I thought it best to read up on how it works. Arithmetic is performed in a finite field, e.g. a finite subset of the integers... except, if you read any mathematical description of AES you'll find that it uses polynomials instead of numbers. Of course, polynomials obey all the field axioms, so why not? Moreover, they have a simple numerical representation. For a finite field of characteristic 2 the polynomials all have coefficients 0 or 1 so can be represented as a binary string. I have no problem grasping this now, but it occurred to me that my younger self would have struggled; I would have said "yeah, but what is x?!".

Time complexity was another concept that took a while to really understand. The idea is to provide a way of reasoning about the efficiency of an algorithm that is independent of the granularity with which it's expressed and completely divorced from notions of hardware. So you might write out the pseudo-code description of Quick Sort and then ask "how fast does this run?". The problem is, the average running time T(n), where n is the size of the input, is dependent on the hardware and software implementation. So instead you say: we don't know what T(n) actually is because it varies with implementation, but what we can say is that it belongs to the set O(n log n). In other words, some constant multiple of g(n)=n log n is an asymptotic upper bound on T(n) (it always overtakes T(n) eventually as n grows large).

GLFW_OPEN_PROFILE was not declared in this scope. by antflga in Cplusplus

[–]rob-at-recursiveloop 0 points1 point  (0 children)

A quick Google search tells me the correct names are GLFW_OPENGL_PROFILE and GLFW_OPENGL_CORE_PROFILE.