Ask HN: what are some good resources to understand economics? - <AUTHOR>

Given what's happening in the United States now, I think it's crucial to have a good understanding of the economy. I always feel that the press is not providing good resources (at least press I have access to).<p>Do you know any good books/blogs/videos explaining subjects like debt/inflation/credit ratings/economic policies/ in-depth while being approachable by non-economists? <comment><USER2> >what's happening in the United States now, I think it's crucial to have a good understanding of the economy

I aver its not crucial to understand economics. It is crucial to understand finance. This view was hammered into us repeatedly at the University of Chicago.

The seminal paper, by Mr. Larry Summers, on the distinction: <http://m.blog.hu/el/eltecon/file/summers_ketchup%5B1%5D.pdf> or on jstor ( <http://www.jstor.org/pss/2327785> )

You need to know how to add. You don't need to know about the well-ordering principle. I say this as a math major who would love it if everyone knew why add works in an integral field( ie. Peano arithmetic: <http://en.wikipedia.org/wiki/Peano_Arithmetic#Arithmetic> ).

To quote my professor, there's 2 big portions to econ - the narrative portion and the arithmetic portion. The first is mostly storytelling. Granted, there's some consensus around the arc of that story ( more consensus in micro-econ than in macro-econ ), but its still a story. The second completely ignores the story. It just says if debt is what it is, ie. some x, and inflation is y, what should the CDS be priced at ? ie. if CDS = f(x,y) what should that f look like ?

Turns out that question is much more useful and actionable than the story- telling aspect. If somebody told you the Dow fell by 500 points, its more useful ( in a utilitarian sense ) to know what you should do with your personal portfolio, than to know the reasons for Dow's fall (assuming that set of reasons are even knowable). You might think the causation would be useful. It is, to a very small extent, but the actionable portion ie. what you must do, can be understood much more efficiently by simply focusing on the prices of individual instruments that characterize market indices, derivatives on those indices, ETFs that make a play on debt, inflation etc. The fact that there were 10,300 puts at 113 strike on the August DIA yesterday is more useful than what any individual economist thinks. It tells you that the short term consensus view of Dow is 113*100 = 11300 ...the trend is down-sloping in the short term.

Ironically, Summers said finance guys were mere ketchup economists. The dept. of Ketchup pays ketchup economists huge salaries so they could calculate the price of 2 quarts of ketchup if the market told them the price of 1 quart. Whereas "real economists" were engaged in doing research on why a quart of ketchup was priced the way it was ie. due to consumer wages, tomato prices, cost of harvesting tomato, soil conditions etc.

Paraphrasing Summers "Ketchup economists reject research of the ketchup market. They believe prices of ketchup are the only hard data worth studying". You may not agree with any of this - but I do urge you to read that paper. Its had a huge influence on the asset pricing community.

<comment><USER3> Just like to say I've been really enjoying your contributions to Hacker News. And thanks for the link to the Summers paper, will give that a read.

Thinking about your point though, isn't it more important that the average person understands economics so that they don't vote for economically/financially illiterate policies/politicians?

<comment><USER2> Thanks! My finance buddies in IB/PE like to say that finance is the only portion of econ that actually works. The braindead portion = econ minus finance, is only good for academia, a shot at the Nobel and a job at the treasury :)

I actually think econ is a huge distraction net-net, because of the compelling number of contradictory narratives that cannot obviously all be simultaneously true. In that event, the only objective function is the asset price. In that sense, its important to latch on to asset prices and functions of those prices, understand how the slopes of those functions change, and then understand how the vector sum changes if you take a bunch of those products in tandem. Personally, I've been able to protect my portfolio only by not getting distracted by the underlying economic explanations( assuming those are even valid, given the dubious nature of the source ie. right-wing economist vs left-wing vs freshwater economist vs saltwater vs libertarian vs pseudo- socialist vs social-democratic vs conservative vs religious-conservative vs fiscal-conservative vs 100 other flavors ) and just focus on market indices that matter and derivatives that hedge those indices in case things go south.

I will go out on a limb and claim that if you spend $100 subscribing to 4 trading forums/chatrooms ( whether day-trading or swing-trading or commodities or derivatives or fx ), you are saving yourself a lot of grief than if you spend the same $100 buying econ publications. Atleast the former opinions can be validated by simply buying/selling whatever asset they advocate ( not necessarily with real $, just paper-trade ). The latter cannot be validated at all. I remember attending a lecture where the reputed economist says unemployed people must be taxed at a higher rate because they are consuming oxygen but not paying revenue towards the GDP! That is actually very sound economics from some bizzaro school of thought ( <http://healthcare- economist.com/tag/oxygen-tax/> ) taken to its logical conclusion! Rather than think about this dismally depressing scenario, tell me the price of such oxygen contracts and I'll see if the market is sufficiently liquid so I can take a position in those contracts :)

<comment><USER3> Hmm, the finance/economics divide is reminding me somewhat of the morality/legal divide. It's tempting to look at the idea of basing all your decisions about viable strategies on hard finance data as being akin to basing all your moral judgement on whether an action aligned with current laws. The latter seems obviously flawed, but at least it offers some degree of empirical certainty - whereas nobody can actually agree on a standard of morality (there are many differing philosophies etc.).

<comment><USER2> There's a beautiful, beautifully argued book by Martin Gardner ( [http://www.amazon.com/Whys-Philosophical-Scrivener-Martin- Ga...](http://www.amazon.com/Whys-Philosophical-Scrivener-Martin- Gardner/dp/0312206828) ). There are 2 chapters on economics in that book, one on free market capitalism ( "why i'm not a smithian" ), one on i guess you could call it lite-obamaism ( "why i'm not a marxist" ).

Gardner rejects both. He works out some math behind their assumptions. Then states his moral objections to both of them. I used to think Martin Gardner was a giant puzzle-master with super high IQ. After reading that book, I discovered a thinking, anxious, doubtful, religious, deeply charitable & generous human being. To date, it remains my favorite Gardner book. Do check it out, I think you'll love it. The rest of the book documents Gardner's careful rejection of all of the popular philosophies ( solipsism, anarchism, polytheism, monotheism, relativism, pantheism, determinism etc. ). Its a monumental piece of work.

</comment></comment></comment></comment></comment><comment><USER4> A meta-comment on the answers to this question: For various reasons, a disproportionate number of HN commenters are fans of "Austrian School" economics. You'll see links to papers from mises.org, books by Murray Rothbard, etc. Without passing judgment on any of this work, if you're new to economics it would probably be helpful for you to understand that it's outside the mainstream.

To answer your question more directly (although only partially): Wikipedia is quite good on the major economic concepts and figures. I'd imagine that the Wikipedia article on any of the subjects you mentioned would be a good, brief, thoroughly hyperlinked starting point. Check out <http://en.wikipedia.org/wiki/Inflation>, for example.

<comment><USER5> I'll pass judgment on Austrian economics: it's terrible. It's just tarted up right-wing politics. They start with the assumption that free markets are magic and from that they conclude that free markets are magic. Seriously, they're against empiricism. They assume they're right and don't bother to check their work. That's why as a research program it's never gone anywhere.

Austrians are just rightwingers who chose an economics to suit their politics. If people want to be rightwing that's fine. There's no reason to drag bad economics from the 1930s into it.

</comment></comment><comment><USER6> Tough question to answer, since economists don't fully understand economics yet either, and still get it wrong (how many professional economists besides Roubini foresaw and warned of the financial crisis again?).

Some of the most important bits of foundational knowledge I've accumulated over the years:

1\. The Industrial Revolution demonstrated to humanity that wealth could be created from thin air, on a large scale, and hence civilizations had an alternative to stealing it from each other. There are basically two ways of creating wealth:

-1) Harvest raw materials, apply labor, capital, and innovation to convert them into finished products worth more than the sum of their parts. The diff between what it cost to make the product and what you sell it for is the wealth you've created out of thin air (more commonly known as profit). It's why manufacturing is important.

