Is Programming Less Exciting Today? - <AUTHOR> http://blogs.tedneward.com/2012/01/25/Is+Programming+Less+Exciting+Today.aspx <comment><USER3> Shit, no! Look, I've been programming since 1982 (BASIC on a Hewlett-Packard with a 3" screen - lap equipment, essentially - then an Apple ][e for BASIC/assembly, then Turbo Pascal, then real Windows with C++ for my first couple of professional jobs, moving into Tcl under AOLserver against databases in the 90's, adding Perl later) and so I think I know whereof I speak, and I've addressed this point before, but ... it just keeps getting easier to reach for the stars. Sure, there's a lot of wasted time on boring stuff, but that was already there back in the day. It's just easier to read about somebody else doing something than to do something yourself - but nobody's stopping you from doing hobby work on Z80 in assembler, or implementing your own language, or whatever - and no matter what you want to do, there are more tools, more references, more help to get off the ground and going.

You want excitement? Stop reading blogs and just program something.

<comment><USER4> Agreed. I think it's less exciting if you're the lone wolf coder sitting in your room optimizing the hell out of a language. With all the abstractions available nowadays programmers have gone away from developing their own frameworks to utilizing several to make something much bigger than they could have int he past.

I understand that making your own sockets or database interface library might not be as exciting as rolling your own. However I feel that it's much easier for nearly anybody to pick stuff off the shelf and make something amazing which we all benefit from.

<comment><USER5> The lone wolf coder optimizing a language is excited about advances in garbage collection, which AFAICT have not slowed down.

I'm in the "old-timer" bucket this essay describes, and I really can't twist my mind into any perspective that makes today less exciting than 20 years ago.

</comment></comment></comment><comment><USER6> Programming is only less exciting if you keep yourself in the CRUD-webapps- mobile apps space. Technology and miniaturization have resulted in incredible capability for embedded devices that are at least as (if not more) exciting for me than discovering programming for the first time in the 1990s was.

If you're bored of programming for the web, try branching out into a field where there's no debate about NoSQL, people aren't re-discovering binary trees for the ten thousandth time, and there's no re-invention of JavaScript on the server - try programming something _real_. For me it's quadcopters and fixed- wing UAVs. For you it might be something else. Embedded development is somewhere where real technological advance will _always_ push the field forward. There's always something new you can build if only your CPU gets smaller, or draws less power, or some sensor becomes available. Plus, you'll learn a lot about programming close-to-the-metal, data structures, basic algorithms, and the industrial control algorithms that run devices in your daily life - which will both expand your horizons and make you a better web programmer, to boot.

<comment><USER7> Exactly.

Sure, technology fads are like a carousel, but that matters most if you insist on staying ON the carousel and make part of your living writing about the fads. I started in this millennium, but I've done it long enough to know that learning and using a new piece of tech is only superficially satisfying. What's exciting is building something that solves a problem. If I lose track of that and get bored, nothing is more motivating than coming across a coder who bangs out code using the tech he knows to solve problems. It's amazing to see what Rich Hickey can do with a pile of Java or Zed Shaw with a pile of C, to name two examples I've encountered. No need to complain or pontificate (or at least keep it to a minimum), just build things and solve problems.

<comment><USER6> Agreed, and I think a lot of the angst amongst CRUD/web-app developers stems from a rapidly shrinking number of truly new problems to solve in the domain - hence the focus on yak-shaving, "platforms" to eke out the last few marginal efficiencies in creating a web-app, and re-inventions of the 1980s.

That's why I love embedded - because the domain contains a lot of problems which are constrained by hardware (which so far is still holding to Moore's law), there are always a number of new problems for software to solve.

</comment></comment></comment><comment><USER8> Totally agree. Nothing ever really lived up to that early promise of BASIC / 6502 assembler on a BBC micro 30-odd years ago. The elegant simplicity has vanished under a pile of self-inflicted barely functional complexity. For example, web frameworks (e.g. Vaadin, not that I want to pick on that one project) are pouring massive effort into recreating the desktop widgets we had 15 years ago in a web browser. Stale, hugely complicated, laggy, connection- bound, insecure web apps whose benefits never justified the effort, IMO. Just write the thick client and move on. In fact, if it can't be done on a 2MHz 8 bit CPU in 64K, it's not worth doing...

</comment><comment><USER9> Programming is so exciting today! One post here talks about the thrill of coercing a limited machine into doing something useful - that's one kind of excitement and it is awesome. On the other side of that, today I can rent a super computer and write something that stores and computes terabytes of data, or I can create software that lets 15000 people connect and interact thanks to ubiquitous connectivity, or I can make something that computes a FFT on a slice of music and does a spectral comparison of 100000 other songs (Shazam) in real time because that kind of power is available, and (maybe it's just me) but functional programming seems more in vogue and declarative programming's hey-day is just around the corner ("I predict!").

We are just scratching the surface of what is possible. Programming is _scintillating._

</comment><comment><USER10> I've been programming since 1984, and it gets more and more exciting as it goes along.

I've gone from hacking together moving dots on a BBC Micro to being able to set up code running on a worldwide collection of servers (Google App Engine) that reads from multiple places and posts to a blog running on an engine that's used by millions of people all over the world. And that's in my spare time.

Think of all the awesome things you can do nowadays - Mobile phone apps, web pages, amazing games, and so much source code available for free for you to use in your own programs. It's an amazing time we're living in.

<comment><USER11> I suppose it's mainly taste, but the things you mention don't seem too exciting to me technologically, though there are indeed significant increases in the userbase and business ecosystems, so it's a good time to start a tech business (a different question). But I have a preference for more DIYability and less interest in interfacing with APIs and cloud services, which isn't necessarily the Correct preference, but is one.

Games? Meh, I keep up on recent games in part because it's my job (oddly enough), but listing my top-10 favorite games, Minecraft is the only post-2000 one I can think of. In general I think they've gotten worse, mostly by focusing way too much on graphical fidelity. Even MMOs are like MUDs v 2.0, and I think in many ways haven't recaptured the depth of community and user- generated content that MUDs/MOOs had, but I admit that you can make a case either way (and Eve Online's community in particular is arguably something new in terms of multiplayer dynamics). And mobile and Facebook gaming seems to consist largely of cloning 80s and 90s games...

And the web is just recently catching up to the level of interactivity we had on 1980s networked computer systems, which mostly got thrown out in favor of a pile of hyperlinked documents (plus, later, Flash)... its main advantage is increasing visibility in business and society, so you can do things like buy plane tickets on it, which would've been completely _possible_ with 1980s technology but didn't have the business case for it.

I do find workable crowdsourcing, with Wikipedia as the main successful example, to be a very interesting para-technological development, probably an emergent effect of internet connectivity. I guess that ties into whether you fundamentally find the ability to reach millions of people (as you mentioned) interesting. I think it is to some extent, but I think it's also become _harder_ to reach 20-50 people in a meaningful, sustained way; things are much flatter, and recreating something like a BBS community is quite hard (though not impossible). Technologically speaking, I don't _really_ find millions of people necessary; doing interesting things that impresses a few dozen people who engage with it meaningfully (rather than just clicking through off Reddit or HN for a few minutes) is satisfying enough.

</comment></comment><comment><USER12> Yes and no. (Hmmm, sound like a Tolkien elf there.)

The opportunities have never been greater today and the barriers to entry have never been lower or cheaper. There are books and websites galore. If that doesn't help, there are forums and sites like stackoverflow.com. Never has it all been more exciting. Things that required large amounts of time on supercomputers are now doable at home in real-time.

On the other hand, now that I'm in the old and crusty bucket, I'm personally having less fun as a programmer. I've been programming since 1981 and it was a blast. But now with a wife and family and pastoral responsibilities and day jobs and a growing congregation, the available time to just sit down and take time to learn something new (because it looked fun) just isn't there. And that takes some of the sparkle off my relationship with technology.

That said, perhaps it isn't all gloom and doom. I do what I can to use technology in my life to help get things done. I have the church data backed up with Dropbox. I prepare my sermons using Markdown and Pandoc and preach off of a Nook. And just this week, I prepared the church charitable giving letters for the congregation using a combination of CSV data files, AWK and LaTeX. So I may not be the trendiest programmer in town, but my data is backed up constantly and I have some of the best typeset documents you've ever seen!

</comment><comment><USER13> Not the essay I was expecting from the title.

Programming is less exciting today, at least for me. I'm 55, and have been programming for over 40 years. My first program solved quadratic equations on an ancient Wang programmable calculator that had 3 (three!) registers. I spent a long time trying to figure out how to compute the intermediates and final results while taking the three coefficients as input, in order, once each. That got me used to being very, very careful about memory. I remember my first program that ran really slowly for large N, and getting my first glimpse of algorithm analysis, and then being very, very careful about performance. And I have spent many hours coding low-level data structures and algorithms. It was a lot of fun.

Maybe it's my age, or maybe it's seeing all the libraries with the cool data structures and algorithms already written, but programming is often more about snapping pieces together than doing difficult new things. Yes, it's better this way, and yes it's really just a matter of choosing the right problems to work on. But here's the thing: You get used to working in an area. For me it's database internals. And more and more of it gets "done" over time, and available as open source. So there is no point in doing the thing that you naturally want to do.

What to do about this? I highly recommend working at startups. And not yet another social media site, (there are probably 15 different scalable NoSQL systems out there, pick one and move on). I'm at a database startup, and while we use a lot of open source software, we are building a ton of interesting, new, low-level stuff too.

<comment><USER14> Funny, I think my first program did exactly the same on the same hardware, back in, oh, 1969 at Claremont High in San Diego (the campus used for the movie Fast Times at Ridgemont High). Had entirely forgotten that episode...

</comment></comment><comment><USER15> I feel the same way. But as I take a step back and look at the big picture, it seems to me, anyway, that this isn't just in programming: it's the whole society.

