This question haunts me because if I buy, then I'm not getting exactly what I want and am compromising my wants. If I build, then I risk it being disappointed (and messing up), and worse if its not what I want, then I have to live with the shame and can't complain.
Saturday, July 9, 2011
The eternal engineering question
Build or Buy?
Labels:
technology
So, I was going to go to Mac
but then I started to look at the price and power of the laptops...
the mac book has same processor, 1/3 of the memory, 1/3 of the HD, smaller screen, 1/3 of the video memory. Argh! So, maybe I'll just build one like codinghorror. Gauh.
Labels:
personal
Sunday, July 3, 2011
Why writing programming languages is so fun yet so damn hard
I love sitting down on a Sunday day and throwing a parser with some tree manipulation to try to create a new way of expressing computing. However, it's hard.
I'll point out some goals that I think about when I'm in a PL mood.
(1) I hate garbage collection in a non-trivial way. It's stupid. Before you curse me into madness, there are a couple of ways of dealing with it. One, ignore it and have memory leaks. It's not rocket science to manage memory, but it can be a pain in the ass when you try to pass around ownership. Two, kill the heap. This, I've tried and it works; it isn't for the feint of art. Three, have reckless memory manage in contexts that get destroyed and share state via a DB like thing (i.e. Mysql, SQlite, or a DOM). I like Three a lot.
The nice thing about having reckless memory usage with a persistence back-end is that the thing that is reckless can fail. Say, you run out of memory, ok, create, kill the context. Now, from a performance point of view, this approach is strange to say the least. This is why I'm interested in embedding transaction logic into PL for optimization.
I don't have a solution to this as my last big language attempt just used a DB.
(2) Asynchronous is full of win. I'm not a fan of threads (Threads are Hard, m'Kay), and I would like a very easy way to think synchronously yet behave asynchronously. I'd like not to have to pass around closures, nor do I feel like yielding my code with co-rountines. I want something better..
(3) Saving state is fun. My last PL had the ability to zip of a closure, put it in a queue, and then distribute the computation. I'd like to be able to pause the state of the computation and move it between computers. The difficulty here is making it play safe with a persistent data store. See (1)
(4) I don't want to write a VM nor target low level code. My primary target must be C (or C++). I'd like the code to run on the iOS. I'd like it to be vanilla C. I'd very much like it to work in JavaScript. I'd like a real "write once, run anywhere" language that targeted machine code.
(5) I need closures; just because they make my life easy
(6) I like either dynamic types or polymorphic types (ala OCaml)
(7) I like type inference
So today, I made a very basic framework for expressing some of these ideas. I have mental solutions (because I've solved them before) for (3-7), but 1 and 2 are driving me nuts. I know C# has a kinda solution to 2 using co-routines, but's only ok. I want magic.
I want real magical shit in my PL, but magic is hard.
Labels:
technology
Morning Choice: Video Game or Code
Every weekend, I have a choice.
Do I play a video game? Or code?
Today I choose coding. Videos games are getting old.
And, I'm busting out ocaml because I'm going to try something very hard. I'm going to work on an asynchronous state machine compiler where you write code synchronously that turns into an optimized state machine.
Labels:
personal
Saturday, July 2, 2011
First Joke of the Morning
I'd like to talk about whole foods
The thing about whole foods is this: you need to read everything. The other day, I wanted some Parmesan cheese. So, I grabbed some at whole foods. It wasn't Parmesan. It involved sheep milk, and I was not amused. My hamburger helper like meal tasted like feet.
Labels:
personal
Comedy
Delivery is very hard, so I've written jokes that are hilarious. Well, to me at least.
One is based on a very funny yet embarrassing experience from my child-hood. In a casual setting, telling people makes them LOLz. However, trying to stand up and tell it to people. Woah, that's hard. Well, its hard for me because I'm a hard-core introvert that lives in my own fantasy world. Interacting with the outsiders tends to be a messy process. Fortunately, I've learned ways of dealing with it.
For instance, I used to have a deep fear of talking in front of people. So, I taught at college. That beat the fear out of me, and so I can go up and talk in front of people. It's oddly easy when the subject is boring like math, programming, or business.
What about messy and embarrassing past stuff? How do I not crack up during delivery?
Back to comedy: How do i take a personally embarrassing moment in my life and turn it into a deliverable routine?
To the twitter mobile!!!
Update: twitter was a failure. How about quora?
Labels:
personal
Wealth: the link between Hacker and Hustler
tl;dr;
hackers generate wealth, hustler's turn wealth into money
Longer version:
I think wealth is best defined by the ability to satisfy your want. If you want something and can't have it, then you are not wealthy (i.e. poor). So, I'm an inventor-hacker, and most of my want is satisfied with some work (except for things like space travel... I'm very space-travel-poor).
What about money?
Now, where does money play into this? When I grew up, my parents fought about money. My dad made it, and my mom spent a lot of it. So, I wanted nothing to do with money, and I put on the hat of the academic monk. I was happy in that role, but then I needed money (due to personal reasons). My personality isn't the type that settles for nickels and dimes when I actually have to go out and earn, so some friends and myself did the cool thing before it was cool. We did a start-up, and we were going to be bigger than Facebook and Texas! Multiplied!!
It was a failure; the next business wasn't a failure. I learned about money, and how to make it.
Money is time. It's someone else's time for doing something that neither you (nor them) want to do. That's the only thing that it is. It's nothing else.
So, if you want money, then you do things people don't want to do (or can't do) (like math), and do it well.
So, back to wealth. Wealth is satisfying want. If you have a lot of money, then you should be able to satisfy your want and be happy. What if your want can't be satisfied by money, yet you have it?
"There is no class so pitiably wretched as that which possesses money and nothing else." - Andrew Carnegie
What do you want? Answering this question is the key to your happiness. If you are a hacker, then the shear act of satisfying your want produces wealth. I've invented things my entire life, and I have to say that makes me very happy. I like making obscure tools for obscure problems. I like optimizing the shit out of the things. I like automating tedious things (because tedious things are bullshit). I oddly enjoy taking some shit ball mess of code and figuring out where it leaks memory. I like to solve problems, and I really-really love math.
The things that I do to satisfy my wants generate wealth.
What about the hustler?
The hustler's job is very straightforward: Transform the wealth that hackers generate into money. Build a nice cave, make the hackers happy on all non-hacking related dimensions, hire more hackers, and hire people to sell the wealth. Build a business that is good at transforming the wealth of your hackers into products for people, and then you win.
Extra credit: what do managers do? They make sure the hackers are producing the right kind of wealth. Tada!
Labels:
business,
technology
Subscribe to:
Posts (Atom)