We used to take hundreds of dollars worth of wood and iron and turn it into thousands of dollars worth of sailing ships. Now we take hundreds of millions of dollars worth of sand, aluminum, and copper and turn it billions of dollars worth of microchips.

-2) Provide a service that saves other people time and/or money. Time & money = wealth. With the time/money saved, they can either do more of #1 or #2, invest it, spend it in leisure, or whatever else is of value. More commonly known as specialization.

Most things are combinations of the two - products that save time or money (web apps, cars, etc.), or services that reduce the cost of #1 or increase its final value.

2\. In a fiat currency system, the underlying of everything is interest rates, and the underlying of interest rates is the risk-free rate of return. If you only watch one single data point, the risk-free rate is the most important. When it moves, everything moves (since all other interest rates are indexed off of it). Normally the risk-free rate is considered to be US Treasuries, but over the past few years there's been thought amongst some actuaries, economists, traders, etc. whether it's not something else, like a composite of US Treasuries and LIBOR, or something else. But just be aware that there is a concept of a baseline interest rate upon which all other interest rates in the economy are indexed on, and even tiny movements in the baseline rate have major ramifications for the entire rest of the economy.

3\. Incentives matter. One of the things that all economists across all schools of thought agree on. One good article: [http://economix.blogs.nytimes.com/2009/09/09/what-weve- learn...](http://economix.blogs.nytimes.com/2009/09/09/what-weve-learned- incentives-still-matter/). Plenty more if you google the phrase.

4\. Fractional reserve banking. Many people misunderstand how this works, so I'll preface by saying that individual banks _cannot_ create money. Eg, an individual bank cannot loan out more than it has in deposits. If a bank has $100 in deposits, and the Federal Reserve sets the reserve ratio at 10%, the bank must keep 10% in reserve, eg it cannot loan out more than $90 of its $100. But, the banking _system_ can essentially create money, or multiply it, based on the fractional reserve ratio and the money multiplier. Wikipedia has a good table that demonstrates how this works: <http://en.wikipedia.org/wiki/Money_multiplier#Table>

4\. On a meta level, don't subscribe to one economic school or another, rather learn and understand them all, where and why they disagree, but don't get emotionally invested in any one of them. I see lots of Austrians in this thread and a Keynesian or two. Listen and understand, don't believe. Economics is the study of one of the most complex, dynamic, and intractable systems we know of, and no school has it completely right yet, all are subject to further revision.

5\. In that vein, read Benoit Mandelbrot's _The (Mis)Behavior of Markets_ for a good discourse on why economics is so difficult and intractable. <http://www.bearcave.com/bookrev/misbehavior_of_markets.html>

6\. Also read Charlie Munger's Harvard Commencement speech, _"On the Psychology of Human Misjudgement"_ , for a reminder of why not to get emotionally invested in one school of econ, or worldview, or religion for that matter. [https://duckduckgo.com/?q=munger%20psychology%20of%20human%2...](https://duckduckgo.com/?q=munger%20psychology%20of%20human%20misjudgment&kh=1&kg=p&kp=-1&kb=d)

I can think of more, but that's enough for now, hope it helps a little.

</comment><comment><USER7> The federal reserve banks have some good resources, but I would go through these in this order:

<http://www.federalreserve.gov/aboutthefed/default.htm> >> <http://www.federalreserve.gov/pf/pf.htm>

<http://www.khanacademy.org/#current-economics> >> <http://www.khanacademy.org/#banking-and-money>

<http://research.stlouisfed.org/>

To qualify this, I do have a B.S. degree in Econ.

[ADDED]: An important component of risk analysis is _political risk_ (but it is often overlooked in discussions dealing with the U.S. due to the perception that it is most stable alternative). There is a fine Wikipedia article that discusses this, and in light of the recent downgrade, may help explain things: <http://en.wikipedia.org/wiki/Political_risk>

</comment><comment><USER8> I would suggest Greg Mankiw's Principles of Economics.He also has a blog here <http://gregmankiw.blogspot.com/>

<comment><USER9> +1 for anything by Mankiw. We read several of his books when I was studying Econ in college a few years ago. Given your interest in inflation, government spending, etc, you'll want to focus on the chapters on Macroeconomics. I also found a good presentation from the Berkeley website that might be interesting:

[http://emlab.berkeley.edu/users/webfac/wood/e100b_f08/intro....](http://emlab.berkeley.edu/users/webfac/wood/e100b_f08/intro.pdf)

</comment></comment><comment><USER10> Keep in mind your question is quite broad like asking how to get started into programming.

You will get conflicting opinions on economic models and theories like you would on programming languages and algorithms.

The mainstream press provides brutally inaccurate opinion and talking points regarding economics. Completely ignore those articles and look into some expert talks like the npr posts recommended.

Study how the federal reserve decides to move interest rates - it is the post important macroecon process.

<comment><AUTHOR> True, I expect there's not one and only resource. I'd like to know of quality resources from different models, even contradictory ones.

By just reading the news I learn about facts but not about underlying processes, root causes etc.

Not about why it is necessary to bail out Greece with different scenarios that could play out if we don't do it.

<comment><USER6> <http://tickerforum.org/>

Search for 'Genesis'. Ignore the political discussions, and don't bother with context, just find the few posts where he elaborates enough that you don't need the context of the rest of the thread. Or start reading his blog, <http://market-ticker.org/> starting back at the beginning around 2006.

He's unabashedly conservative/libertarian, but he has had the strongest grasp of the mechanics of the financial crisis going all the way back to 2006 of anyone I've yet seen, even vs famous economists like Krugman. Originally an engineer, made his fortune as an entrepreneur, now manages his money from Florida, blogs about the crisis, and runs that discussion forum for investors.

</comment></comment></comment><comment><USER11> Accessible read on banking: <http://mises.org/mysteryofbanking/mysteryofbanking.pdf>

I have always found the "back stories" on how/why our economy came into existence to be "pulled out of thin air". I just started reading this new book: <http://www.amazon.com/Debt-First-5-000-Years/dp/1933633867> I'm only about 1/3 the way into it, but so far impressed.

<comment><USER12> Oh Graeber's book is out! Lovely! I have been passing around his essay by the same name for some time now. Should be a good intro to the book [http://blog.longnow.org/2010/04/22/debt-the-first-five- thous...](http://blog.longnow.org/2010/04/22/debt-the-first-five-thousand- years/)

I would also recommend anything by David Harvey. Start out with this animated version of one of his talks: <http://www.youtube.com/watch?v=qOP2V_np2c0> Then move on to his Capital vol. 1 lecture series. <http://www.youtube.com/watch?v=gBazR59SZXk> There is also a book format of his reading guide

</comment></comment><comment><USER13> My apps <http://cascadesoft.net/EconomyApp.aspx> (iPhone, iPad, Windows PC) provide a snapshot of the US economy. The iPad and iPhone apps were once ranked #1 on Apple's top charts for the Finance category.

Obviously, I can't claim to be entirely objective in this matter, but I think that the app is a great resource for anyone who wants to understand the US economy.

</comment><comment><USER14> Two more sites: I use <http://economistsview.typepad.com/> to get a summary of opinions and links to other sources, and I understand there are now some finance videos/courses at <http://khanacadmey.org> under the Banking/Money section (I haven't vetted them yet).

</comment><comment><USER15> "Begg, Dornbusch and Fisher" for a one-volume treatise on Economics. That was my Economics 101 book last century, but constantly updated and revised the recent editions are still topical and clearly explained

Dornbusch and Fisher also publish a standard one-volume treatise on MacroEconomics which might be a better fit for your country-level requirements.

</comment><comment><USER16> I like _Price Theory_ by David D. Friedman ([http://www.daviddfriedman.com/Academic/Price_Theory/PThy_ToC...](http://www.daviddfriedman.com/Academic/Price_Theory/PThy_ToC.html)) and _Human Action_ by Ludwig von Mises (<http://mises.org/resources/3250>).

</comment><comment><USER17> "Economics in One Lesson" by Hazlitt is digestible, a quick read, and gets to the heart of a lot of issues, IMO.

<comment><USER5> This is one of the worst books ever written. It's just an introduction to 1940s right wing politics.

<comment><USER18> Yet surprisingly it explains the shitstorm we have today better than most textbooks based on monetarist, keynesian, or efficient market theorists.

<comment><USER5> Show me in the book where that's true.

</comment></comment></comment></comment><comment><USER19> Semi-related comment but...we need a HN-like site for Economics. I believe there was something like that before, but I'm not sure what happened to it.

Anyone interested in starting something like that on the side as a hobby?

</comment><comment><USER20> There is a wealth of articles, free (good!) books, etc. at <http://www.mises.org/>, home of Austrian economics online.

</comment><comment><USER21> <http://www.calculatedriskblog.com/> has really awesome summaries of key economic data and development.

</comment><comment><USER22> Wealth of Nations, seriously. Over two hundred years ago Adam Smith laid out the important concepts.

<comment><USER18> There is a little bit of good information in there, but his theories of value are terrible. When you read this do yourself a favor and research the subjective theory of value as well. It describes the real world far better than the labor theory of value.

</comment></comment><comment><USER23> Personally, I really like Austrians.

Mises.org is a good place to start in that regard.

<comment><USER5> That's politics, not economics.

<comment><USER18> mises.org has a lot of economic and political theory, and it ties both together rather well.

<comment><USER5> Those mises.org people are neo-confederate crypto-racists. It's great if you're interested in the economics of feudalism.

<comment><USER24> What is a crypto-racist? I've met many people who work there and have found them quite friendly. And what's wrong with 1940s right-wing politics? It was definitely more sane than modern politics (right and left).

</comment></comment></comment></comment></comment><comment><USER25> <http://www.npr.org/blogs/money/> is great for understanding what's going on right now

There was a fantastic 1980 PBS (video) series called Free to Choose, by Nobel- Prize winning economist Milton Friedman and his wife Rose. It's available for free viewing here: <http://miltonfriedman.blogspot.com/>

Once you get into economics, you will like this blog: <http://marginalrevolution.com/>

<comment><USER5> MR is a right-wing blog. Not so much economics.</comment></comment>


The secrets of really, really lucky companies - <AUTHOR> http://www.boston.com/bostonglobe/ideas/articles/2009/04/12/luck_inc/?page=full <comment><USER2> Here's the secret: there is no secret ("There is no spoon, Neo.")

GE's hiring practices, although touted quite a lot in Topgrading (which was recommended to me by Mint.com's CEO), may not necessarily work in your case. But the underlying principle of "hire the smartest people" is a theme throughout the book that ties into a bunch of general themes I've seen from many start up success stories.

I don't actually like to read books on this stuff, I'd rather study the people who started the company and hear it directly from them. Across the board, I've heard a pattern of things. I'll grab a few from this: <http://www.paulgraham.com/startupmistakes.html>

1\. Hire smart people (#6)

2\. Launch fast, iterate a lot (#8)

3\. Be frugal (#12)

4\. Hustle like crazy (#18)

5\. Don't be afraid to take risks (#16)

* This is not a deal breaker.

Use anecdotes for inspiration, nothing else. There are way too many variables that you aren't seeing or accounting for.

<comment><USER2> Oops. I deleted my old #1 (have multiple founders) and forgot to delete the footnote "this is not a dealbreaker." too late to edit

</comment></comment><comment><USER3> Despite the glib headline this is actually important and deeply interesting. It's fundamentally about a complete lack of the scientific method being applied in the business world. Instead we've got witchdoctors, quacks and gurus guiding a vital part of our society.

Try translating some of the stuff in the article to medicine or science. What makes you healthy or ill? Well we asked around the office and found some people we thought looked healthy, then interviewed them to find out what they do. Okay, some of them died horrible deaths shortly afterwards, and may not even have been healthy at the time. Perhaps they died due to the stuff they were doing "for the good of their health" or maybe just because good luck turned to bad but that's not important as long as our initial conclusions makes a plausible story. After all, no-one likes it when science is counter- intuitive and doesn't fit their preconceived ideas, and they'll actively resist such conclusions.

Derren Brown did an excellent program on this theme called The System (<http://en.wikipedia.org/wiki/Derren_Brown#The_System> spoiler warning!) where you got to follow an individual as they won bets again and again on horse races and you got to see the confidence and belief building in them. It really humanized the cognitive biases that lead to the sloppy thinking in areas like this article highlights.

</comment><comment><USER4> books targeted at useless middle managers are useless. news at 11.

</comment><comment><USER5> Luck ?</comment>


Ask HN: How to find volunteer developers for non-profits - <AUTHOR> Are there any resources where developers can pair up with non-profits to help them with technical problems? <comment><USER2> [https://socialcoder.org/Home/Index](https://socialcoder.org/Home/Index) is a good place to start.

<comment><AUTHOR> Thank you !</comment></comment>


Data-Oriented Design - <AUTHOR> http://www.dataorienteddesign.com/dodmain/node1.html <comment><USER2> I guess a lot of (good) information on this site, but who can read these wastelands of texts? This is huge.

<comment><USER3> It's really not that much. The outline makes it look like a book, but the truth is each of the 15 "chapters" range between a small and a medium sized post. Most of the subsections are one or two small paragraphs.

<comment><USER4> Non the less. The formatting makes it very hard to read. the information architecture isn't in any way better and the order of navigation (next, up, and so on) buttons is slightly strange.

For me the usability and readability suffered greatly and I really had a hard time grasping the basic concepts from the introductory chapters.

So I am still lost even while thinking, that there might be something more behind this concept.

<comment><USER5> It looks like a converted-to-html info manual. I've never found the next/previous parts quite intuitive (because they go down the hierarchy and then back up), though up at least makes sense.</comment></comment></comment></comment>


So You Want to Write Your Own Language (2014) - <AUTHOR> http://www.drdobbs.com/architecture-and-design/so-you-want-to-write-your-own-language/240165488 <comment><USER2> Alternatively, just write software in a Lisp variant (with good macros, clojure is quite meh here) or Ocaml or Haskell.

These languages put you at the level of writing a language for each problem domain immediately and with a comprehensive and useful toolkit. These languages also do this while directly competing with all but the most carefully tuned of C++/C environments. Steel Bank Common Lisp and the Glasgow Haskell Compiler are good references here.

These languages are often considered strange because of this, and feel somewhat alien. But once you realize you're building a language to model your problems, suddenly tons of stuff makes more sense. Previously alien concepts like Macros and Monads are outside the typical language's experience precisely because the language authors created these contexts and put you inside them.

This article is sort of fundamentally wrong that it's difficult to write small, purpose built languages. It's not, and even outside the functional and homoiconic meta-syntactic world we have seen code generators deployed regularly. Successful products and libraries are build using these techniques all the time, and with a modern toolchain it delivers excellent results. It's just that other more restricted and guided approaches are often introduced earlier in people's learning curve and sets the expectations for them subsequently.

<comment><USER3> I'm approaching an intermediate level in Haskell, but I don't really see how writing a program in Haskell is any more like writing a language than writing a program in, say, python. Could you elaborate or point to some DSLs written on top of Haskell? I'm very curious.

<comment><USER4> How about BASIC in Haskell?

[http://augustss.blogspot.co.uk/search/label/BASIC](http://augustss.blogspot.co.uk/search/label/BASIC)

<comment><USER5> (From article comments)

        #include <stdio.h>

        int
        main(int argc, char **argv)
        {
          double i, s;
          s = 0;
          for (i = 1; i < 100000000; i++)
            s += 1/i;
          printf("Almost infinity is %g\n", s);
        }

        Lennarts-Computer% gcc -O3 inf.c -o inf
        Lennarts-Computer% time ./inf
        Almost infinity is 18.9979
        1.585u 0.009s 0:01.62 97.5%     0+0k 0+0io 0pf+0w

And now the Haskell code:

        import BASIC
        main = runBASIC' $ do
            10 LET I =: 1
            20 LET S =: 0
            30 LET S =: S + 1/I
            40 LET I =: I + 1
            50 IF I <> 100000000 THEN 30
            60 PRINT "Almost infinity is"
            70 PRINT S
            80 END

And running it:

        Lennarts-Computer% ghc --make Main.hs
        [4 of 4] Compiling Main             ( Main.hs, Main.o )
        Linking Main ...
        Lennarts-Computer% ./Main
        Almost infinity is
        18.9979
        CPU time:   1.57s

As you can see it's about the same time. In fact the assembly code for the loops look pretty much the same. Here's the Haskell one:

        LBB1_1: ## _L4
                movsd   LCPI1_0, %xmm2
                movapd  %xmm1, %xmm3
                addsd   %xmm2, %xmm3
                ucomisd LCPI1_1, %xmm3
                divsd   %xmm1, %xmm2
                addsd   %xmm2, %xmm0
                movapd  %xmm3, %xmm1
                jne     LBB1_1  ## _L4

\---

 _OMG that is astonishing_

</comment></comment></comment></comment><comment><USER6> Another reason for writing your own:

I have a sprawling codebase written in a 80s/90s era closed 4gl. Crossroads. a) keep kicking this can down the road using what I have inspite of its obvious and increasingly imposing limitations, b) discard it and rewrite or code in something else inspite of loss of hard won business rules, logic, behaviours and feel of the code over the years or c) develop a compiler/runtime and evolve it from there.

Went with c). In hindsight was incredibly ambitious but glad I did it. Been evolving compiler and runtime steadily. Now at point where I am starting to think about how to bend the language to discourage certain anti-patterns the language by design encourages and move the code base away from these anti- patterns (excessive use of global variables for one).

Alot of consequences I have to accept with this approach though, one obvious one is it is hard to find and hire programmers who want to work on the frankenstein's monster I've created here. Programming seems easy when it's all new and shiny and you are minting things for the first time. Old code is challenging, there are no obvious solutions forward, none I've found at least.

</comment><comment><USER7> There are so many languages available these days, so the first thing to ask is "what is unique and beneficial about my language?" (valid answers might be that it is a unique combination of features seen elsewhere, that it addresses a specific domain's problems better than any general-purpose language, or that it is an experiment.)

Someone made an interesting point about Kotlin recently: as one might hope for a language coming from an IDE maker, it has excellent tools. I have heard Alan Kay make a similar comment about Smalltalk. There are a couple of semi-popular languages that I feel are significantly disadvantaged by their lack of tools support (primarily in debugging and documentation.)

<comment><USER8> I have long wanted to see programmers experiment with taking this IDE thing much further. Almost every other authoring tool has an opaque file format, manipulated via one or more views. E.g. when a digital artist wants to create and manage a complex 3D scene, they use a tool like Maya. They're not fussed about whether they can read the file format!

So why not try letting the program exist as an embellished AST, that you edit in multiple IDE views? You could still have text views that present the program in one or more programming languages. But also views like circuit diagrams, graphical call graphs, other standard programmer diagram types. A run-time view with a time axis and time controls, with graphical representations of the program, ability to rewind, fiddle with state, travel visually down all the code paths.

Can we really do no better than text + our imaginations and whiteboards? I'm almost certain we can do better.

Or, if you find those ideas a bit eccentric, then start with just having views of source code. For example, my team requires verbose symbols, but I like very short symbols. I wish I could just have a simple map from the long symbol names to short ones, and toggle my view of the source code without affecting the source code. But since no IDE I know of has the concept of a view, I don't know how to do this today with existing tools.

<comment><USER9> AST = Abstract Syntax Tree.

" ... manipulate AST ... "

Interesting thought, but that's not a property of a language per se but a function of the IDE.

<comment><USER10> Except for editing lisp, which manipulating the AST directly in code.

<comment><USER11> Not really. The AST in lisps is much more obvious, but you're still editing a text serialisation format, and any features that operate on the AST itself are provided by the IDE on top of that.

<comment><USER12> There is no "concrete" AST that's not a "serialization format". A binary AST is also a serialization of AST.

Lisp source is pretty much as close to AST as you can get while still staying in text-land. That said, experienced Lisp developers often use tools like Paredit mode that let them navigate and edit the code in terms of tree nodes, not characters.

</comment></comment></comment></comment></comment></comment><comment><USER13> > These are false gods:

> Minimizing keystrokes. Maybe this mattered when programmers used paper tape, > and it matters for small languages like bash or awk. For larger > applications, much more programming time is spent reading than writing, so > reducing keystrokes shouldn't be a goal in itself. Of course, I'm not > suggesting that large amounts of boilerplate is a good idea.

Couldn't agree more! No one needs another perl or bash. Languages should be as concise as possible, but not more.

Also good points about familiarity and helpful error messages.

<comment><USER14> > No one needs another perl or bash. Languages should be as concise as > possible, but not more

I've seen you lump perl and bash together before, but around the idea of sigils like $ and @. This sounds more like a complaint about "default" operations. Like Perl's $_ perhaps?

Other than that sort of thing, I don't see where Perl reaches that far in being concise. Maybe regular expressions being a first class thing? Like "if ($foo =~ /bar/)" ? Though that seems straightforward to me.

</comment></comment><comment><USER15> > Redundancy. Yes, the grammar should be redundant. You've all heard people > say that statement terminating ; are not necessary because the compiler can > figure it out. That's true — but such non-redundancy makes for > incomprehensible error messages. Consider a syntax with no redundancy: Any > random sequence of characters would then be a valid program. No error > messages are even possible. A good syntax needs redundancy in order to > diagnose errors and give good error messages.

This makes no sense. A terminator is required, multiple terminators (ie, redundancy) are not. Various modern languages eliminate redundancy: any random sequence of characters is not a valid program in those languages.

Disappointed Dr Dobbs would publish something like this.

More subjectively:

> Tried and true. Absent a very strong reason, it's best to stick with tried > and true grammatical forms for familiar constructs. It really cuts the > learning curve for the language and will increase adoption rates.

More people will program in the future than who do at present. If you aim to approach this audience, things like using '=' to set values, rather than test equality, make no sense to the vast majority of those people.

<comment><USER16> The lack of a terminator in python, and the optional terminator in JavaScript, has often produced weird errors for me, when the compiler and me disagree on if something should be interpreted as one line or two. With a semicolon, it's clearer.

Of course, missing semicolon errors are still annoyingly bad, I wish GCC and clang could produce better errors messages in this case.

<comment> ben-schaaf I've had similarly weird errors in python, but given the same situations its ever occurred to me in ruby. Maybe its just the way the grammar is defined, for example stuff like the following works perfectly fine in ruby while python just says "Invalid Syntax":

      foo = 1 +
            2

<comment><USER17> You just need to add an escape character, "\". This is python 101

This is properly interpreted:

        foo = 1 + \
            2

<comment><USER18> Python will automatically escape newlines in some contexts. Another way to accomplish the above is to wrap the expression in parenthesis.

        foo = (1 +
               2)

</comment></comment></comment></comment></comment><comment><USER19> Trying yourself at inventing a new programming language is both fun and an excellent intellectual exercise - regardless of whether you want to make your language "better" than the one(s) that you are familiar with.

It also opens a path to humility and a true appreciation of work of others.

<comment><USER20> It's fun taking an existing feature in one language, and implementing it in another language that doesn't have it. Often you'll come up against a simplicity/power tradeoff; making that decision (after thinking hard) and then comparing it to how the others did it is usually an interesting revelation. Lisps are the canonical language for doing this in, but sweet.js macros could enable some interesting results as well.

</comment></comment><comment><USER21> Related :) - [http://colinm.org/language_checklist.html](http://colinm.org/language_checklist.html)

</comment><comment><USER22> Author here. So Ask Me Anything!

<comment><USER23> _A context-free grammar, besides making things a lot simpler, means that IDEs can do syntax highlighting without integrating most of a compiler front end. As a result, third-party tools become much more likely to exist._

This statement feels imprecise in a couple ways. It seems to imply that some IDEs actually use context-free grammars for syntax highlighting? Which ones?

As far as I can tell, Vim and Textmate bundles (i.e. what Github uses for syntax highlighting) don't use anything close to a context-free grammar for their syntax highlighting models. They are more like ad hoc lexers -- a collection of rules and regular expressions.

Certainly an editor doesn't want to parse the entire file to highlight text, because it has to potentially re-highlight at every keystroke. Also, you want to be able to highlight malformed programs (i.e. code with syntax errors). As far as I understand, that's generally why they don't use grammars.

I think you might mean that a language should be designed with a concise grammar so that somebody else can reimplement it by hand more easily? That is, you want multiple independent implementations.

If that's true, "context-free grammars" is the wrong term to express that notion. Context-free grammars don't handle many real languages, not just C and C++, but also Python/Perl/Ruby, and even JavaScript and Go (semi-colon insertion.)

Also, a lot of tools are enabled not by grammars but by producing specific data structures for your front end. (e.g. here is the way I think about it: [http://www.oilshell.org/blog/2017/02/11.html](http://www.oilshell.org/blog/2017/02/11.html) )

The different between Clang and GCC is that Clang is a library that enables a whole ecosystem of fantastic tools, including IDE support. But Clang doesn't do much at all with CFGs. The real difference is that the front end is a library that produces a very rich representation of the code.

The C# front end does similar things. More links here: [https://github.com/oilshell/oil/wiki/Lossless-Syntax-Tree- Pa...](https://github.com/oilshell/oil/wiki/Lossless-Syntax-Tree-Pattern)

In other words, I would say that integrating the compiler front end into the IDE became the more popular and successful approach. And of course the compiler very much has to be designed with this use case in mind.

<comment><USER22> > integrating the compiler front end into the IDE became the more popular and > successful approach

C and C++ syntax highlighting suffered for decades because it was not possible to do a complete job of it without integrating a compiler front end into the IDE.

<comment><USER23> I think you're talking about Intellisense-like functionality, not syntax highlighting. Syntax highlighting works just fine in C++ in many editors.

The red squigglies in Visual Studio is a completely different technology than syntax highlighting, which is lexical.

Intellisense has only a rough relation to context-free grammars. Some of the red squigglies are errors in semantic analysis, not parsing. That is why the more fruitful approach was to integrate the actual compiler and the IDE -- not have two separate parsers/compilers, as was the case with Java IDEs.

Also, I think it was always "possible" to integrate a C++ front end and an IDE -- just nobody did it in an open source compiler until Clang.

<comment><USER22> No, I'm not talking about Intellisense. Just highlighting the code correctly. The C++ editors that don't integrate a compiler front end tend to get confused when you do tricks with macros, backslash line splicing, and trigraphs, for example. They'll also have trouble with the >> thing and templates, and preprocessor metaprogramming stuff like:

        #define BEGIN {
        #define END }

They do work fine with conventional code, but if one knows the darker corners of the Standard, they can be broken.

One could argue "don't write code like that", but as a tool developer there is always someone that does. When designing a language, though, one can design out all those problems.

<comment><USER23> OK, but highlighting the code correctly has essentially nothing to do with context free grammars.

This happens in Vim and Emacs with languages other than C and C++ -- here docs in shell, multiline strings in Python -- and Python _does_ use a CFG, etc.

I agree it's annoying although I think most people view it as a minor thing. They stick with Vim and Emacs for other reasons.

I'm not sure anyone has based their language design around Vim/Emacs syntax highlighting, although ironically that is one of my criteria for language design. I was just confused by the advice to use a CFG, since it's not the relevant issue.

I would say the relevant issue is that your lexer shouldn't be too clever and have too many modes. And to avoid mixing languages in the same file, or have a very obvious lexical construct to mix languages.

The C preprocessor is an entirely separate language than C or C++, so that is the core of the issue in your example. Likewise, it is usually hard to highlight CSS and JavaScript embedded within HTML.

<comment><USER22> > nothing to do with context free grammars

This is incorrect. Some languages have user-defined tokens. Some have contextual keywords. Both require a semantic understanding of the code to highlight them correctly.

And it isn't just the preprocessor with C++. There's the >> problem. It's not just me talking through my hat - tools for C++, such as pretty-printers and refactoring tools - have been very slow to appear, and fragile. But with a language like Java the tooling is quick & easy to write.

You don't have to believe me. Write a tool that reads C++ source code and inserts boilerplate at the beginning and end of each function, and works 100% of the time.

<comment><USER23> I know exactly what problem you are talking about. It's exactly the problem that Clang solves.

With the Clang front end, you can write a tool to read C++ source code and insert boilerplate at the beginning and end of each function, and it will work 100% of the time. There are dozens of such tools in active use at Google and I'm sure many other places.

But it has nothing to do with context free grammars -- _really_. Clang uses a recursive descent parser. GCC used to use a yacc-style grammar (which BTW is only context free-ish because of semantic actions), but it could NOT perform the task you are talking about. In fact that was largely the motivation for Clang.

It also doesn't really have to do with syntax highlighting as practiced by any editor or IDE I know of. Even though Clang has the power that you want ("semantic understanding"), I don't know any editor that uses it for syntax highlighting.

Instead they use approximate lexical hacks. This is probably because of the need to highlight partial files and malformed files, as I mentioned. You don't want your syntax highlighting to turn off in the middle of typing a code fragment.

But editors DO use Clang for semantic understanding, e.g. the YCM plugin for Vim.

But they use CFGs for NEITHER problem. You're conflating two different issues and suggesting the wrong solution for both of them.

There are a lot of links about this issue with regard to languages like C#, Scala, Go, JavaScript, etc. in the wiki page I linked.

I agree with your general point about language design, but the terminology you're using is wrong and confusing.

<comment><USER22> > It's exactly the problem that Clang solves.

Yes, and clang appeared on the scene 20 years after C++ did. It's a long wait. If you create a new language, are you willing to wait 20 years for tooling?

<comment><USER23> I agree C++ is too hard to parse, and you should design something simpler. Simpler isn't the same thing as a context-free grammar. The issues you are pointing out are lexical (Python has a CFG but still has imprecise syntax highlighting in editors).

 _> A context-free grammar, besides making things a lot simpler, means that IDEs can do syntax highlighting_

I disagree with this because it's wrong. People don't use Clang or context- free grammars to syntax highlight code. Java has a CFG -- who uses it to syntax highlight code?

This conversation isn't very interesting because it's just me explaining the same thing to you over and over again. Your head is stuck in the mode of "expert" and not somebody who is curious and wants to learn something.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER24> If you haven't done this before and want to explore a bit, I'd recommend using ANTLR 3. You can get an interpreter up and running pretty easily and it targets the major platforms, so you can typically use the produced grammars and generators in your language of choice. Recursive descent is usually the easiest to implement.

This is really only 5 or 10% of the work involved in creating your own language, but it's enough to experiment and give you an idea if you want to proceed with the long and hard work of developing it further.

<comment><USER25> The author actually recommends against using an lexer/parser generator. If you are just playing around they can be find but he's right that when you are ready to get serious they often end up being a hindrance.

Additionally a it's not usually that hard to create your own tokenizer and parser by hand.

</comment></comment><comment><USER26> Honestly if I'd make a language, I'd take most thing that make C and python popular, to make something as simple as possible, and as similar to C as possible. All I could wish for is C with native features of python (dict, list comprehensions, libs like sqlite and xml...)

What I think is the most important thing for a language is that it must be easy to learn and read for beginners. There is no need to have advanced features for advanced programmers. Those guys will use other languages and their specific tools to solve their advanced problems.

A language is something that is "talked" by many people, so the easier is it to learn, the more people will use it. It is all about a low barrier of entry.

Just stop focusing on particular features or what you like about that X or Y language. Just imagine CS students and beginners, and make a language that let them write code and do their assignments.

<comment><USER27> Cython is a fantastic and underrated language. It basically allows you to write C using Python syntax, and to also write Python in the same source file. Basically if you use a dict or some other nice python functionality, your code will run at Python speed, but if you add a few type annotations and whatnot it runs like C. Not to mention that you can import and use C libraries. Mix and match Python and C as required for the ultimate balance of speed and convenience. It's great.

<comment><USER28> I disagree (strongly).

Cython is nice to save some typing for generating wrappers. It is a very tough language to work with for actually implementing things that you'd want to do in a low-level language, because it's severely underdocumented and underspecified, but extremely complex at the same time. To actually see whether the code as written is correct, one must almost always cythonize it and dig through the generated, verbose and hard to decipher C code. Both the language and the compiler have a ton of things I'd call bugs, induced by the complexities and mismatches in the type system. E.g. it's awkwardly easy to have Cython call some PyObject function on something that isn't a Python object.

No thank you.

PS: Also avoid using setup.py Extension, including Cython's variant, if you can at all.

(Source: I've been maintaining software containing Cython stuff for some while, written and reviewed quite some of it, too.)

<comment><USER27> I suppose I almost solely use Cython for numerics, which seems to be reliable. Anything that's not numerics is not usually the bottleneck for my code and so is left as Python. So I can't comment on problems trying to use the C end of the Cython continuum as a general purpose replacement for C.

For my numerics at least I can't say I've had to dig through generated C. I generate the annotated html to ensure that what I thought would translate to pure C without python API calls indeed has, but I've never had to actually read the C it generates.

<comment><USER28> The annotated mode is indeed very nice to browse the generated C code, although I still needed to manually read the .c in some cases. The annotated code elides things like the (many thousand lines of) Cython support code; but since few things are documented I sometimes even needed to dig through those, deciphering nested #ifs and whatnot just to see whether the code would be correct.

E.g. what does `cdef char *something = somethingelse` give me. Even if you know the type of somethingelse it's at best a guess. (Bonus question: Say you know somethingelse is going to be a Python bytes object. Does something point to a copy?)

</comment></comment></comment></comment></comment><comment><USER29> For anyone who hasn't yet seen it, check out Jonathan Blow's Jai language, it is fantastic!

[https://www.youtube.com/watch?v=gWv_vUgbmug](https://www.youtube.com/watch?v=gWv_vUgbmug)

<comment><USER30> That's cool. Is there somewhere I can download the language to play with?

</comment></comment><comment><USER31> Nice Article, although I clicked on the link thinking that finally I got something that I can follow and get started with writing my own language.

<comment><USER32> [https://news.ycombinator.com/item?id=9718472](https://news.ycombinator.com/item?id=9718472)

</comment></comment><comment><USER33> Is it just me being in my dotage, or does anyone else feel that websites that override my "open in new tab" action to force their tab to the top of my view plus tout their app should be taken out behind the shed and shot?

<comment><USER20> I've said the same thing about applications that steal focus.

<comment><USER34> It's remarkably hard to find or configure an OS to not steal focus. Everything I've tried for my whole life has failed, with the exception of not using a GUI and just staying on the linux command line without letting startx run.

iOS? Steals focus all the time.

Android? Steals focus all the time.

Windows? Steals focus all the time.

Mac OS X? Steals focus all the time.

Ubuntu? Steals focus all the time.

It's outrageous and annoying. Does anyone have a simple OS configuration that will prevent all focus-stealing system dialogs from actually interrupting focus?

Edit: To continue the rant, Windows used to pop OS update dialogs that interrupted keyboard focus, took keystrokes like spacebar and enter to mean "lose all work and reboot". I remember a long time ago, typing and looking away from the screen, only to find that my computer had turned off. Infuriating.

<comment><USER35> A windows application can't steal the focus unless it is the the top window already.

This is behavior built deep into the system that cannot be overridden. It is very effective against numerous stupid apps.

<comment><USER12> > _A windows application can 't steal the focus unless it is the the top > window already._

Or unless it decides to throw up a modal dialog, AFAIR. Unless they changed that at some point.

Also, Windows Update "rebooting in 5 minutes, do you want to reboot now instead?" popups in pre-Win8.

</comment></comment></comment></comment></comment><comment><USER36> what of forking an existing language and adding one of two features you want to see it it.

i'd like to make a subset of ruby minus blocks and indentation (yes i'm crazy)

<comment><USER37> see tinyrb based on potion then.

</comment></comment><comment><USER38> I don't think so. I feel like invent a language is more and more useless in nowadays.</comment>


JoinAStartup - <AUTHOR> http://joinastartup.org/

<comment><USER2> 1) Why aren't you on olark after you post on HN? 2) Your site is giving me an error "oops there is something wrong. please try again later" when I try to enter my email as a startup.

</comment><comment><AUTHOR> This is one of the groups at Startup Weekend Austin today.. I love their attitude so far.

</comment><comment><USER3> It worked find for me. Awesome!</comment>


The Effect of Glasses and Sunglasses on Face Perception - <AUTHOR> https://www.ncbi.nlm.nih.gov/pubmed/31006340 <comment><USER2> Full text: [https://journals.sagepub.com/doi/pdf/10.1177/030100661984468...](https://journals.sagepub.com/doi/pdf/10.1177/0301006619844680)

Alternate: [https://send.firefox.com/download/51a963abea65b30b/#UQfuqvE0...](https://send.firefox.com/download/51a963abea65b30b/#UQfuqvE0-yvXZ6MOf6lklg) (expires after 100 downloads/7 days)

</comment><comment><USER3> This article is behind a paywall.

<comment><USER4> The summary claims one is less trusted when wearing glasses.</comment></comment>


Obama Says Income Gap Is Fraying U.S. Social Fabric - <AUTHOR> http://www.nytimes.com/2013/07/28/us/politics/obama-says-income-gap-is-fraying-us-social-fabric.html?hp&_r=0

<comment><USER2> I'm not listening to this politician tell me what my values are or what it means to be an American until he stops tracking my phone calls, watching my email account, photographing my snail mail and examining my bank and credit card statements. If he can't stop making obvious mistakes, how can he possibly think he is going to "fix" something as complex and subtle as the economy. This is pure politics from someone who knowns nothing else.

Edit: Sorry if this seems harsh but I'm having a hard time taking this guys bullshit anymore. Is there any substance in this new focus on the economy or is it just a way to change the subject.

<comment><USER3> How is this guys bullshit any different from the last guys bullshit?

The tracking of phone calls and internet started long before Obama stepped into office.

</comment></comment><comment><USER4> >"And that's what's been eroding over the last 20, 30 years, well before the financial crisis," he added.

Is he still blaming Bush for what are unarguably, by this point, his problems?

>The economy is "far stronger" than four years ago, he said, yet many people who write to him still do not feel secure about their future, even as their current situation recovers.

It seems wants to have his cake and eat it too: "I've fixed the recession, but there's still massive unemployment." I've never understood this obsession with stock markets as economic health indicators and obscuring of unemployment by calling it "underemployment" ([http://www.cnbc.com/id/100870095](http://www.cnbc.com/id/100870095)).

</comment><comment><AUTHOR> Sorry, here is the bare link (shouldn't be paywalled): [http://www.nytimes.com/2013/07/28/us/politics/obama-says- inc...](http://www.nytimes.com/2013/07/28/us/politics/obama-says-income-gap- is-fraying-us-social-fabric.html)

</comment><comment><USER5> I'm not sure why this submission is on HackerNews?

Many of the comments seem to be less about the article, and more about the commenter's opinion of Obama.

<comment><AUTHOR> Yes, unfortunately. Next time maybe I don't put the word "Obama" in the actual title...

<comment><USER5> That might lower the number of visceral responses to the speaker, but I still don't see the relevance of the content, i.e. commentary on the social fabric, to HackerNews.

</comment></comment></comment><comment><USER6> Thanks Obama.

<comment><USER7> It is getting a bit difficult to take the dude seriously, isn't it?

<comment><USER8> I don't know. I think history will tell, but I get the same president-y vibe as all the others. My gut is that it isn't the president (we should put anyone in there), but a toxic system of governance.

This is why I'm a huge fan of attacking the root of all problems: the confluence of money + power. Power shouldn't be bought.

<comment><USER7> Really? I feel rather let down by this guy.

I mean, he was supposed to be different. He wasn't supposed be a dude emanating the "same persident-y" vibe as everyone else. He was supposed to be about change and morality. Honestly I'm more upset at Obama than Bush because I expected the bullshit from Bush but I feel like Obama tricked an entire nation.

<comment><USER9> He didn't fool me.

</comment></comment></comment></comment></comment><comment><USER10> pw;dr (paywalled), other version please

<comment><USER2> Just clear your cookies or use incognito mode in your browser - no NYT paywall

<comment><AUTHOR> Yep, cmd+shift+n works like a charm in Chrome

</comment></comment></comment><comment><USER11> [http://www.aei-ideas.org/2013/07/yes-the-middle-class-has- be...](http://www.aei-ideas.org/2013/07/yes-the-middle-class-has-been- disappearing-but-they-havent-fallen-into-the-lower-class-theyve-risen-into- the-upper-class/)

<comment><USER12> I'm also not really sure about this article. I find the evidence in that graph not to be compelling enough for summarizing with "bottom line:" and some real clean explanation.

I find the trending cumulative percentage a little confusing to think about.

I also wondered, does this mean there is some income bracket losing people? That is, no more families making 25-75k but still as many making <25k, so the <25k have fewer slightly-above peers?

Then I wondered if maybe this means something about the <25k potentially having less income? That percentage stays flat, but those other earners are changing classification to rich... I don't really know.

After writing this up I realize that what I'd like to see is the whole income distribution. This cherry-picks certain points on the CDF and plots them over time (the income cutoffs of 25k and 75k).

What's interesting to me is whether or not we've gone from a unimodal income distribution to a bimodal one, in the sense that there's a trough between the lowest income families and the highest. If we have a 'middle class' we avoid that, and probably that is socially important.

I think this graph is better for understanding the main article, which plots the Gini coefficient for income distribution over time by country [a few, anyway]

[http://en.wikipedia.org/wiki/File:Gini_since_WWII.svg](http://en.wikipedia.org/wiki/File:Gini_since_WWII.svg) [http://en.wikipedia.org/wiki/Gini_coefficient](http://en.wikipedia.org/wiki/Gini_coefficient)

</comment></comment><comment><USER11> Obama says a lot of things.</comment>


Store Files on Digital Ocean Spaces with Laravel - <AUTHOR> https://journal.simondepelchin.be/2019/03/01/store-files-on-digital-ocean-spaces-with-laravel/ <comment><USER2> Thanks for the article. That's exactly what I was looking for. I just used your referral code to get $100 of credit to try this out ;)

Did you ever go over 1TB of outbound transfer data?

<comment><AUTHOR> Not yet. I currently use it for small JSON files and I'm only up to 7GBs at the moment.</comment></comment>


How To Create: Motivation for 2010 - <AUTHOR> http://thelastpsychiatrist.com/2009/12/how_to_create_motivation_for_2.html

<comment><USER2> Good suggestions for writing:

       1. Creative success is taking what's available and rising above.
       2. Get started.
       3. Avoid or minimize interruptions.
       4. Prepare to accept the consequences of failure and finish.
       5. Finish by taking definite and public steps</comment>