When I was growing up in the 70's, it appeared to me that we were dreaming great things, like going to the moon, even despite a backdrop of fear about the Cold War. Today I don't see such dreams; instead, our thoughts seem to be centered on just treading water, like combating climate change.

Maybe it's just me getting older, as Neward says (my 45th birthday was last week). Maybe it's only my own perspective growing jaded. But it sure feels to me like it's all around, not just in my head.

<comment><USER16> I personally think society has come to the stage where its clear that problems are no longer solvable in a technological way, or by more advanced technology/science. That dream is gone. For me, this makes programming feel more like a means to make money and survive, than something exciting that could change the world for good.

Presidential candidates still desperately try to rake up foregone "moon base" dreams, invoking the nostalgia for yesterday's future, which says enough....

"we" used to think that in the 80's, 90's, that somehow advanced technology would also advance people, to look at the sky instead of grabbing what they shortsightedly can. Series like Star Trek are an example of that hope in culture. But people did not change a bit.

Open source/free culture is still exciting to me, but the "brave new frontier" that computers and programming seemed to be is gone. It's lost part of its charm for me.

<comment><USER17> We do have two related technological problems to solve: we are confined to a single biosphere one big rock (or maybe runaway greenhouse feedback) away from extinction, and peak oil will bring peak food (the green revolution hinges on petroleum). I don't know whether cold fusion researchers need better software than they have, but if they do we don't seem to have given them the resources to pay as much as more social mobile gamification of cat pictures. Boredom and unrest seem to be the problems we take most seriously lately.

<comment><USER16> Yes. Don't get me wrong, I think there are big challenges ahead for humanity, and some of those can only be addressed with advanced engineering, which, in turn, needs programming.

But my paradox is: The biggest of dangers comes from people's use of technology as a means of control. A creeping surveillance state, soon to be autonomous killer drones, and that ugly old nuclear threat that keeps rearing its head. Due to fear of each other, the technological dream is turning into a nightmare.

And a the hardware and software used there is built by people like you and me. There's a societal problem to be solved first, or maybe it should solve itself, and only that will bring responsible and sustainable use of technology. Or we'll kill each other, in video-game style (yay for gamification).

</comment></comment></comment></comment><comment><USER18> I started programming C as a pre-teen about 15 years ago, because I wanted to make games. I spent a lot of time (badly) re-writing routines for stuff that already existed (sorting, double buffering, file management, resource packing, etc).

I never really got to the actual gameplay mechanisms as I'd always get stuck at points like double buffering so my graphics wouldn't flicker, or reading interrupts from the game port so the joystick would work properly, or how to read a bitmap image saved out from Deluxe Paint.

Now, chances are I'd be much closer to getting an actual game up and running as there's plenty of libraries out there to handle all that stuff. I am glad I learned it and know it, but it doesn't create end results and means a lot of duplication of effort.

The modern approach where programming is more like plumbing - <USER2> connecting existing libraries (and now, services) - allows creation of quite fantastic ideas in very little time. I can create things in a day that would literally have taken years in that low-level age.

This is a good thing and just as fun, albeit in a different way.

</comment><comment><USER19> I agree. 21 years elapsed since I started.

