This month I'm implementing a self-incentive mechanism to achieve tasks (and vaguely profit if I don't).
Last month I wrote up a list of 30 tasks, one for each day in April. If I fail to use any given day to complete one of my tasks, I move 1/100th (1%) of my previous month's salary to my savings account. This way my future self will either be cleverer (/stronger/more socially talented - due to the nature of the tasks) or richer than would happen otherwise.
Update!
So, yeah, I overestimated the extent to which I could override a certain lack of intrinsic desire to do things, in addition to having been a little depressed in the first week. I ended up completing 14 of the possible 30 tasks, while failing those that were on average grander undertakings, that would have been diving into hierarchical chunks instead of linear ones. Although I missed some easy ones too, 'go swimming', 'use new sewing machine'.
To improve this, I think I should in advance plan out what sub-tasks each individual task requires, to make the actual task have a smaller at-the-time-of-getting-down-to-doing-it motivational barrier. If there were some cloud web application that could do this (similar to Mind Map software but more convenient to use) that would be useful (I'd been developing one myself but - ironically - lost the motivation).
In total, it was an interesting experiment that would do better with modifications which could probably be enacted fairly easily, and efficiently if done online. I'm not sure of any current social-commitment website that has the flexbility to have let me manage this on my preferred terms. This is something perhaps to look at. I would like to try this again in the future with modifications.
A couple of months ago I started keeping a journal. I posted about it here, asking for recommendations, and vaguely outlining my plan. (TLDR for that post: I'm writing a traditional journal when I have the time and keeping track of activities and emotional levels in a spreadsheet everyday, since that only takes like a minute.) It's gone very well. Originally I envisioned the journal as being a far more important part, but I'm enjoying the data collection much more. (Though both are valuable and I encourage both) I've recently made the tools for actually analyzing the data I've collected, and I thought I'd make the template publicly available for anyone who wanted to try a similar project. If you are, please send me a message or comment, and I'd be happy to explain the spreadsheet in more detail, since I know it can be hard to follow. But I don't want to take the time to write this if no one is going to use it.
Surprisingly, I have found very few statistically significant correlations. For example, there is not yet any statistically significant correlation (p<0.05) between how much sleep I've gotten and how energetic I feel the next day. R-squared values for linear regressions of variables tend to be around 2%-7%, even for variables that I thought would correlate very highly. Surprisingly, what is most strongly predictive (of the things I've looked at) of my happiness is how much exercise I have gotten that day (even more so than how much I have eaten).
I feel like this is mostly because I need a lot more data. There are trends that are evident in most of my things, but they're just not statistically significant yet. I really want to have about 4-5 more months of data, and then I feel like I can make some strong conclusions. I hope I'm not coming back in another 4-5 months wanting another 4-5 months though...
Edit: Apparently I am more energetic (Significant at alpha = 0.05) when I eat more than average than less than average. I must not have looked at food eaten vs energy before. I thought I had. There's an R-squared of 21%, which is astonishingly high comparatively.
Surprisingly, what is most strongly predictive (of the things I've looked at) of my happiness is how much exercise I have gotten that day (even more so than how much I have eaten).
I don't think that'd be much of a surprise if you read much literature on exercise - exercise improving mood & cognition is a pretty common result.
Apparently I am more energetic (Significant at alpha = 0.05) when I eat more than average than less than average.
Or vice versa? (I feel very hungry on modafinil - does hunger cause me to use modafinil?)
I feel very hungry on modafinil - does hunger cause me to use modafinil?
You do? It's supposed to have the typical appetite-suppressing properties that most stimulants share.
Yes, that's the problem - my appetite is initially suppressed and then I wind up incredibly hungry. I try to eat in advance (from my nightwatch days I know how much I should eat by 3 AM etc), but again, appetite suppressant.
Yes, that's the problem - my appetite is initially suppressed and then I wind up incredibly hungry.
That makes sense. And given how degree of hunger influences what kind of food we desire you'll end up craving a bunch of carbohydrates later rather than whatever healthy food you had planned at the meal times.
FWIW, I feel pretty hungry on modafinil, too. But that's maybe caused by sleep-deprivation which is correlated with modafinil-consumption.
I don't think that'd be much of a surprise if you read much literature on exercise - exercise improving mood & cognition is a pretty common result.
I knew of the literature you mention (well, not the specific literature, but that's not the point) - which is precisely what caused me to look at it - but I thought other factors would still be more correlative. I would have thought sleep, stress, recreation time, or social time would be more predictive. But those barely correlate.
Or vice versa? (I feel very hungry on modafinil - does hunger cause me to use modafinil?)
I quite intentionally didn't say one caused the other. But I wouldn't expect the primary causality to flow from energy to eating, as opposed to from eating to energy. (Or, yes, from a common third cause)
I'm maybe 2/3 of the way through Empaths; after its completion I'll write section 4 of Blood, then start Siaddaki (the direct sequel to Silver, now complete), then finish Blood, then finish Siaddaki, and I'm not sure what's after that.
(This is all part of the Elcenia series. If you want to read it start with Summons.)
Finally got it rendered and zipped. This (zip, 37MB) is the result of an experiment, based on "I write only when inspiration strikes. Fortunately it strikes every morning at nine o'clock sharp" (W. Somerset Maugham).
The aim here: write a song on each of thirty days in a row. Doesn't have to be good, can be any old crap. You just have to do something that constitutes a finished piece. If you do two in a day, that's great! You still need to do one the next day.
Failures: well, I didn't manage one a day for thirty days. I managed twenty-two over thirty-five days. Many are nothing like a finished piece, just the barest sketch. Reasons include being too busy to reliably clear an uninterrupted hour each day on headphones to work on stuff, a bout of illness and just saying "fuck it" a bit often.
Successes: this "do something every day" method seems to get my brain pointed in the right direction, and when I said "OK, need today's tune" something would bubble up out of my brain. Frequently something awful, but that's not a criterion, and some of it is not a bad starting point at all.
Summary: I'd say it demonstrated the value of the method. It seems the sort of thing I'd do again, but if I think "would I actually do it this year, for instance?" I'm not so sure. Even though I'm basically not doing anything else in particular.
Bits you can help with: some of these I think I nicked. In particular the last one, "Please Don't Make Me Wait" (n.b.: working titles were made up on the spot) - I've listened to ten or so songs of that title, but I still strongly suspect it's ripped off. Edit: It's "Don't Get In My Way" by Linx from C81. Bah!
I admire this approach, I look forward to checking out your results when I have a little more time! I would certainly try it. I also have considered doing a similar challenge where I attempt to learn and record a song every day for 30-odd days.
I am writing a simple computer game in Java -- an improved Minesweeper. (When a first playable demo is ready, I will put in on Sourceforge.)
Why? To overcome my akrasia (I would like to start and complete something nontrivial to start a "success spiral") and to improve my emotions about programming (to make mental association: programming = "what I do freely for fun" instead of "boring stuff I have to do to pay my bills"). Later I plan to describe specific tasks related with creating this game on my web page -- I think people interested in game programming might like it.
It's a matter of taste, but right now seems to be a sweet moment for making games in JavaScript/HTML5. People will have a lower barrier to playing your game, and you'll get free publicity because many developers are holding their breath for HTML5 games right now. Also the development process will be pretty cool because you can simply reload the page instead of recompiling, right click on game objects to see their properties in an HTML inspector, execute random code snippets from the console while the game is running...
My next project will probably be a JavaScript game, but I started with Java because it's my favorite language. Although I often use JavaScript too.
I don't want to start "what is your favorite language" mindkilling debate, but for me programming in Java is more pleasant than in JavaScript. Partially because of the language, partially because of the tools. It is nice to write an anonymous function in JavaScript quickly, but I prefer a language with mandatory variable declaration and static typing, because it finds many errors in compile time, which saves me a lot of work and frustration (this is not so important when I write the new code, but becomes significant when refactoring). Also my favorite tools, Eclipse and JUnit are free. Writing and maintaining longer programs in JavaScript is rather inconvenient... but maybe it's because I'm doing it wrong.
So if there are JavaScript fans on LW, I would like to ask -- what are the best practices when developing a browser application (e.g. a game) in JavaScript? Google typically returns low-level answers, such as "always declare variables", "always use a semicolon" and "give your variables meaningful names". Let's suppose I'm already a relatively good programmer, but my experience is mostly outside of JavaScript. Are there any best practices or good free tools that an experienced JavaScript programmer could recommend me? I currently use Eclipse as a syntax highlighter, a JQuery library, and Firebug plugin. Please recommend me what you use and consider useful.
For tools: I prefer Google Chrome's inspector to Firebug, but it's pretty much a wash. I use Emacs with js3-mode, which does a lot of great syntax highlighting / error catching kind of stuff - if you're not using a really smart editor like that, then something like JSHint or JSLint would probably be a good idea.
Regarding best practices, I recommend npm style.
Also, being extremely fast-and-loose with your code's (and data's) structure. One of the advantages of a very dynamic language like JS is that you can very quickly change aspects of your design, without even having to think of it as a 'design'. You can make small changes and instantly see what happens without breaking anything. If you decide to represent something as a string rather than an int, you probably don't need to change 500 interfaces to make it work, so just make the change without thinking about it. This way of thinking makes experimentation a lot quicker and easier, and then it shouldn't take much work to 'refactor' once something is working pretty much the way it should.
Also, this is a bit obvious, but when writing code in a modular fashion, each module should be wrapped in a function and put at most one name in the global scope. js3-mode (and JSLint) let you put a comment at the top of a js file like /* global foo bar */
so you don't get warned about undeclared variables that you know about - if that list gets too long, it might be time to rethink the interface between modules.
I forgot to mention, for full disclosure: I'm the maintainer of js3-mode. Also, there's an existing issue that indentation can take a really long time (like a second) for really long js files (longer than I would ever create).
This might still be low-hanging fruit, but learn how to test specific modules, learn how to quickly identify which module is at fault, and learn to map your own common mistakes, as well as also mapping those mistakes where you spend 2 hours and feel like a fool for not catching it in 5 minutes.
More concretely, make small changes, test them, then make another small change.
Also, especially for javascript, I cannot stress enough the value of having even a basic reversion control system of "copying the folder and renaming it after each major stable milestone". I have saved myself hours of debugging by just reverting a module of code to a known-working version and writing the code change a second time (usually this time without whatever stupid mistake I made)
I seem plagued by a tendency to leave off a semicolon or to do "if (x=5)" instead of "if(x==5)", which often leads to very annoying sessions of bug hunting in Javascript. I also code using nothing but notepad, though, so I don't have tools which will catch silly mistakes like this. Having a proper IDE might make some of this advice less relevant (that said, I love coding in Javascript + notepad specifically BECAUSE it hones all of these skills - I can debug completely unknown code from my co-workers extremely fast thanks to a couple years writing games under these restrictions :))
learn how to test specific modules
Could you tell me more about this -- what is the best method and tool for unit testing in JavaScript? In Java I use JUnit for the non-GUI parts, and the GUI parts I simply don't test... perhaps I should test them too, but in my programs most of complexity is in the non-GUI parts, so if I test them, most of the work is covered.
JavaScript feels more integrated with the GUI (the browser). In theory, it is an independent language, which can be embedded in browser or in anything else, and all the browser stuff is just like an additional library. When I will write more complex JavaScript programs, I want to write them in the way that separates the program logic from the browser API. And I would want to unit-test the logic. Shortly: I would like to unit-test JavaScript code in a JUnit style, not in a "browser emulation" style. What would be the best approach to do that? Also with regards to browser emulation or integration, which are the best tools? I have tried some (Canoo WebTest, Selenium), and they seem rather inelegant when compared with JUnit testing. Although Selenium also has a programming mode that seems more friendly; I haven't tried it yet. I would appreciate some help here, so I don't have to study and experiment with dozen tools.
especially for javascript, I cannot stress enough the value of having even a basic reversion control system of "copying the folder and renaming it after each major stable milestone".
Yep, this is my blind spot. I know I should do it, I don't do it, and I often run into problems that this would prevent. I'll try to remember to install Subversion at home. Thanks for reminding me about this!
Subversion was good for its time, but a new generation of version control systems has sprung up — DVCSes (“distributed” version control). The new model is superior even for individual developers; some examples:
To get started all you have to do is enter a command to “turn this directory into a repository (a versioned directory)”, rather than having to choose/set up a server, access control, layout, naming schemes, etc as the “centralized” model (CVS, SVN, etc.) requires.
In a typical centralized VCS, when you commit changes, they are permanently in the repository as a new version; if it turns out you made a mistake, not in your code, but in how you added it to the repository (e.g. forgot to include a file), you have to make a new revision. With DVCSes, you can prepare your changes as a series of individual commits/revisions and polish and revise them before making them part of the permanent/public record. The major benefit of this for development is that it means you can commit often — every time you have made an improvement, commit it, thus preventing yourself from accidentally overwriting it without record during further development. If you make a mistake, or if the changes you made turn out to be a bad idea, you can always revert to last commit without losing anything else; and the diffs between revisions become single-topic, so more straightforward to understand.
I personally favor Git as being quick to use and flexible, but Git is generally considered obtuse in its command syntax so I wouldn't specifically recommend it to someone new to version control. There are also Mercurial (hg), Bazaar (bzr) and Darcs (that last being a bit of an oddity in itself).
I recommend against using Subversion for new work.
Regarding unit testing JavaScript, I recently asked this question myself at Stack Overflow (and if you're not familiar with Stack Overflow and the Stack Exchange Network, I recommend you should; it is a great place to get answers for technical problems), and ended up using Jasmine. I'm skeptical of the “BDD” thing, but it seems a perfectly fine tool for unit testing. I'm using it (example) to test logic inside the browser — that is, I load a web page which runs the tests and becomes the report of results — but I understand it can also be used from a “headless” environment of your choice.
Unfortunately, I do Javascript using notepad, so I can't really help you on tools.
I'd usually just write a "UnitTest" function and put my code there. From the browser, you can directly invoke a function, so you'd just do "UnitTest();" or "UnitTest_Module8();" and have them display results in the form of alerts or such.
Another useful technique is to add a label or textbox to the HTML, and then keep running debug information there, for tracking variable that you suspect might be getting set wrong. I'd also often scatter alerts through my code, just so I could tell "Okay, it has reached this point in the code" or "Okay, at this point, x=5"
IMO, the major power of javascript is the ability to run commands "on the fly" from the browser itself, and the ability to very quickly modify the source code and re-run the program.
Teaching myself C, because I will need it for my day job (I'm a software engineer, but mostly work in Perl right now) and because it will be useful for many things in the future. People in software who don't know C are like people in business who don't know English.
Writing a book on the Kinks Writing enough short stories to get a complete book of them out, and also in the process trying to get them published by SF zines. These two both because I have a long-term aim of making enough money from writing that I can devote more of my time to doing interesting stuff instead of working a job.
Assisting with a political campaign in the local elections. Aim is to slowly build a saner society -- I think we need fundamental changes to the political institutions in the UK, and support for the party in question will, long-term, lead to the probability of those changes increasing.
Teaching myself decision theory. I am on record as saying that I think Eliezer's/the SIAI's analysis of AI risks is wrong, but I think it's a non-zero probability of being right. I think that if it does turn out to be right, the most useful thing I could do would be to contribute to some of the open decision theory problems, and that this would be useful even in the much more likely case that they're mistaken.
I've been on holiday for the past two weeks. I had a to-do list this long, so of course I did other stuff. Most of what I actually achieved was working on two cover-status articles for RationalWiki.
Freeman on the land - like the sovereign citizen movement with less guns and white-supremacism. They've actually achieved slight notice in the UK, with legal magazine Benchmark even running a feature on them ... which was entirely rewritten from the RW article. Hopefully this article will help keep some of the desperate from being fooled.
101 evidences for a young age of the Earth and the universe - a point-by-point refutation of a Creation Ministries International Gish gallop. This one required actually searching out papers from creationist pseudojournals. The intended audience is people miseducated into creationism who have an Internet connection and are capable of reading and thinking. I have been told by some that the current approach would actually have worked on them, so this article might indeed make the world a better place.
I have other "what have you been working on?" to post, will do so when I have them to link.
Freeman on the land - like the sovereign citizen movement with less guns and white-supremacism. They've actually achieved slight notice in the UK, with legal magazine Benchmark even running a feature on them ... which was entirely rewritten from the RW article. Hopefully this article will help keep some of the desperate from being fooled.
Oh dear, these people. We have them over here too; I could go on for a while about the online arguments I've gotten in over their nonsense, but I'll sum their ineptitude by saying: they gave their website an Irish name, but got the grammar wrong. It doesn't really mean anything.
there are known recent beneficial mutations in humans [...] a mutation allowing humans to digest milk in adulthood that became common in Europe around 10,000 years ago [...] At the time, people with this mutation left almost ten times as many descendants as people without it.
What does this actually mean? There seem to be two obvious interpretations. (1) "The expected number of surviving children of a person with the mutation was 10x that of a person without it." That's pretty hard to believe[1]. (2) "Over some unspecified number of generations the average number of descendants per person with the mutation was 10x that of someone without". Isn't that a really silly metric? (Consider a typical very-slightly-beneficial mutation. With probability modestly over 1/2 it gets fixed in the population, and then "people with this mutation left infinity times as many descendants as people without it".) Not to mention that "at the time" then doesn't make much sense.
What am I missing here?
[1] Most credible approximation to this that I can come up with: first lactose tolerance becomes widespread, then non-human milk becomes an important food source, then lactose intolerance becomes a big big handicap and people without it could easily have 10x fewer surviving offspring. But here the real heavy lifting is done by whatever process gets lactose tolerance widespread in the first place, and there's no explanation for the alleged 10x advantage during that period.
If you got this from a popularization you may have run into a miscommunication about odds ratios versus relative rates? This is one of those known problems that will be around for a long time because its a subtle point and being wrong on the subtle point helps people score "OMG that's amazing!" points that are rhetorically effective (and get higher click-through when put in a headline) but which are not very accurate.
I have good library access. Send me a PM with your email and I'll email you the PDF if you want to check the original source for precise numbers :-)
I can access it. If you PM me your email address, I can send it to you.
While I await laptop repairs, I've been killing time by registering predictions on PredictionBook.com for Harry Potter and the Methods of Rationality, to go in my little page of categorized predictions.
what about your infrastructure required downtime due to laptop failure? a VPS or dropbox or gmail file system etc can meet security and uptime requirements one suggestion is that you could install ubuntu to boot off of a memory stick, store your files in a truecrypt volume and autobackup that encrypted file to various places
It's going to happen over and over again throughout your life, particularly if you start doing things like training neural networks or svms or whatever you are playing with. If you set aside a weekend and visit your local linux users group, they will get you all sorted out for free. The additional advantage of this is that once you are in a known clean infrastructure, it's likely that you will feel more free to write and research.
I've been in the process of getting my law firm going for a bit, and I finally took a tangible step by getting the website online. I represent parents in north Georgia seeking appropriate support services for their special needs children from the school districts. Mostly I attend Individual Education Program (IEP) meetings with parents.
It's been very difficult keeping focused on the business because I'm so used to others setting the goals and constraints for my work. And it's all very anxiety provoking. A lot of my posting here has been avoidance of something I should be doing for the firm. But I'm slowly developing an entrepreneurial spirit about things. Wish me luck.
the bullet points...
neuroscience research, particularly related to neuroeconomics
rewriting codebase from 10 projects by breaking down into about 30 smaller more easily tested components
reviewing and automating infrastructure selections (java,eclipse,jquery,couchdb,postgres,bash,ubuntu lts, maven, git, custom code for lots of stuff, apache for various little things notably hadoop and mahout) deciding on feature subsets for internal use, trusted group use, and launch trajectory in 2012
some work on money and such annoying tasks
adjusting to being engaged to my cofounder and out of cali permanently
increasing online presence
...this is all changes that benefit many different wordlines, need to select how to go public on various things
Working on finishing off my two projects to complete my degree: a portfolio of my compositions, with a three-movement horn concerto as the centrepiece, and a dissertation on the composer Gyorgy Ligeti. I'm about halfway done on each, with a month to go before deadlines. I also have to revise/complete a small number of other pieces for my portfolio, and a write 2,000-word commentary on the concerto. I'm going to post some extracts from my thesis and commentary to my blog, when they're a little more presentable.
At the same time, I've got a super-heavy workload of piano practice; I'm going for a recital diploma at the end of may, as a warm-up for a teaching qualification exam in November. And I'm involved in launching a new ensemble based in my college, playing contemporary music. I'm programming a festival for the centenary of John Cage's birth for late May - my main goal here is to get dancers involved in at least some of it, as dance was a huge part of Cage's work.
I've started working on a project to see if I can make a computer program which can generate a reasonably readable article on a given subject automatically. It's all a big mashup of various news and natural language processing APIs.
I've also discovered that there's a whole bunch of public domain motion graphics assets on the web designed for use in christian churches, so I've been making a series of "Inspiring Quotations" youtube videos out of them. Stuff like Nietzsche, Anton LaVey, horrifying bible verses, and so on. So far I've finished seven, and I have enough material for probably a dozen more.
Here's a link: http://www.youtube.com/user/inspiringquotations
I would start with something like reuters API, http://wordnet.princeton.edu/ and some research on these guys http://pdos.csail.mit.edu/scigen/ this is a fairly well studied problem by spammers, so I'd also work there
Thanks for the tips! I've been playing with the Alchemy API for NLP (http://www.alchemyapi.com/) and an API called DayLife (http://developer.daylife.com/) for news sources, etc.
I'm trying to do my best to make it as un-spammy as possible, but how far I can get with that remains to be seen. I have a plan to take advantage of the inverted pyramid story structure so common in news reporting, along with entity extraction on the paragraph level, to get something out of it that's more or less readable. I'll post an example when my prototype works.
I'm working (still) on my emacs-based e-mail client mu4e (github). It's been a lot of fun so far (and a great learning experience); and I can combine a project for learning with improving a tool that I use all the time.
Also, reading quite a bit. After going through a series of rock-star biographies and some Dennett, Pinker, I went back to fiction; Truman Capote (In Cold Blood) and Hunter S. Thompson (Fear and Loathing in Las Vegas), and I'm now reading Rand's Atlas Shrugged. It's long, near self-parody and preachy, but somewhere there's a kernel of an interesting dystopian science-fiction story. Oh well.
Finally, I may need to start looking for some new way to make money in a few months. I'm studying my options.
I'm writing a forward planner to help me figure out whether to attend university for another year to finish my computer science degree, or do something else such as working for my startup full-time. I have a working prototype of the planner but still need to input most of the possible actions and their effects.
I chose this project because I think my software will do a better job assessing the utility of alternatives than my intuition, and because I implemented a forward planner for an artificial intelligence class I'm taking and wanted to apply something similar to my own life to help me plan my future.
More immediate goals have been put on hold while I pursue a project of opportunity. Work has sent me to the Philippines, where I've been for the past three weeks, to help the US Army build schools. Since I want to, one day, live and work in southeast Asia for an extended period of time, this has been a great chance to gather information cheaply.
Lots of firsts for me: first time outside the US, dealing with a language barrier, working in a military environment (I used to wonder how I'd have fit in if I'd joined the service, and WOW the culture does not suit me AT ALL). It's been highly stressful (also a new experience because my life is so relaxed) and highly rewarding. The best part is the success we've seen on the project: this reflects well on my boss and my company, and I'll use that capital when I get back home. I just have to decide how to spend it.
This is the bimonthly 'What are you working On?' thread. Previous threads are here. So here's the question:
What are you working on?
Here are some guidelines: