Cookie Notice

As far as I know, and as far as I remember, nothing in this page does anything with Cookies.

2015/02/02

What's On My Mind?

Thinking through the Thing: I had said that I thought this was wasteful of battery life. Now, I'm thinking that many many things are wasteful of battery life, and that's the user's decision, not mine. I mean, for myself, I'd rather run it as a crontab-based Unix tool, but not everyone is me.

So, I guess the solution is to man up and learn to develop for phone. The barriers to entry for the iThing market, for me are 1) getting a Mac and 2) getting an iThing, so looks like I should learn to develop for Android.

Which I've been telling myself regularly for the last four years.

Computer Science as a Subset of Math, and what it means for Hackers like Me: I work at a big university with a great Computer Science department, one that gave me a degree. So, I feel I should go and attend colloquia and the like, to keep expanding my mind.

Thing is, as an undergrad, the coursework was all about how to use the tools of software development. Not even software engineering, which is more about creating processes for writing, testing, and delivering code. For example, the use of git as a code repository is a software engineering question, but the use of functional or object-oriented programming is a software development question.

So, what's a computer science question? I don't know that I'm qualified to answer that. But that shouldn't stop me.

Consider the sites in Stack Exchange. There's the site they created it for, StackOverflow, which I tend to go to for syntax-related questions. If you want to code, go there. If you want to use the tools others coded, there's Ask Ubuntu, ServerFault, SuperUser, and many more. If you want to ask question s about how to live and work like a programmer, there's Programmers. And, if you have over a certain amount of reputation on one Exchange, you have proven that you're a helpful person, and you get some credit on others, except for the highly domain-specific places.

Such as Math and Theoretical Computer Science. Because your thoughts on Replicants in Blade Runner or why guitars are tuned like they are mean nothing when it comes to Set Theory, P vs NP or the Church-Turing Hypothesis.

(That might be an old rule about Stack Exchange reputation.)

In essence, if an idea is best presented as source code or pseudocode, it might be best found in StackOverflow, while if an idea is best presented as an equation, it is either Math or Computer Science.

To me, in most places where we more properly say "Computer Science", we're talking, more or less, Complexity. This can involve Machine Learning, Emergent Behavior, understanding the structure of the Genome, or the behavior of puppies. Because this is what I'm looking at from the outside, there's a lot more to it and I'm subtly, or perhaps less than subtly, wrong. In a nutshell, if we could do a science without computers, without using them to image and parse physical things, without using them to analyze greater and greater amounts of data, we would've done these things in the centuries before we turned sand into circuits. "All Science is Computer Science", I say.

In my day job, I help Science. Metadata needs to exist and be here so it can be combined with data and help us know what we're talking about, and that's what I do. I make it easy to collect the metadata and write it in ways the instruments need it. I plot out the data. But I don't do anything with the data.

This does keep me busy, but when I go to talks like today's talk on "Learning Structure from Data: Applications, Algorithms, Statistical  Efficiency and General Frameworks", it's as if they're talking another language. They are. They're speaking math, and I'm used to speaking code.

So, perhaps I should take the Coursera class on Data Science. Because I'm finding need of using next-level, "smart" tools to poke into different aspects of my life, and I'm stuck somewhere between the buzzword and the actualization.

We Need Another Number Format: Think about this.


You might think "Yeah, Javascript sucks."

Same is true with Python. With Java. With Perl 5. It's IEEE 754, the standard for handling floating point numbers. If your language doesn't fail at 0.1 + 0.2 - 0.3 == 0, it is not standards-compliant.

But, clearly, if I give you a penny, then two pennies, then take away three pennies, you end up with no pennies, not 5.551115123125783e-17 pennies.

This is the thing I'm hitting right now at work.


This, the jump between $159.95999999999998 and $159.96 is simultaneously too small for anyone to care for any specific transaction and enough, for enough transactions, to put Richard Pryor in a Ferrari in Superman III.

So, I'm thinking, for the purposes I'm needing to do it, the solution is to multiply by 100, parse as into to drop anything remaining, do what simple math needs to be done, then divide by 100, or maybe just drop a period in there.

And working myself up to doing what I know must be done is what I'm doing today.

(Pictures are mine, taken by me, trying to make this post less text-filled and grey.)