I cut my teeth on Z80 assembly at the age of 11 by building my own computer from stuff I could get my hands on (discarded and broken RM380Z and some VIC20's for RAM) and books from the library.

I feel there's too much hardware compexity and software abstraction these days, most of which is impenetrable. The complexity is a result of making the layers of abstraction fast. It takes the old feel of immediate power away. Even knocking stuff out in C is just stringing libraries together.

I wish we were closer to the hardware again. I also wish the hardware was simple enough to fit in my head and was elegant.

</comment><comment><USER20> I have never been that interested by programming

Building things however, I love, and I dont think there has been a more interesting time in the world to be involved, schoolkids can build social networks that connect almost a billion people, a small group of people run a website that categorises and links most of the knowledge the human race ever had.

</comment><comment><USER21> There is lots of exciting stuff going on (DbC and PEX for C#, for example), but none of it is exactly in the mainstream. My personal peeve is not that there is too much abstraction, but the fact that people seem to gladly settle for mediocre solutions that require lots of work to do trivial things. I was in the situation where implementing SOAP server from scratch was an order of magnitude easier than figuring how to deploy the existing, standard Java technologies in that particular environment. That's just plain _wrong_.

</comment><comment> T-hawk I'm going to cast a dissenting vote from the other comments here and say yes.

The golden age of my personal programming experiences was around 1993, during high school. After outgrowing GW-Basic, I was hacking around in x86 assembly language, figuring out how to program DOS graphical games by manipulating VGA hardware registers. My tutors were library books on x86 assembler and instructional text files gleaned from local BBSes. (I still have and treasure those resources to this day. Michael Abrash was my god.) I was able, by myself, to produce programs as technically intricate and graphically rich as industry-leading fare like Commander Keen or Epic Pinball, in pure assembly language. (I never actually made anything beyond tech demo stages into an actual marketable game.)

This was _magic_. Not a single other person I'd ever met in my life or even on local BBSes across my entire area code had that sort of capability. This awed even non-techies, whose pinnacle of computer experience was somewhere between Solitaire and Minesweeper. I had a mini-career programming BBS advertisements for inclusion in zip files, putting out some neat and impressive graphical effects in 2k or so of assembler code. My favorite trick was to include what appeared to be a custom font in these tiny executables - done by copying the BIOS ROM font at runtime and applying some bitmap transformations to each letter. I even wrote my own mini sound engine for the Adlib FM-synthesis registers.

Nowadays? Grab a Flash development tutorial and you can do in a week what I spent most of high school learning and doing. Everything is possible in programming and everybody knows it and every answer is seconds away. There's no feeling of exploration and achievement. There's certainly achievement in building a business or product, but not in the programming itself, which now serves as the drudgerous means to an end.

The connectivity of the Internet has eliminated local maxima. I was in high school by an order of magnitude the smartest programmer I'd ever met, but I'm thoroughly average in the Internet world. I've never been motivated to strike out building my own cool software or startup since nothing's ever come to me that could recapture the magic of my early days of DOS VGA assembly discovery and programming.

All the cool technology and companies now are about _connectivity_ , starting with Google and its primal concept of page rank and link juice. Facebook and its world-squared size social graph. Ebay the world-squared size marketplace. Apple and its million-strong app store. Dropbox and its seamless cloud connectivity. You can't program anything meaningful and novel in and of itself; programs are now defined by what they interact with. Some do find scalability and connectivity exciting, but not me. You can certainly produce scintillating _results_ with modern resources, but for me it's always been about the journey not the goal, and the journey of modern programming is, for me, essentially drudgery.

<comment><USER22> Abstraction should never be something "bad", if today "common" people is able to develop a basic game in seconds with flash, then why don't you try to compete with big game companies? try to beat their graphics and their AI.

"Nowadays? Grab a Flash development tutorial and you can do in a week what I spent most of high school learning and doing."

Is like an electrical engineer complaining about assembler in favor of binary electrical pulses:

"Nowadays? Grab a programming tutorial and you can do in a week what I spent most of high school learning and doing."

<comment> T-hawk Yes, abstractions lead to highly leveraged multipliers of effort, and to bigger results. For everyone like me whose golden age was DOS VGA programming, there was a Commodore 64 alumnus lamenting that it's no fun to have a flat high-color bitmap buffer, that the excitement in programming is to be found in squeezing impressive effects out of eight sprites and sixteen colors. The 80486 VGA machine can put out Doom, which by any measure is a bigger and more impressive result than say Choplifter, but it doesn't mean the C64 hacker would find Doom more fun to write. (He may, or may not.)

My point is that finding excitement in programming can be intensely personal. I couldn't write Facebook in my DOS assembler, but that doesn't mean I find exciting the modern platform that can. Your electrical engineer couldn't write Angry Birds in hardware, but that doesn't mean he'll enjoy Objective-C just because it can.

Not all programmers are motivated by results. The HN crowd skews that way, but there are many like me for whom it's not the destination but the journey that carries the real meaning.

<comment><USER23> Actually, you _could_ write Facebook in x86 assembler but that _would_ be a drudge!

Oh ... and I do know an electronics engineer who probably could do Angry Birds in hardware, but almost certainly wouldn't want to. " _What is Angry Birds_ " I can hear him say.

</comment></comment></comment></comment><comment><USER24> I've been programming since the early 90's. I went through three stages of excitement:

A. Hardware/OS/experience. At first, I was excited by the experience of working with computers. When I got access to a special computer lab in college that had Suns with big monitors, I used to go there and program just to use the computers. I loved the excitement of learning new commands, playing with different desktop managers, mastering various editors. All of it was in service of programming, but it was fun on its own.

B. As that stage faded, I was excited by specific technologies (Java! XML! Whatever!). During this phase, I would write something in one language, or using one technology, and then get excited about re-writing it in a different language or using a different technology.

C. The final, and most lasting, phase for me was getting excited about the problems I work on. Now, the hardware and the technologies have become tools for me, but the problems are infinitely interesting. What excites me most is working on problems that I believe matter.

Of course, I sometimes go back to stage B (MongoDB! AWS!) or maybe even stage A (general purpose GPU programming!), but mostly its stage C that keeps me passionate.

</comment><comment><USER25> I disagree with Ted. I believe he's thinking about this too narrowly.

The title of his post should be "Are Programming Languages/Tools/Utilities Less Exciting Today?"

From that perspective, one may certainly claim to be bored. What goes around comes around, as those of us who have been around long enough can identify when the processing pendulum swings from client to server to client to server over the course of time. Back and forth, side to side, the more things change the more they stay the same.

But that's the wrong perspective to take. It limits the definition of someone, as a programmer, with their chosen tools. How many Enterprise-Java-vs-Dot-Net or PHP-vs-Ruby/Rails debates have ever made a difference in that regard? Programming languages, server systems, utilities, etc. aren't the path to the future -- they're the results of the past.

I prefer to think of programming as usage of these tools in solving problems, creating businesses, or just plain creating mischief. With that, I see wide open spaces to be addressed (and not enough good engineers to do it.) Hardly boring, in my opinion.

</comment><comment><USER26> I agree with some of the other posters:

What is exciting about programming is how easy it is to realize an idea.

Programming is so accessible that anyone with a good idea can change the world. (well...okay, there's competition and patents and stuff but you know what I mean)

Technical programming theory is pretty cool too, but even if there aren't any huge technical breakthroughs for years, I doubt if we'll be able to fully harness the potential we have right now. I'm excited whenever I start working on a fresh new project, despite the fact that I use Python all the time. (actually, that's pretty exciting too)

</comment><comment><USER27> Creating stuff is always exciting. Programming is just a means for doing that.

</comment><comment><USER28> I've experienced feelings similar to what the OP describes in his post.

I'm a systems programmer at heart and I can't think of a meaningful project to start that doesn't already have a `killer app' in its problem domain. I'm not looking for notoriety, but what's the point of hacking at something that's guaranteed to fail? Who's going to contribute to a new kernel?

</comment><comment><USER29> I think that there are two things going on that sort of cause this:

1\. Everyone knows that computers make everything faster better and cheaper [1], so there is a lot more proliferation of jobs that are code factory type postions, not problem solving in the same way. You have to look harder to find the exciting stuff.

2\. We are in a part of the research cycle in which the work is not in core computer science/programming research but in mapping those techniques to other domains, so a lot of the exciting work is CS and $X rather than pure programming, so to get the excitement you need to find a domain $X where you also are excited.

Also, people change over time, so perhaps the author is just getting bored and should consider looking at new roles or careers, this is not bad, it's just a natural effect of personal growth.

[1] for properly defined values of everything, better, cheaper and faster

</comment><comment><USER30> Really? We are in a absolute computing revolution. Never before has small teams or individuals had access to so much cheap, available computation. We can spin up vast compute resources in seconds and tackle huge problems. Just a couple of years ago this was only possible as part of a huge corporate team.

The cloud and dirt cheap embedded and mobile systems will make computers truly ubiquitous for the first time. It is interesting that we now run the same platforms and code on tiny embedded devices and the cloud. The web is finally turning into the broad platform we hoped it would. All of this is truly empowering.

On the language front we have wonderful new ways to express ourselves. Functional programming and constructs like Actors, STM and nosql data stores allow us to scale properly for the first time (See Scala and Akka).

The only limit is our imagination.

</comment><comment><USER31> Pure functional programming (HASKELL) inspires me very much.

<comment><USER32> I've learned programming around 3-4 years ago. I'm 24 and recently graduated. I discovered it a bit late, but fell rapidly in love with it, until last year of engineering school was all about Java EE, .NET and Oracle. Add a 6 month internship in web development with experiences wit Django, Rails, Symfony, MySQL, PostgreSQL and jQuery, and now I'm at the point where I hate programming and thinking that maybe I should focus instead on poetry, or learning German.

Until recently I started going through SICP. It's 30 years old, but it's still really, REALLY exciting. It's actually completely mind blowing. I'll probably look into Haskell soon, but the essential thing is: Yes, I agree, functional programming is very much inspiring!

</comment></comment><comment><USER33> There is a touch of magic in fooling with assembler. But when I last used it, I concluded that programming in assembler was like carrying your bicycle-- sometimes useful or even necessary, but reversing a natural relationship.

In any case, if he's writing for old-timers, shouldn't he use larger fonts?

</comment><comment><USER34> I cut my teeth on the Commodore 64, Apple IIe, and Amiga 500 in the late 80s and early 90s.

It _did_ feel a lot different then. The etymology of the word, "compute," was at least subconsciously watching over your shoulder as you sat down in front of these machines. Their utility was clear.

They loaded programs. They weren't "apps" back then and lacked that commodity feel to them. You had to understand in some way what programs were, how they worked, how your computer loaded them. Their limited resources gave the distinct impression that these were machines. Any sufficiently advanced game required at least a little tweaking to get running. Maybe you needed to add more memory, a hard disk, or needed to set some switch in your operating systems boot loader to squeeze out the last bit of performance from it. In many respects the old home computer was very much a tool or machine.

Today programming does feel different. I got into programming partly out of fascination with computers (which at the time required you to know at least a little BASIC to load a program) and partly from computer games. I would type in programs from Byte magazine back issues at the library, modify them, and have a lot of fun. Eventually I started writing my own games. And when I got good enough I started thinking, "I could make this," when I was playing other games. It was easy to see the underlying structures in my head and think about how you would build this thing.

Today it's not so easy. When I play Skyrim I don't think that there's a chance in hell that I could sit down at my computer and hash out my own Skyrim. There's a disconnect between how we use computers and how we understand them to work; there isn't any requirement to know what memory is or how to tweak your operating system. We don't even "load programs," anymore -- they're "apps," with all the commodity feel of going down to the store and picking up a new gizmo.

We hardly use computers for the ability to "compute," anymore.

Programming them... well most of the problems of implementation are largely solved for most applications. So it does feel a lot more like stringing libraries together. Some of this is mostly just an artifact of commercial software development: process demands re-use, etc. Lots of pressure to relieve programmers of the hard work of their jobs. The only times I find myself going beyond libraries is working on "web-scale" server applications and finding performance bottlenecks in all of these weird little scenarios. Or sometimes, as you say, writing yet another web framework because the existing APIs of the current crop are forcing complexity into certain components of my applications that could be removed if the library was just a little more flexible. It might also be experience. I certainly don't find things that impress me as much any more.

However it's still a wonderful profession and I still love it. It still delights me to open the source to 'grep' or 'cat' and read those old programs. Sometimes I still write an old-school number guessing game when I fire up the interpreter or compiler of some new language I'm trying on for size. And I can still think of applications for technology and programming that are interesting. And more often now than ever before I'm feeling the impetus to teach.

There's nothing quite like this craft of programming, even if it can feel a little long in the tooth sometimes.

<comment><USER35> This is why the Raspberry Pi misses the mark. A FIGnition is much more interesting <http://sites.google.com/site/libby8dev/fignition>

<comment><USER36> I was going to say the Arduino. Things would have been really interesting if we'd gotten our hands on one of those back in 1984...

<comment><USER35> I work on modern systems, but _fun_ is going home and hacking 6502 assembly language on a BBC Micro. And the occasional game of Elite :-)

</comment></comment></comment></comment><comment><USER37> It has never been easier for a programmer to translate an idea into reality and see their work impacting the lives of others in a short period of time. It has also never been easier for a programmer to support themselves on projects of their own choosing.

There is plenty of drudgery in programming. But there is also plenty of drudgery in rock climbing, being an astronaut, or deep sea diving. If you choose experiences in any endeavor that are all drudgery and mundanity then of course you will experience an absence of excitement. It is silly to pretend that isn't a choice.

</comment><comment><AUTHOR> I'd have to admit that I've kind of felt the same way as Ted. Perhaps I'm getting "old", I'll be 30 in 5 months ;) I'm sure the pace of things will pick back up, I just hope it is sooner rather than later.

</comment><comment><USER38> Nah. You're growing up and getting jaded.

I'd suggest for people who are bored with coding to get a good deal more hardcore:

\- move into academia (why not apply your sweet coding skills to graduate school - academia needs better coders!)

\- work on seriously harder problems

\- find a position that does more than glue

Me, I don't have a very exciting or glamorous job, and I've put together some programs - fairly simple ones! - which don't appear to be replicated anywhere online.

If your idea of excitement is blitting bytes onto a screen, the embedded systems world is waiting and there are jobs in there.

</comment><comment><USER39> Yes. Solving problems yourself is fun. Solving hard problems is even more fun. And the amount of programming related problems you solve on an average day is much less than it used to be.

When you had to handroll most of your code and make it work within the limited constraints of the hardware, you were solving problems all the time.

Sure there are still fun problems to work on, but the average programmer doesn't get to work on them.

</comment><comment><USER40> I have been programming only since the millennium(i.e 11 years) and already feel really...really...tired...... but that may just be my laziness....

</comment><comment><USER41> One problem nowadays is the ballpark is more abstracted. Quite commonly one has to deal with bizarre API's and bureaucracy.

If for example there is a problem with a library you are using, you can quite easily spend weeks trying to coordinate with someone to fix it, if they can be bothered to incorporate your fix in the first place. Sure you could workaround the problem, but that is not always easy either.

</comment><comment><USER42> No, it is not less exciting today than 20 years ago. The excitement is not about technology - for me it never was. It's about being exposed to a very wide range of people, businesses, fields of study. Building applications across a broad range of business domains means that programming never becomes less exciting. I love programming for that reason. It's never the same.

</comment><comment><USER43> Wait, programming is supposed to be exciting? I consider it a necessary evil and a means to an end, but "exciting" never enters the picture.

If there are people who really find this stuff exciting, then the whole "flavor of the month" thing, be it programming languages, databases, operating systems or whatever starts making sense. They actually enjoy the churn!

<comment><USER44> Is this a troll?

Of course programming is supposed to be exciting. It's problem solving at it's more basic, and it involves making staff, potentially even stuff with huge impact on the world.

What the fuck, even cooking and truck driving is exciting, why would programming not be?

<comment><USER45> I think he means the literal processes of typing code. I have fun designing a system and figuring out how to make things work together. I don't get much pleasure sitting in front of a computer for hours typing away. Debugging on the other hand can be more interesting because once again, it's back to problem solving mode.

<comment><USER43> _rachel_ by the bay. Ahem.

</comment></comment></comment></comment><comment><USER46> Yes. Pre-Internet, I was happy reinventing the wheel because I didn't know the wheel even existed yet.

Now, whenever I have a bright idea for a fun side projects, I do a few searches and see that it's already been done to death. Then I feel discouraged.

</comment><comment><USER47> Programming is way more exciting today because it is so much easier for anyone to solve real world problems.

The design of that blog was so borring/unexciting that I couldn't get myself to read it.

</comment><comment><USER48> I view programming as a tool. It's more or less neutral. What's exciting is what you use it for - what problems you solve with it, and how you help improve someone's life with it.

</comment><comment><USER49> Programming is as exciting as ever!

Three years ago, I was kidnapped by monkeys, who appeared to be in a trance. They took me to the top of the Swayambhunath Buddhist complex, in Kathmandu. I was told that this was the Monkey Temple. As a monk translated the wishes of the holy monkeys, I discovered that I was required to rewrite the OS of their ancient computer, which had failed to reboot, back in 1839. Since then, they had searched the world for a programmer competent to handle the situation. They were about to give up, as they stumbled onto me, and realized that I was the reincarnation of ChiChu Gomptar, the lead programmer for the CS monkey gang, which had served their monkey king, the creator of this computer. I was flummoxed by its design, as it was made of smooth stones, uniform beads, colored sand, and wooden levers inlaid with gold. I told them that I couldn't remember anything from my past life. They gave me something to smoke, saying that it would connect me, through the eternal ether, to my previous memories.

It did, and after 25 days of extreme programming, of which I recall no details, I had completed the monumental task. I stood up, and ceremoniously dropped the special IPL bead onto the machine, which then awoke from its 170-year slumber with a mighty roar. The holy monkeys were pleased. They handed over a small golden box, with mysterious carvings. It seemed empty, and I was told not to open it unless my circumstances had become truly dire. I thanked them, both for the box, and for the tremendous experience. Unfortunately, I was not able to sell them continued maintenance for their new OS, but that was mostly due to their language not having the word "maintenance". Anyway, I have those memories, and this box to use when things go really bad, plus the always-present hope of future adventure.

<http://en.wikipedia.org/wiki/Swayambhunath>

<http://en.wikipedia.org/wiki/Initial_Program_Load>

<comment><USER23> You have just made my day. Thanks.

</comment></comment><comment><USER44> _(how many different times are we going to create a new Web framework, guys?)_

As many as it takes.

How many times are we going to build a new house or bridge? How many times are we going to write a new love poem?

It's not as if we are anywhere near already having made the best web framework that can be. Not even close (include Rails, Seaside, Lift, whatever...).

 _Where is the WCFs, the WPFs, the Silverlights, the things that would get us fired up?_

WCF, WPF and Silverlight are things "that would get you fired up"? Seriously, man?

 _And as much as this is going to probably just throw fat on the fire, all the excitement around JavaScript as a language reminds me of the excitement about Ruby as a language. Does nobody remember that Sun did this once already, with Phobos? Or that Netscape did this with LiveScript? JavaScript on the server end is not new, folks. It's just new to the people who'd never seen it before._

LiveScript was useless and never got any wide adoption, and it's nothing like Node.js besides both making use of js server side. At the time, javascript was a joke, fragmented, language and was not used on the front end that much, except for small pieces of dynamic functionality. There were also no AJAX and no JSON. so having JS on the server had nowhere near the convinience and code re-use value that having JS on the server does now.

</comment><comment><USER50> Well I'm a young one, started programming in '97 when I was 11 so yeah, maybe I don't get it but I feel like he's missing something here. There's more to it than just languages, platforms, and frameworks. To me the most exciting thing about programming these days is shared knowledge. We've always had a lot of sharing of source code, techniques, and styles but it feels like now, more than any other time, programming is now more open and accessible to more people than ever before. Yes, it's still hard as ever but the resources available to us like GitHub, sites like Codeacademy, the thousands of free tools circulating have lowered the barrier to entry for anyone with a deep enough desire to push through resources and learn it. Before there were far fewer resources to learn. It was mostly books, classes, and your programmer friend. The web helped but not as much. It's really exciting to see us all teaching each other more than ever.

Or maybe I'm wrong and far too green to have an opinion.</comment>


Bitcoin Company Coinbase Raising New Investment at $400M - <AUTHOR> http://recode.net/2014/11/14/bitcoin-company-coinbase-raising-new-investment-at-400-million-valuation/ <comment><USER2> So they have private FDIC-like insurance. That's good to see. Certainly in the wake of MT Gox. However, they don't name the insurers, which I would have liked to see.

[https://support.coinbase.com/customer/portal/articles/166237...](https://support.coinbase.com/customer/portal/articles/1662379-how- is-coinbase-insured-)

</comment><comment><USER3> Sounds like they're trying to desperately raise before bitcoin investment dies down...and they might be too late already.

</comment><comment><USER4> Bitcoins....</comment>


Notes from a production MongoDB deployment - <AUTHOR> http://blog.boxedice.com/2010/02/28/notes-from-a-production-mongodb-deployment/

<comment><USER2> If you suffer a power loss and/or MongoDB exits uncleanly then you will need to repair your database.... it involves MongoDB going through every single document and rebuilding it. When you have databases at the size of ours, this would take hours.

\- that seems really scary

<comment><USER3> Scary yet familiar. I work with many databases that have large MyISAM tables, which is essentially the same situation.

</comment></comment><comment><USER4> I'm currently using MongoDB for a new system. I'm glad to see them reporting such a good experience at that scale. My deployment won't be anywhere near as large, so it's very encouraging. It will probably continue to run in a screen session like they say they did initially :).

</comment><comment><USER5> I wonder... if they say "However, these files are allocated before MongoDB starts accepting connections. You therefore have to wait whilst the OS creates ~37 2GB files for the logs." and then just run:

        head -c 2146435072 /dev/zero > local.$i

Can it be lazily allocated by doing something like `open(); seek(2146435072); write("\0");`. Is a sparse file _required_ to return "0" when reading empty places? (or does it just happen very often)

<comment><USER6> Several comments on the article suggest using sparse files. I suspect that this completely defeats the purpose of pre-allocating space. The initialization would be fast, but the time savings would return as a probably larger penalty amortized over the runtime in a non-obvious way. The only way to really know would involve performance testing the operation of a similarly sized database restored under both conditions on fresh drives.

<comment><USER7> > I suspect that this completely defeats the purpose of pre-allocating space.

There are two reasons to preallocate. One is so that you can get by with fdatasync rather than full fsync (that is, you don't have to sync file metadata as well, which is usually an extra seek; file length is the most commonly changed part of "metadata").

The other is to use mmap, since you can't change the size of an mmap'd file. This is the only part that mongodb cares about, since they never fsync.

There may be reasons to mmap a sparse file but I can't think of any.

<comment><USER6> _There may be reasons to mmap a sparse file but I can't think of any._

It sounds like you understand the forces at work here, but I am confused by your statements. Do you think that "pre-allocating" a sparse file is a valid alternative to writing 2GB of zeros to disk in this case?

</comment></comment></comment></comment><comment><USER8> Very interesting that they have 17,810 collections (aka tables). I wonder if it is common w/ MongoDB to design a data model in this way? Anybody have more info on this tradeoff vs. a smaller but larger size collections?

<comment><AUTHOR> I've commented on this here: [http://blog.boxedice.com/2010/02/28/notes-from- a-production-...](http://blog.boxedice.com/2010/02/28/notes-from-a-production- mongodb-deployment/#comment-818)

Essentially this decision was due to the disk space requirements because of the way MongoDB allocates files for each DB.

There are no performance tradeoffs for using lots of collections. See [http://www.mongodb.org/display/DOCS/Using+a+Large+Number+of+...](http://www.mongodb.org/display/DOCS/Using+a+Large+Number+of+Collections)

<comment><USER8> I'm actually not advocating for a database per customer. I was more wondering why you have so many collections -- surely they're not all representing different logical data. My guess is that you create some number of collections per customer?

With the new built-in sharding support, couldn't you have a 'customer_id' field and collapse many of those collections into larger collections, then shard by 'customer_id'? I'm just trying to understand tradeoff between these two types of schemas.</comment></comment></comment>


For Albert Clarke, the Rise of 'Goodnight Moon' Is No Storybook Romance (2000) - <AUTHOR> http://www.joshuaprager.com/articles/runaway-money/ <comment><USER2> For me, the primary takeaway from this article is the absurdity of copyright lifetimes that keep a book published in 1947 out of the public domain, printing money for people who had no part in creating it.

<comment><USER3> I feel like the time is ripe to change that. It used to be that copyrights were held by big corporations and small enterprises were the ones who wanted to infringe. Now copyrights are held by millions of users and big corporations like Google and Facebook want to make money off that content. They could lobby for a major change to copyright law.

</comment></comment><comment><USER4> For the love of god can anyone explain the "good night nobody" line to me? I read this book to my kids and that part has been eating me.

<comment><USER5> I'm not sure anyone can explain it. Author Aimee Bender:

"What a surprise, then, to find that there is a blank page with 'Goodnight nobody' out of nowhere, sharing a spread with 'Goodnight mush.' [...] 'Goodnight nobody' is an author's inspired moment that is inexplicable and moving and creates an unknown that lingers. [...] I feel sure I will never crack open the meaning of 'Goodnight nobody,' and moments like that make rereading a genuine joy."

[https://opinionator.blogs.nytimes.com/2014/07/19/what- writer...](https://opinionator.blogs.nytimes.com/2014/07/19/what-writers-can- learn-from-good-night-moon/)

But for what it's worth, I think it's there for a simple reason: to reassure children that there is nobody else in the room, nobody else to fear.

<comment><USER6> She goes on to show that she (in my estimation) definitely gets it, even if is difficult to articulate what it's about:

"How wonderful that this oddly compassionate moment, where even nobody gets a good night, shows up in the picture book that is the most popular! There is no template, ever. When writing, how do we allow those moments of impulse, of surprise? How do we not censor that kind of leap?"

She won't crack open the meaning, and that's fine. "Goodnight nobody" is a passage that's more koan than clarity, and that's exactly what makes it such a genius little nugget to see in a book written for toddlers.

</comment></comment></comment><comment><USER7> Seems to me that the (second?) best thing that ever happened to him is that Samuel Nadler took him on as a client and watched out for his interests.

</comment><comment><USER8> Tangentially related, my grandmother purchased Clarke's Cape Cod cottage that is mentioned in the article. Clark approached a real estate agent saying the property needed to sell by the end of the week. My grandmother, who was not wealthy, offered what she had and Clark immidiately accepted. He was described as an "interesting fellow".

</comment><comment><USER9> A somewhat different bedtime story is, of course, _Go the Fuck to Sleep_. Most entertaining is when it is read by Samuel L Jackson: [https://www.youtube.com/watch?v=Udj-o2m39NA](https://www.youtube.com/watch?v=Udj-o2m39NA)

This book came too late for me and my kids ... maybe someday I'll get a chance to read it to my grandchildren?

<comment><USER10> You could just have a secret attic or Canadian family. /s

</comment></comment><comment><USER11> Original source: [https://www.wsj.com/articles/SB968365456431553434](https://www.wsj.com/articles/SB968365456431553434)

<comment><USER12> [http://archive.is/5bJ8V](http://archive.is/5bJ8V)

</comment></comment><comment><USER13> A fictional version is 'about a boy' by Nick Hornby. Kinda.

</comment><comment><USER14> we read this book to my son almost every night, and when we get to "good night nobody" he gets anxious and tries to turn then page quickly. Anyways, after reading this article I'll never look at this book the same again, not sure if good or bad.

</comment><comment><USER15> (2000)

</comment><comment><USER16> (2000)

<comment><USER17> Added. Thanks!</comment></comment>


Cheddar - <AUTHOR> https://cheddarapp.com A new simple to do list that instantly pushes changes to all of your devices. Cheddar supports Markdown and has tags. A free universal iPhone/iPad app and web app were just released. <comment><USER2> Out of all the todo apps I've tried. Every time I go back to writing shit on a white board.

I've timed myself. IT takes me about 6 seconds to write something on a whiteboard. And about 10 to take a picture of it with my phone.

Compare that to the 20+ it takes for me to pull out my phone, open an app, get into the list I want, and then type it out on a shitty little keyboard.

Until you make a note taking app that takes less time to use than a white board, I'm gonna use the whiteboard.

<comment><USER3> I use these small 5x8 yellow legal pads. Doesn't take up much space on my desk, and you get 17 lines or so, which is generally plenty. If I need multiple lists, I use multiple pages. Dead simple and fast. And it even allows for multiple levels of completion, like I can mark an X next to an item for when it's coded, then cross out the line when I test.

<comment><USER4> My fave todo app is still todo.txt. Simple. Effective. Writable and readable anywhere.

</comment></comment></comment><comment><USER5> The comments on this thread are such an embarrassment. Someone's worked hard on something for months, and people go and piss all over it.

If you don't think this is a useful or good app, you don't even have to look at it. Just pass.

At least when someone launches a product, if you don't have anything encouraging or constructive to say, it's best not to say anything.

It seems HN is suffering more and more from the "Why wasn't I consulted?" angst - <http://www.ftrain.com/wwic.html>

<comment><USER6> Why is honest criticism not allowed? Don't you _want_ to know why people are averse to your service so you can perfect it, no less directly from the people who would pay for it?

<comment><USER7> There's a difference between honest criticism and bashing someones hard work. 75% of the comments on this post are not honest criticism.

<comment><USER6> With no-bullshit audiences that tell it like it is, you sometimes need to read between the lines. I'm not condoning the behavior, but it is not foreign to HN and something to consider before posting here.

</comment></comment></comment></comment><comment><USER8> Dear God no, yet another pimped-up todo list? What does it do that the others don't?

<comment><USER9> When pg used a todo list as an example app to challenge email, this was to be expected. A million todo apps everywhere. People have so little imagination.

<comment><USER10> I don't think pg is to blame for this... todo list apps are inherently simple to design and build. If anything, they're a great 'first app' for new or aspiring developers, so a marketplace flooded with (many shitty) todo apps is not surprising.

<comment><USER11> Indeed.

And the second is a Time Tracking app followed by a Project Management app.

</comment></comment></comment></comment><comment><USER12> Startup request: Please, someone come up with a todo/productivity/project management system whose main feature is _motivation_ to use it, not just technical versions of paper todo lists. I don't know if the solution is necessarily technical. I've tried every major app and still rely on the visceral impact of post-it notes next to my computer to get things done. I'd love to switch to an app but nothing is actually making me use one.

<comment><USER13> Try the pomodoro technique (its just a 25-minute timer). I only tried it quite recently, but its working great and quickly becoming a habit. I really appreciate the no-nonsense approach which prevents any yak-shaving[1]. Its simple on the most basic level so its compatibile with more the complex systems like GTD, or task management / team collab apps.

1\. <http://en.wiktionary.org/wiki/yak_shaving>

</comment></comment><comment><USER14> Another TODO list app? When I looked at the website it seemed like the main value proposition was that my TODO list will be everywhere. Countless apps already do this though so I don't understand how this one is better.

</comment><comment><USER15> > pushes to all of your devices

iDevices you mean.

<comment><USER16> There's never any Windows Phone love...

 _sigh_...

<comment><USER17> There's never any NetBSD clients for the apps I like...

 _sigh_

<comment><USER18> ... and what about palm pilot (or zaurus, n900)

<comment><USER19> >zaurus

Brings back memories. I used to work on some of these devices for desktop sync. (With Schedule+ no less. Damn, that dates me)

I have seen some Japan only devices with fabulous color screens. They were way ahead of their time.

</comment></comment></comment></comment></comment><comment><USER20> No official Android app in the works. <https://twitter.com/cheddar/status/218385506533249027>

</comment><comment><USER21> If any app category needed a parody video and site, it's to-do lists and productivity.

Time to charge the camera batteries.

<comment><USER22> I'll add it to Yellow Yellow's TODO list for when they come out of double stealth: <http://doublestealth.blogspot.com>

<comment><USER23> "Currently we're in double stealth mode (the public doesn't know what we're building and neither do we)."

Fun read.

</comment></comment></comment><comment><USER6> Only allows me the ability to create two lists for free? I'm not going to pay for a service that can be replaced by Post-Its and the bevy of other services/apps that do the same thing. Inability to sync lists with other users is another reason. Friendly UI but that's about it.

Additionally -

Product Marketing 101: If you're competing in a space with [hundreds of] others just like you, you need to have a shortlist of reasons why to choose yours over the others before just dropping people into it.

You should also account for the amount of people visiting your site when you launch so it isn't crawling when people try to sign up for it. I'm trying to traverse the site right now to find where I can see a compare-and-contrast of similar tools and it is useless.

Also just noticed the icon is basically Clear's -- another list/to-do app -- is that intentional? Surely we can find better ways of illustrating lists than using a checkmark so people don't get confused.

<comment><USER24> Plus, Reminders with its default list on (free) iCloud "magically" syncs with all your (Apple) devices. Reminders adds geo fencing, recurrence, and other great features. It's a surprisingly well designed competitor in this space.

Couple that with Fantastical on the Mac menu bar which now shows those same iCloud Reminders and you have a slick solution.

</comment></comment><comment><USER25> Seriously, Sam. Reword the brief to not say "magical". It's annoying at best and insulting at worst. If it were ticking off "get milk" when you put a new carton of milk in a fridge, _that_ could've passed for magical. Doing an auto background sync is not, you are late by few years.

<comment><USER26> It might actually be magical, if you [mis-]read this:

 _It's just text. Type in the box. Press return. Done._

I'd love to complete all my tasks by typing in a box and pressing return.

</comment></comment><comment><USER27> Looks simple and clean but I already use "remember the milk" to do the same thing. The landing page doesn't give enough convincing arguments to pull me away.

<comment><USER28> I'm a big RTM fan myself, although I'm honestly not too pleased with their latest UI update on the iPhone. It's prettier, but not as snappy.

<comment><USER27> I agree about the UI update. It looks nice but feels clunky and I get disoriented with all the swiping. It's too "swipey".

<comment><USER28> Exactly. Having to swipe to get my list back on screen is less than ideal.

</comment></comment></comment></comment><comment><USER29> While it's always nice to have a pretty frontend, why not use Google Apps or Exchange reminders as a backend? Yet another account, yet another site, disconnected and needing individual management. I use Exchange reminders, to set it up I just add my Exchange account to my iPhone or Outlook and it's done. It's not pretty but I don't have to remember another site

</comment><comment><USER30> This is really great timing: I woke up this morning thinking "You know what I _really_ need? Another todo app!"

</comment><comment><USER31> I thought this was going to be about cheese but it's just another to do list.

</comment><comment><USER32> This is nothing new, there are a ton of good task syncing apps. What makes this apple-specific app so much better? Oh, wait.

</comment><comment><USER33> Congrats on launching Sam!

<comment><AUTHOR> Thanks Sam :)

</comment></comment><comment><USER34> A web interface? Hurrah! I don't like typing on my iPhone but find it handy for storing information (eg: shopping lists) and when I went through trying to find apps I couldn't locate any with a web interface so I would have to type on my phone... I eventually gave up trying to find one.

Feedback specific to the website: If a user hasn't downloaded one of the apps yet have the "apps" link from the footer in a more prominent place. I didn't notice it at first and wondered how to find the app links.

Also the ability to login via the website would nice, so after logging in I scan a QR code and it logs me in on my phone too, typing out my password on my phone is an annoyance.

<comment><USER35> If you view the page on iOS 6 beta, an app banner appears at the top of the page, linking to the app store.

</comment></comment><comment><USER36> I don't understand the hate in the comments. Two things:

1) The simplest applications are still hard to polish this much. In fact, simple things can often hide some of the hardest design choices.

2) Three years ago, Twitter apps were the UI design playground of choice. Now that they've told everyone not to write new clients, UI experimentation has shifted to other applications. Compare Cheddar to Clear, for example. Both are nominally to-do lists, both have carefully thought out custom interfaces, but they express very different philosophies about software design.

</comment><comment><USER37> How many task manager apps do we need? I've seen a huge influx of these apps recently. Nevertheless great UI!

<comment><USER38> Totally agree -- it'd be great to get a product comparison on the site to see some feature differentiation laid out. Except for the nice UI, it looks like just another to-do app.

</comment></comment><comment><USER39> I know there's a ton of todo apps out there, I've tried Remember the Milk, Evernote, Wunderlist, Reminders.app, and probably a couple other iOS todo apps.

I picked Wunderlist and have used that for a long time because it's on every platform I care about (iPhone, iPad, and Mac) BUT it's absolutely horrible about syncing content and I get duplicates and missing todos all the time. I just tried out cheddar's "push" feature and it's actually enough for me to leave Wunderlist.

Also the Markdown feature is awesome

</comment><comment><USER40> Always in Sync Instantly Everywhere*

*Except Android, Windows mobile, etc..

<comment><AUTHOR> Browsers are everywhere :)

</comment></comment><comment><USER41> Hackers love to make todo lists. It's like some musicians' work remixing pop songs.

<comment><USER42> Ironically I've yet to find an online todo list I like. My favorite todo list is a pad and a pen, next to my computer. I've not found a feature set in an online tool that works better for me.

<comment><USER43> After too many years typing I can barely write, so it's Notepad or Wordpad for me.

</comment></comment></comment><comment><USER44> Am I the only one who sees a clear, functional difference between "todo" and "list" apps?

Todo apps: Any.do, Orchestra, 2Do, Do It Tomorrow, TeuxDeux

List apps: Clear, Cheddar, Listary

I always keep one of each one my phone, because they serve entirely different purposes. While they both work by storing lists, there's a big difference for me between tasks and items in a list. When I'm tracking tasks, I want things organized based on timeframes (maybe also assigning priorities, due dates, or categories), and an interface designed around that principle is always going to do that better; you could use Clear or Cheddar to store "Today", "Tomorrow", and "Soon" lists, but that's a poor hack. When I'm simply maintaining a list of things to remember (e.g., grocery list, debts to friends, items I need to buy after moving, songs to buy, 100 push-ups program), all I want is several (separate) lists with items I can add, edit, rearrange, and delete.

I currently use Any.do as my tasks app and Clear as my list app. I really like the design of both of them, but I have reservations of both. Any.do takes a very nice approach of sorting tasks into bins of Today, Tomorrow, This Week, and Later, but aggressively bubbles tasks up (the idea is nice if Tomorrow tasks moved into Today after a day, and This Week into Tomorrow after 6 days, and Later always stayed in Later, but I've had to push the same tasks back into Later and This Week 4+ times per week). Clear lacks syncing of any kind -- this is extremely frustrating because it could easily hook into something like SimpleNote. I really like the focus on syncing from Cheddar, but I have major reservations about the subscription concept (even though experience shows that I move between these apps frequently and will likely not need to pay for many months, a subscription feels like a significant investment whereas a <$5 app doesn't), and I find myself missing Any.do and Clear's gestures.

<comment><USER45> If you like apps with nice interface based on gestures check 30/30. In this app you create tasks and asign time for them. Something like pomodoro technique but time may vary.

[I downloaded any.do - like it!]

</comment></comment><comment><USER46> The design of this app looks awesome, but I don't think we need more todo apps in the App Store. I have a huge list of app ideas with not enough time to implement all of them. Every few weeks I see one of my ideas, done by someone else, hit the top 25 of the App Store. If you're a talented developer there's much more creative things you could be buliding.

<comment><USER47> Sounds like you have a lot of great ideas. Can I have some? I'm a talented developer, but I rarely ever use apps myself, so I'm short on ideas. I'll buy you some beers if I make a few sales. :)

<comment><USER46> Sure, hit me up at my HN username @ gmail.

</comment></comment></comment><comment><USER48> I have a "todo" email in my drafts folder in GMail, I've been using this method for years, and it has always synched up across all of my devices. I used to do it with my regular IMAP email, which worked on my Sidekick, so this process goes back nearly a decade. I've tried using stuff like Remember The Milk, because people love it so much, but it just doesn't give me any benefit and I have to internalize a new process, setup all my machines, etc.

The same is true of Evernote. Email drafts are searchable and available on all my devices, so I just keep my notes there, too.

If I wanted to get fancy, I could make a folder just for todo lists and one for notes. But, I rarely have more than one active list at a time, and notes being searchable makes it easy to find the one I need when I need it.

</comment><comment><USER49> There is much incentive for you to make an Android version of Cheddar, too. The reason why is there's already plenty of similar task apps for iOS, but good task management apps are lacking on Android.

<comment><USER50> Any.do not work for you? <http://www.any.do/>

<comment><USER49> Any.do works fairly well. I like its Chrome extension. However, its syncing is _very_ delayed, which bothers me.

<comment><USER51> Have you tried Tasks? I used Any.do, it is good but I like Tasks better. Maybe you should give it a shot. [https://play.google.com/store/apps/details?id=ch.teamtasks.t...](https://play.google.com/store/apps/details?id=ch.teamtasks.tasks.paid&feature=search_result#?t=W251bGwsMSwxLDEsImNoLnRlYW10YXNrcy50YXNrcy5wYWlkIl0).

</comment></comment></comment></comment><comment><USER52> To-do app: Yawn. Stupid name: double yawn. There has only been one moderately innovative app in this space and it was Clear. Clearly, the space is now beyond saturated.

</comment><comment><USER53> Looks really great. I love the idea behind instantly keeping things up to date on all devices.

I can't wait to try the Mac App mentioned on the Support page - <https://cheddarapp.com/support>. I hope it fits in a small horizontal space, so that it can be always open (much like a Twitter client).

Good looking stuff. Excited to see if I can incorporate it into my workflow.

<comment><USER54> +1 on the Mac App.

Looks like Cheddar is going to replace Wunderlist for me. 6Wunderkinder haven't updated their iPad app in ages, and the non-retina graphics makes their product unattractive.

</comment></comment><comment><USER55> I must have tried over 10 different apps for keeping track of simple notes and tasks. I finally landed on Evernote (and emailing myself) mostly due to the sync issues across multiple devices. If this works similarly without all of the extra whistles and bells, I'd be pretty happy. The nice clean interface is encouraging.

<comment><USER56> Try Producteev

</comment></comment><comment><USER57> Sweet, it's completely useless! I can't dump a task from command line or vim. Can't script it to pull things to the calendar automatically. Can't send an email to put a task directly into it. Can't dump tasks to a text todo list to put at the top of the code or document im writing to remember what I need as I write.

Will not use. And, even if those features show up, won't consider due to lack basic thought in initial design.

I've said before and I'll say it again: todo's are a functionality that are only useful when broadly accessible from many different apps and contexts. Your app (for any your) is mostly useless to me.

Edit: I don't get all the hate this post is receiving. Is it because I didn't wrap it in sugar? Is it because I listed the things I would actually consider paying for? Or is it just because I'm disagreeing with some startup and that's against the local religion?

<comment><USER58> First, saying it's completely useless is complete hyperbole. You can enter to do items through an application or web interface. That is a use. It may not be a novel use or a use that interests you in any way, but it's still a use. It's a disappointing fact, but the truth is that command line integration, scripting or a public API are not particularly mainstream features in an app.

Next, it would seem pretty fanatical to say "this app does everything I want to, but because the features weren't there in the first version, I refuse to use it." If the new functionality is well-integrated and not simply shoe- horned in, would does the first version of the product have any relevance at all?

<comment><USER57> Well a team that decides to build a clone of something that exists hundreds of times over, without thinking to even mention that more features are on the way, probably doesn't have the ability properly add features in the future. They show a complete lack of thought towards innovation or product usefulness, only the ability to poorly copy something. Therefore I'm not going to waste my time following them, and instead give attention to one of the other 100 todo apps that shows the potential for actually becoming useful to me.

</comment></comment></comment><comment><USER59> I would just like to note, that as a human I can only store a finite number of passwords in my brain and would love if web apps like these would at least provide OAuth with another identity provider (gmail, etc.) as an option.

</comment><comment><USER60> Given the recent exploits of other popular web services, I'm curious to hear a bit more about your security model. The privacy policy makes it sound as though all non-credit-card info is transmitted and stored in plaintext.

</comment><comment><USER61> Here's what I'd like to see - A Todo app, calendar and goal tracker all rolled in one, with a clean UI and multi-platform sync. That's all the productivity I need!

</comment><comment><USER62> Anyone else experiencing a lot of bugs with Cheddar? I mark an item done on my iPhone, web UI doesn't sync. Now I create a new list, it doesn't show.

Still early stage?

</comment><comment><USER63> Is there any way to add a date or deadline to a task? I've been having issues with Wunderlist syncing between devices, but due dates are key.

</comment><comment><USER64> Small nit: on the bottom phone, the text "Simple, just text" is horribly kerned. Otherwise, the product page looks great!

<comment><USER65> And randomly a different serif font. The line-height on the actual app's UIToolbar title is a bit too much too, should be slightly higher up, imo.

</comment></comment><comment><USER66> Looks pretty similar to my current fav: <http://teuxdeux.com/>

</comment><comment><USER67> i think this is great - few questions for you:

\- is there any way to altogether delete tasks? looks like you can only archive \- are there any plans to have an osx app? i was just looking for something like this yesterday for my MBP

</comment><comment><USER68> Seems almost identical to Fetchnotes, but with worse device support.

<comment><USER69> Or Gmail Tasks

</comment></comment><comment><USER70> App store reviews sound like they've been solicited.

</comment><comment><USER71> Something really bothers me about the design of this app... definitely not trying to be a hater here, but the color, font, spacing... everything seems a little off to me.

</comment><comment><USER72> The 'oh no, not another todo list' comments on this are hilarious - and I suspect Sam will get also get a kick out of them, as he deposits his checks.

Sam, congratulations on your launch.

</comment><comment><USER73> This looks great. Will try it out for iphone.

</comment><comment> john-n Maybe tweak volume on video? (cant hear it)

</comment><comment><USER74> YAFTDL (yet another effing to-do list).

</comment><comment><USER75> No trademark issues with CheddarGetter?

</comment><comment><USER76> Where's Clippy when you need it to tell you to hit backspace when writing yet another todo list app.

</comment><comment><USER77> +1 for delicious cheese.

<comment><USER78> Let me guess, you're American.

Not that cheddar can't be a good cheese, but on the other side of the pond, cheddar is really the most basic cheese.

<comment><USER77> I did wonder why the app was orange, though, so I assume that's a symptom of the American cheese gap.</comment></comment></comment>


Facebook's Upcoming Ad Platform - <AUTHOR> http://thenextweb.com/socialmedia/2011/05/16/a-tour-of-facebooks-upcoming-ad-platform/

<comment><USER2> Looks like new graphs, not a new platform...

</comment><comment><USER3> I 'd rather have a breakdown of how these ads perform wrt conversions, and how they compare to adwords

<comment><USER4> Anecdotal from April 2011...

[http://www.yasmara.web.id/2011/04/keyword- advertising/keywor...](http://www.yasmara.web.id/2011/04/keyword- advertising/keyword-advertising-experiment/)</comment></comment>


The only legitimate use of the blink tag - <AUTHOR> http://ars.userfriendly.org/cartoons/?id=20030427&mode=classic

<comment><USER2> Kudos. I'd have to say that that is spot on. I almost want to wip out my text editor and throw a page up right now just so I can use this :-)</comment>


No, it's not the end of XMPP for Google Talk - <AUTHOR> http://xmpp.org/2015/03/no-its-not-the-end-of-xmpp-for-google-talk/ <comment><USER2> This is a terrible, inaccurate article to link. Google Talk is going away, so is irrelevant. Google has a big banner on pages about it that it is going away. I don't even understand why the article talks about it so much and mentions it can still be used inter-server without SSL. That's just silly and clouding the issue. Google Talk is irrelevant to anyone now.

Google Hangouts will only show Google+ people as someone you can message. Period. There are some vague little interop features left. You can login direct to Google servers and chat with a third party client, yes.

Google has officially said they will no longer support federation - so other companies Jabber servers and user accounts will not work with Hangout users. So of the two huge user side things everyone is talking about: choose non- Google clients and login directly to Google still has some support, choose non-Google account is going the way of the dodo very much so.

The article, I guess, only really cares about XMPP like caring about "do developers still use Java". The point it makes isn't really the end user sort of thing people are talking about. Google could still use XMPP internally and the article would be screaming yes, but it could be irrelevant to users if there's no interop anyway.

<comment><USER3> _> This is a terrible, inaccurate article to link. Google Talk is going away, so is irrelevant._

It's a valid article to link. Google Talk (federated based on open standards) is not going away - it's already gone (at least federation part). Hangouts is a closed non interoperable service, not based on open standards. Clear degradation for Google. However this article isn't saying anything new. Google degraded to that a while ago and I doubt there is any point in trying to convince them otherwise. They chose their degrading direction with a lame excuse from Eric Schmidt which sounded like "everyone else does it".

 _> Google Talk is irrelevant to anyone now._

That's bunk. I had many contacts (more than a half actually) who are Google users and with whom I could communicate before. When server to server encryption became mandatory on most XMPP servers, those contacts were simply cut off. Gone. And don't say it's irrelevant - it would be a royal pain asking all those people to register on another XMPP server, and I'm not interested in using Google one. So I simply had to stop communicating with them over IM. Do I need to say what I think about Google regarding it?

<comment><USER4> > _When server to server encryption became mandatory on most XMPP servers, > those contacts were simply cut off. Gone._

Same situation here. Would love to keep using the DDG XMPP servers for all IM. Sadly only 2 (two) contacts remain since the TLS clampdown last year. The account is still enabled in Pidgin/Finch (in tmux on rpi), hoping for some reversal in XMPP's fortunes!

Feel free to add me as a contact there: [this username]@dukgo.com

</comment></comment></comment><comment><USER3> _> However, since the Google Talk Service does not support server-to-server encryption via TLS (something that was required by RFC 3920 in 2004), a number of servers (including jabber.org) refuse to establish a connection since May 2014._

Yeah, that's the deadly deal breaker. Practically all servers make it mandatory now. Since Google blatantly refuse to support server to server encryption (I wonder why), all my contacts that use Google Talk are basically cut off. Goodbye Google, you became evil as soon as you decided not to open Hangouts protocol for everyone and broke XMPP federation for Google Talk.

Server to server encryption problem was reported to Google multiple times, but they used their usual stonewalling response to address it.

<comment><USER5> > I wonder why

Multi-tenancy, Subjects, and Subject Alternative Names would be my guess.

<comment><USER6> That wouldn't preclude enabling support for the common case where none of those apply or, for slightly more work, requiring SNI.

</comment></comment></comment><comment><USER7> If anyone is curious, here is a paste-bin of an email sent out by Google to users that are stubborn and still logging in to Google Talk:

[http://pastebin.com/kjMWriAK](http://pastebin.com/kjMWriAK)

#Note, I am one of them.

<comment><USER8> Thanks for sharing that.

The pain of all this would much greatly lessened if they would make a decent non-browser-based desktop client, or at least open up their server-side conversation history API to third party client development.

<comment><USER9> Google Talk is a great, lightweight client that I've used for many, many years. Google Hangouts is an obnoxious pain-in-the-ass that I stopped using after a couple of days.

I just want something lightweight and not dependent on my browser. I use Chrome, but Hangouts just gets in the way. Google Talk does not.

<comment><USER7> Agreed... I just had a discussion with a coworker that recently switched over to Hangouts from GoogleTalk. They came across weird/odd/non-standard behavior whereby the chat windows "float" above everything, even after losing focus. You have to actively "minimize" them in order for them to go away.

It's a mess.

</comment></comment></comment></comment><comment><USER10> Ok, I just read the facts they list and state and I come away with a very different perspective. XMPP for all but the most advanced end users is dead at google. If they are using the protocol internally matters little if the user experience and federation is broken.

<comment><USER8> It's a real shame, too, because XMPP had the potential to become the next HTTP or the next email.

I've said for years that instant messaging is a terrible hellscape of competing protocols, mostly proprietary.

Imagine if when visiting a website you had to remember whether or not it's HTTP, XYYZ, or FKME before typing the URL.

Imagine if all email addresses couldn't communicate with each other.

That's what IM is like today, and it's a terrible, terrible shame.

Google was in a position to change all that when they adopted XMPP for Google Talk.

If they stuck with federating, maybe things would be different now.

<comment><USER3> _> Google was in a position to change all that when they adopted XMPP for Google Talk._

I'd add to that that if they considered XMPP inferior for whatever reason, they were in position to change it by opening up Hangouts like XMPP-next or whatever. They simply betrayed the whole effort.

<comment><USER11> Exactly, if they wanted to propose XMPP 2.0 like they did with HTTP, they could have done so.

<comment><USER12> They didn't want to fix IM, they wanted a captive audience using something that at the time required Google+.

That sounds like a familiar trend for so many Google properties in the last few years...

</comment></comment></comment></comment></comment><comment><USER13> I definitely preferred Google Talk to Google Hangouts - it was just simpler. Now I have Pidgin hooked up and it works pretty good.

<comment><USER14> Only works if have got a Gmail account. I had been using Gtalk with a Google account custom domain and that's gone. Took me a lot of time to realize my SVR records were not the problem. I created a new account with Gmail and everything works fine.

<comment><USER15> Still works for me and my custom domain.

<comment><USER14> Is it an old account from before Google Hangouts? Mine was a new one after that. I think I really understood what should be done but perhaps I missed a step. In any case, creating a Gmail account "fixed" it.

</comment></comment></comment></comment><comment><USER16> Everyone wants to take XMPP, but no one wants to give XMPP. The old Microsoft model of embrace and extend. What could stop this sort of behavior?

Could standards be constructed in a way the punishes greedy 'compliance' while still providing enough benefit to keep implementations from simply ignoring standards all together?

<comment><USER17> IMHO this should be a case for regulation (although you'll probably disagree, with that username :-). Basically, if you run a service with more than, say, a million users, you should be required (or strongly incentivized) to provide federation to your competitors.

So as a user you'd be able to connect from GTalk/Hangouts to Skype or Facebook chat. Going further, as a Facebook account owner you could follow people on twitter, and post to friends' walls if they use diaspora.

I guess this would break many "Silo" business models (after all, that's the purpose of such a regulation). But it would be good for competition, it would give smaller competitors a chance. And it would give the large players a strong incentive to be great "account providers". I wouldn't use Facebook (G+, Google Talk, ...) just because all my friends are there, but maybe because of their great privacy policy :-D or because they offer the best UI or some innovative features.

<comment><USER11> No, it's the job of the users to use open standards. I try to use XMPP still and encourage people to use with me. They're probably using Pidgin or a similar multi-protocol chat software anyway SINCE EVERY CHAT PROTOCOL IS A WALLED GARDEN.

</comment></comment></comment><comment><USER18> It's very sad that we've reverted back to proprietary messaging APIs.

</comment><comment><USER5> So it is not the end of XMPP - XMPP is just broken for the mainstream clients.

Maybe it is not the end, but it is the beginning of the end.

</comment><comment><USER19> XMPP as a protocol is a deadend.

An open message platform is a great idea but individuals don't care. They are happy with walled gardens and XMPP doesn't have a USP to convince them otherwise.

Sometimes you just have to admit defeat and move on.

<comment><USER20> I think users do care about things like being able to use different apps with the same messaging service; non-techie friends of mine complain all the time about how some service X has a great mobile app but a bad web app and how service Y is the exact opposite. The problem with XMPP was it never really seemed to spawn the cool apps that would get the attention of non-techies (for whatever reason, but the fact you couldn't talk it natively from the browser can't have helped).

(Then again, I'm not exactly unbiased given I work for [http://matrix.org](http://matrix.org))

<comment><USER21> XMPP, as a standard, was too slow to adopt mobile, so the cool apps had to invent their own messaging protocol (perhaps on top of XMPP) to get push notifications and such.

<comment><USER22> All they had to do is release their protocol specification, kind of like they did with SPDY.

It's quite obvious that when they started they were small compared to AIM, MSN, YIM and others so they used XMPP to help gain traction, once they became huge they dropped interoperability to lock users inside.

Do no evil my ass.

</comment></comment></comment></comment><comment><USER23> Actually, the issue is that Hangouts doesn't work with federated XMPP. This means I can't talk to my @gmail.com friends from my own XMPP server. This is a problem, which significantly breaks things.

</comment><comment><USER24> I hate the hangsout ui so much. Google voice and google talk are must easier to read and use.

</comment><comment><USER25> So gone are the days of being able to have one IM client for all of the different protocols. It's going to be on the desktop the same as it is on the phone, and we're all going to be running 4-5 different IM clients with all the same features just to be able to talk to everyone.

</comment><comment><USER26> I've been having increasing problems even having messages properly make it through between XMPP and Hangouts clients lately. Sometimes I have to open up hangouts on my phone so my gtalk messages actually go through to another user.

So I'm not sure it's clear that even the days of that interop aren't numbered as well.

</comment><comment><USER27> Could someone explain what this means for routers using google voice for voip service like [http://www.obihai.com/googlevoice](http://www.obihai.com/googlevoice)?

<comment><USER28> Nothing. Google Talk is an entirely separate service from Google Voice.

That being said, I wouldn't count on Google Voice continuing to exist long- term. It's not positioned as a major product on their site -- you have to click through to their complete product list [1] to even see it mentioned -- and it hasn't seen any major changes in a while now.

[1]: [http://www.google.com/intl/en/about/products/](http://www.google.com/intl/en/about/products/)

<comment><USER27> I'm asking because I remember people saying xmpp would stop a year ago and obihai wouldn't work, which didn't happen. (example: [http://blog.obihai.com/2013/10/important-message-about- googl...](http://blog.obihai.com/2013/10/important-message-about-google- voice.html)).

</comment></comment></comment><comment><USER29> No TLS, huh? [http://i.imgur.com/BsJYvOr.png](http://i.imgur.com/BsJYvOr.png)

<comment><USER30> That's the client to server encryption, which Google Talk has. Server to server encryption is missing.

<comment><USER29> Oh, thanks for the explanation.</comment></comment></comment>


Show HN: Sweetheart.io – Monthly, Romantic Postcards - <AUTHOR> https://sweetheart.io

<comment><AUTHOR> I built Sweetheart.io for myself, originally -- then had several friends request access so they could send postcards, too.

The basic idea is that you can subscribe your girlfriend/wife/husband/boyfriend* to receive small tokens of your love every month -- in this case, well-designed and romantic postcards with a sweet message on them.

The potential "downsides" to this idea are people perceiving this as being lazy, or automating something that should be personal. In my opinion, though, it _is_ sweet to subscribe a loved one to a service like this -- my wife is very happy when she receives her monthly card in the mail!

* While I'm targeting men -> women from a marketing perspective, I've made sure to keep all of the cards gender-neutral, so any partner can enjoy this service :)

<comment><USER2> Cool idea, simple and easy.

Quick question - $7 actually seems pretty cheap to me for 12 cards, how are you able to cover the cost of postage and the card cost? Is mailing a postcard cheaper than the normal postage rate?

<comment><AUTHOR> Aha -- it's $7 _per month,_ so it more than makes up for it. However, that comment alone makes me think maybe the pricing is a little too aggressive?

Would $5/mo be easier to swallow?

</comment></comment></comment><comment><USER3> It's a cool idea but a few suggestions:

-No mention if international addresses are okay.

-Seems a little expensive.

-Needs more examples of cards.

-Would be nice if it pings you by email a few days before the card prints/sends so you can add your own personal message.

<comment><AUTHOR> Hey, those are all awesome suggestions.

\- _Right now_ I'm doing U.S. only, just because the pricing gets a little weird otherwise.

\- I'm with you on the examples of different examples of cards; I have several made (and our designers are working on other ones that should be out soon), so that's super valuable feedback.

\- I think I can A/B test some pricing. I wouldn't want to go below $5, but $7 was -- to be honest -- sort of dartboard pricing. If I change the price, I'll credit the difference * months paid to existing accounts :)

\- Yeah, I've thought about custom messages. It would be a cool feature, and probably wouldn't be that difficult to implement. I'll see what I can do tonight!

Thanks for feedback, it's awesome to have some constructive criticism to work on! I'm also not a designer, so I've been tweaking the landing page/copy a little bit, too.

</comment></comment><comment><USER4> [http://i.imgur.com/Cx8eULG.jpg](http://i.imgur.com/Cx8eULG.jpg)</comment>


Is Your Online Bank Vulnerable To Currency Rounding Attacks? - <AUTHOR> http://blog.acrossecurity.com/2012/01/is-your-online-bank-vulnerable-to.html

<comment><USER2> Tricks like this are why the bank that I work for does monitoring of transaction behavior. Although we don't have this particular vulnerability, imagine that we did. For the first day (or at least the first few hours) the customer would perform the massive number of 1-cent currency conversions, making some money in the process. Then our security department would investigate the anomalously high number of transactions, would see what the person was doing, and would stop it immediately.

Any system (not just a bank) needs computerized processes to handle huge volumes of processing, but also needs human overseers who can recognize anomalous patterns, investigate and correct. Put differently, you can fool some of the computers all of the time, whereas humans can quite easily be fooled some of the time but are rather resistant to being fooled all of the time.</comment>


Ockam built a JAMStack site and it's 100% Open Source - <AUTHOR> https://www.ockam.io/learn/blog/ockam_website_is_open_source/#the-ockamio-open-source-stack <comment><USER2> I don't know but somehow the ockam.io page being blank except the menu somehow does not inspire confidence...

</comment><comment><USER3> Code looks really clean. What's the naming reasoning behind `mdxComponents`. Does mdx mean something?

`Blockqute` is that a typo?

I like how you handle MenuItems on mobile.

<comment><USER4> Yea, it's related to [https://mdxjs.com](https://mdxjs.com). All .md files can contain valid jsx code. This `mdxComponents` folder name, refers to components that could both be - used directly in markdown files or used to generate html from markdowns.

</comment></comment><comment><USER5> That's all good and well, but the actual website fails to render on Firefox (OSX Catalina)

<comment><AUTHOR> Thanks for the heads up...Maybe the build we did this morning has a bug for firefox. Let me take a look.

<comment><USER5> Sorry I should add - Works fine for me in Safari and Chromium, in Firefox the header and footer render fine, but the content fails to display. There are no console errors.

</comment></comment></comment><comment><USER6> _There are two primary advantages for the ockam.io site to use JAMStack:

No need for a database or complex backends

Building and hosting are decoupled_

I don't get it, since when building a static site requires a database? Are they referring to eliminating some kind of CMS?

<comment><USER4> I think the point is that ockam site requires a flexible layer to manage its data, which is focused mostly on .md documentation files. So Storing, updating and managing these files through a database could be quite hard and annoying, since all of them are stored across many different github repos. Moreover, all these files, have to be shown in a user-friendly way. This data from .md files, have to be converted to HTML at some point as well.

So what we have done is we keep all data on their place ( depended github repos ), grab them before build time, and generate static content based on it. Moreover, we have some mechanism to target particular branches/commits on depended repos, and control when we want to trigger our pipelines.

So, replaying directly to your question - no, building a static site not require a database. JAMStack architecture is helping us to provide and manage our specific data sources.

<comment><AUTHOR> ...exactly!

</comment></comment></comment><comment><USER7> I really want to find a great open-source JAMStack documentation site for APIs. Does one exist somewhere?

<comment><USER3> I'm planning on migrating all our Postman documentation away to [https://github.com/slatedocs/slate](https://github.com/slatedocs/slate) if that's what you mean.

PS. The reason why we're moving away from Postman is due to some tiny issue[1] that has caused lots of "you need to click here to see everthing" conversations.

[1] : [https://github.com/postmanlabs/postman-app- support/issues/57...](https://github.com/postmanlabs/postman-app- support/issues/5789)

<comment><USER7> I'm not quite sure what you mean by "Postman documentation". Is this Postman's documentation or documentation for other APIs (not sure if Postman has an OpenAPI spec?).

I found slate, and it's super cool, but I haven't used it myself. There might be some pipelining involved, from my understanding of projects like [https://github.com/Mermade/widdershins](https://github.com/Mermade/widdershins) where you convert OpenAPI specs to markdown?

I think the good folks over at getstream.io used slate as a base for their docs CMS and loved it enough to write about it, and I'd love to read more about slate in production. Looking forward to when you finish your migration and if you write about it!

</comment></comment></comment><comment><USER8> This is a great platform for IOT!</comment>


I took 2 years to write my novel and it has just 7000 words - <AUTHOR> http://bycomet.wordpress.com/2013/01/24/i-took-2-years-to-write-my-novel-and-it-has-just-7000-words/

<comment><USER2> Translation into dev-speak: "I took 2 years to write my app, and its job is to print 'hello, world!' to STDOUT."

(Real writers don't write just one novel, and real novels aren't just 7000 words. Real writers write on the order of a million words _just in the process of learning what they're doing_. And _then_ they get started.)

<comment><AUTHOR> I believe its also possible to convey a lot in the short form of writing (novella) like "Who moved my cheese?" by Spencer Johnson. But I suppose it also depends on the genre & message/story you have mapped out.</comment></comment>