How to screw up your life by getting promoted - <AUTHOR> http://blog.thestartuptoolkit.com/blog/2012/12/how-to-screw-up-your-life-by-getting-promoted/ <comment><USER2> My wife and I save for a trip around the world by avoid "lifestyle inflation" which is what I've heard this referred to in the past (possibly from the Millionaire Next Door[1]). Each time we received a raise, we would increase our trip savings.

The easiest way to describe it is that we lived paycheck to paycheck. Neither of us would be disciplined enough to follow a strict budget, but we can easily avoid spending the money if it isn't in our accounts. So, each month, we had money withdrawn for retirement, trip savings, 529, and house savings. We increased this amount until we were just scraping by with just enough money each month. This meant I could buy whatever I wanted, so long as we'd have enough money at the end of the month to "pay ourselves".

I'm fond of this method, though I haven't found many others using it. I think typically, if people are disciplined enough to save money, they're able to follow some kind of budget.

A word of warning: Be sure not to be TOO aggressive with this, we almost certainly were. We were living off less than 30% of our after tax income. Remember, you should enjoy yourself while you're making money now, not just save it all for the future.

[1]: [http://www.amazon.com/Millionaire-Next-Door-Thomas- Stanley/d...](http://www.amazon.com/Millionaire-Next-Door-Thomas- Stanley/dp/0671015206)

Edit: formatting, link

<comment><USER3> > We were living off less than 30% of our after tax income. Remember, you > should enjoy yourself while you're making money now, not just save it all > for the future.

If you can live off of 30% of your income, the future becomes a lot closer: you can retire in ~8.8 years. (Or round it up to 10 or so and you'll have even more income during retirement.)

Try <http://networthify.com/calculator/earlyretirement> if you want to fiddle with savings rates and find out how long you need to work. Notice that the number of years depends solely on the savings rate, not on the total salary.

<comment><USER4> That calculator is a terrible way to go about it: They are missing inflation, which will have a large effect on your expenses over time.

There are other problems too, but that one alone make it worth looking elsewhere.

<comment><USER5> The 5% return rate for investments is taking inflation into account, actually.

<comment><USER4> Even if you limit it to the investment return: It is ignoring variation in return for that level of return, which is a terrible way to do long-term planning.

<comment><USER5> Agreed, that is the main problem with this plan. The 4% withdrawal plan is increasingly less likely to work the longer the length of your retirement. If you retire at age 65, the probability is low enough to not generally worry... but if you retire at 30, you might want to think twice.

I'm sure somebody somewhere has calculated or estimated the probability of the 4% plan lasting for a given number of years. I'm curious what the results were.

<comment><USER4> The "4% plan" is a way to explain the problem for your avg Joe who can't do math. It's a nice rule of thumb (often you'll see 3% even) but doesn't leave a ton of room. Just look at the current environment if you need an example: Lots of people who retired in the 90s are getting killed on their principal.

Sensible planning involves calculating the probability that you will not outlive your assets: Portfolio planning will pick points from the so-called efficient frontier, and then often run Monte Carlo simulations to get a handle on whether the expected variation will put you in the poor house.

BTW, this is usually where the 3-4% plans arise from. People will make an assumption about return+variation, and then see what withdrawal is likely (but not guaranteed) to avoid outliving the principal.

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> > Building something interesting requires a surplus of time and money. > Salaried jobs provide neither.

Standard negatory bullshit. You should be able to achieve building something interesting, using someone elses time and money. If you can't, maybe you've got an attitude problem, not a job problem.

<comment><USER7> Also perplexing was this assertion that salaried jobs don't provide a surplus of money, when the vast majority of entrepreneurs fund their projects and endeavors through a salaried position either held concurrently or in the past.

<comment><USER8> Lies! Our heros would never sully themselves with something as filthy as a _salaried position!_

</comment></comment></comment><comment><USER9> Ah yes, the trap of a higher income.

Probably better to take the higher paying job and don't raise your standard of living. Adopt an automatic 25%+ of your income goes directly from your paycheck into savings. For a two income family, one spouse's paycheck pays the bills, and the others goes to savings and doesn't get touched.

<comment><USER10> Kinda like Herb and Dorothy. <http://www.imdb.com/title/tt1227929/>

</comment></comment><comment><USER11> The inflation is better focused on the life, not the lifestyle. I don't put my paycheck in the bank account and have set money withdrawn for my investments. I put my paycheck in my investments and have set money withdrawn for my bank account. I fight hard to make money for my future, and I know that's exactly where it's going. I keep strict records of my work time, and set a time limit on my job, then build myself outside of work hours, investing time in developing myself. If I prioritize some nice things that I want to spend on, i need to be patient, or it comes out of something less important. I find that careless expenses can be more of a burden than a pleasure, so keeping spending equal helps me improve my lifestyle, rather than inflate it.

</comment><comment><USER8> _Building something interesting requires a surplus of time and money. Salaried jobs provide neither._

What? A salaried job is literally a company converting some of its money into time. It may not be _your_ surplus of time or surplus of money, but that doesn't mean you aren't building something interesting.

</comment><comment><USER12> On solution to this problem is make sure your social circle is weighted with people who spend money in the quantity and manner you wish to spend it.

I don't think I would ever naturally consider a luxury sedan a necessity, but if all my friends had them, I would begin to suffer from lifestyle scope creep.

My wife and I surround ourselves with people who do not spend large amounts of money in traditional ways. We don't budget, but according to mint, we live on just over half of our income.

</comment><comment><USER13> >Building something interesting requires a surplus of time and money. Salaried jobs provide neither. Unless the job itself is your dream, stay the fuck away from them.

Yes, it's advisable to just start off with time and money.

</comment><comment><USER7> _> Strong people fall for this trap. It's poisonous._

"Trap" is the keyword here, in that it's set up by someone other than yourself. Your colleagues (esp those more senior to you) in these industries will purposely coerce you towards a higher maintenance lifestyle so that you will have an increasingly difficult time escaping.

</comment><comment><USER14> I've observed this time and time again in my friends. One of my buddies and his wife graduated from a top-10 MBA program. His wife recently needed to get a new car and she wanted a Honda Civic which is a car that's got a decent balance between price and utility. He convinced her to get a luxury sedan because being seen in the company parking lot with that is a big no-no.

Another friend increases spending in proportion to income as well. Bigger house, new car, fancy toys. Babies get spoiled with way more than we grew up on.

It's a sad phenomenon. This is "Keeping up with the Joneses" disease. If instead of spending all your money keeping up you become disciplined with your spending you can retire early. And these people certainly don't love their jobs. How could you pass that up?

</comment><comment><USER15> I call that the "IV drip". The monthly check is the drip, and it keeps you sleepwalking... doing busywork, and the years keep flying by.

<comment><USER4> Yeah, but there are days where I wish I could have taken the blue pill.

</comment></comment><comment><USER16> I quit my well-paid, normal, boring job two weeks ago because I realized I fell into this kind of trap. It's been just two weeks and I already cut my spendings in half - no more expensive stuff when cheap would suffice, no more electronic toys which have zero ROI, no more spending just to make myself feel better. No more buying _stuff_ because I'll be traveling a lot soon and just won't be able to take it all with me. I actually ended up putting lots of stuff on eBay because I realized I won't need it anymore.

When you get a paycheck every month, there is _zero_ motivation to save. When you know there'll be _no_ paycheck, you finally get your brain going and you start inventing ways to make money instead of slaving away.

<comment><USER17> You can save some effort by using a well regarded way of making money: getting a paycheck.

</comment></comment><comment><USER18> I might be crazy, but because of this I never negotiate salary. When it gets to that part of the job offer, I just tell them what I'm currently making and leave it to them to decide a reasonable increase. As long as they actually go up, I always accept.

<comment><USER17> You are severely underpaid, my friend. Surely you can think of a better recipient of your charity than the owner of your company?

<comment><USER18> glassdoor.com would disagree with you.... sorta. =P

</comment></comment></comment><comment><USER19> I swear that I've read this before on HN.

</comment><comment><USER20> I'm going to relay the depressing news that's behind this dynamic. Many Americans think of business as a risky, exclusive endeavor because "it takes money to make money". What's missed in that is that holding a job _also costs money_. Lots of it, although the costs are sometimes indirect. You have to live in an expensive location, although you're not getting _nearly_ enough utility (in most cases) to justify paying to live there... except for the better jobs there. If you're serious about your career, you can't do your own cleaning: two-career couple and you need a maid. If you have kids, your bosses will ask where they go to school and it will affect your promotion chances. If a professional job pays $400k, there's absolutely no way you can keep it with less than about a $300k (pre-tax) lifestyle, and that's if you're really good. (The untalented need $500k to keep that job.) In fact, the major reason why it pays so much is because that is the economic cost of doing what the job requires (living in an expensive area, hiring a maid so you aren't distracted by chores). The vast majority of Americans' expenditures (aside from basic necessities) is put toward (a) recovering from negative emotional effects of work stress, and (b) meeting the social expectations necessary in order to succeed in one's career.

What we'd expect based on our knowledge of markets is that people would have to spend $1/year to keep a $1/year job. However, some people have a talent for managing money and saving. If they make twice as much, they save twice as fast. Instead of making $100k (post-tax) and spending $80k, they're spending $160k to keep a $200k (post-tax) job. The more they make, the more they save. No surprises.

However, the financially untalented are the ones who have to spend $120k to keep a $100k job. If they get promoted, they'll be spending $240k to keep a $200k job. They'll burn twice as fast.

This is a deeper problem than people think. It's not just about "discipline" or will. There are people out there who are just severely below average in financial sense and, while they can play the social gymnastics necessary to get the $500k+ jobs, they can't make $1.00 without spending $1.10 (at any income level).

<comment><USER21> A professional job that pays $400k is being a dermatologist in New Jersey. Even after the nanny and $600K house you are still putting away $200K a year. Your husband's $100K hobby job as a stay at home dad/computer programmer can be used as a slush fund to take care of the parents and keep him entertained with a new iPad every other year. Most high earning situations are not really like an adaption of a Bret Easton Ellis novel.

<comment><USER22> Just to break this down a bit for you at 400k/year, your take home after taxes and extras will be somewhere in the ballpark of 18k/mo.

Your nanny will be around 2500/mo - down to 15.5k

Your 600k house will be around 4300/mo - down to 11k

Malpractice insurance / practice fees is anyones guess but lets be reasonable and say 2k/mo - down to 9k

So were down to saving 9k per month but then there is all the other stuff, food, electricity, entertainment, kid expenses, clothes, etc etc. Id say this usually amounts to about 3-4.5k per month ($100-150 per day) for someone who expects to live decently well.

Anyhow nobody is going broke in this scenario but our rich dermatologist is "only" saving 4-6k per month amounting to about 50-70k per year. Not horrible but not the extravagant wealth that you might expect. Note that I was also pretty nice to our hypothetical doctor - in this scenario they dont even have any student loans or a fancy car.

<comment><USER23> That's $4300 in a mortgage, not rent. A large portion of it should count as savings, not as a living expense.

<comment><USER24> In most situations your home is a liability, not an asset.</comment></comment></comment></comment></comment>


Ask YC: What do you use for time and todo tracking? - <AUTHOR>

I'm working on a startup with two other guys. We need a way to efficiently keep track of who's doing what. At the moment we're using Trac and we're not really happy with it. Adding new tasks (tickets) is klunky, and tracking time (to predict whether we'll hit our deadlines) doesn't really work either.
I've looked at a lot of different software packages, but none of them are very good. Okay, Basecamp is good, but it's really targeted at the service market. E.g. web-designers or contractors. People with clients and billing and that sort of thing. What I'm looking for is project management for startups. Emphasis on TODOs, milestones, time tracking, and a wiki. Adding tasks to the system should be more convienient than writing on a piece of paper (or in a vim window) - otherwise the system won't stick.
What are you guys using, and are you really happy with it? <comment><USER2> We developed our own internal app overnight tailored to the way we work. We figured the time devoted to organizing our priorities would help us out in the long run.

Our to-do tracking is separated into three lists: monthly, weekly, and daily. At the start of each month we list the items we want to accomplish. Next, at the beginning of each week, we transfer items from our monthly to-do list to our weekly to-do list. Then at the start of each day, we take on tasks from our weekly to-do list and aim to accomplish it by the end of the day. Random tasks will obviously come up so we add it to the appropriate list.

Another advantage to our system is that we're able to see eachothers' lists so everyone is held accountable -- if someone is slacking, we'll tell them. A SMS alert is also sent to the person's phone if their last login is greater than 24 hours.

<comment><USER3> That's almost universally a bad idea. That forces you to pour resources in an area that isn't the core of your business on a system that eventually won't scale if you start growing ... at which point you'll annoy your employees by forcing them to switch to a system they're not used to for reasons they don't understand.

<comment><USER2> When I say the system was developed overnight, I literally mean it was developed overnight by a single developer. We didn't spend weeks of unnecessary time on it. It's a simple solution that works for us at this present time.

The only resources we're "pouring" into it is a dedicated server, which we already had available to us. Since we're a smaller company we'd rather focus on scaling our app instead of our to-do list. When the time comes to expand our team, we'll adapt and overcome. I don't see any reason to abandon what works for us just because of the "what if's."

Sure, some may feel our solution is a bit too much but that's okay. We spent a lot of time looking for something comparable and decided to create our own instead. It may not work for you, but it has created measurable results for us.

<comment><USER3> That wasn't so much meant as a suggestion to you as a warning to others. When companies grow, which is one of those "what if's" that should be considered, home grown systems tend to lack features that the organization needs.

When you're setting up processes in a company it's important to realize the resentment that you'll be up against if you change them later.

</comment></comment></comment></comment><comment><USER4> Zimbra, it is pretty decent for calendering and mail. It has todo but I don't really use it. Some guys use AtTask, but honestly I just use a flat file for my todo. But I am just a programmer, so I don't have to juggle as much as a founder.

<comment><AUTHOR> Zimbra looks nice. Thanks.

Founder and programmer here. And flat files are really convenient when you know your way around a text editor. But if all TODO systems are so bad we programmers have failed, haven't we? Why can't we have our cake and eat it too?

Edit TODOs quickly as if it's a flat file, and at the same time get time reporting, tags and all the advantages of a structured approach. That's what I want, now I think about it.

<comment><USER5> Programmer and Freelancer and fledgling founder here. I share your views about how a todo app is supposed to function. I am actually trying to implement one, now if someone would like to collaborate with me, then that would be great.

I have a simple app called taskit(GPL) that i wrote hoping that it would transition to what you describe, but i didn't really have time for that alone. And it's beginning to show its design deficiencies.

</comment></comment></comment><comment><USER6> Basecamphq.com is good for a small team.

I use punch for time tracking since it fits my workflow better than basecame time tracking. `gem install punch`

<comment><AUTHOR> Haven't heard about punch yet. Can you use that in teams?

Basecamp is awesome but it's not really for startups. No nested Tasks, no multiple people for tasks. Time tracking is too basic. Not the end of the world, really, but DHH and Jason hate feature-creep so I'm not holding my breath.

<comment><USER7> Have you heard of goplan.info? I found it to be a very nice alternative to Basecamp. Nested tasks, tickets, milestones, it's all there.

<comment><AUTHOR> Goplan.info looks really nice. Thanks for the recommendation.

<comment><USER8> ah... sorry dude.. accidental mod down trying to highlight goplan.info... I'm kinda in the same boat as you (perhaps) all todo list software I find really doesn't fit what I'm looking for.

</comment></comment></comment></comment></comment><comment><USER9> I am using (and loving) Unfuddle for a 2-person project. It's like trac, but with some nice extras. Creating new tickets is easy. They also have a Mac widget you can install for creating/viewing tickets (I don't use it personally).

The only downside is it's $9/month if you have more than one developer.. You can always sign up for a free account first to see if you like it though.

<comment><USER10> Their markup language is pretty screwed up. They say they give a choice between textile and markdown, but textile does not seem to work correctly and markdown is not really for non tech people, as it does not donvert linebreaks to html br tags.

</comment></comment><comment><USER11> as much as i hate joel spolsky's attitude, fogbugz is the best that i've seen for this.

<comment><USER12> I also love FogBugz. As far as FogBugz and time tracking goes, it works great. It goes beyond just tracking who did what and for how long, it translates that into pretty accurate estimates of how long your project will take to complete.

They also have a free Student and Startup Edition of FogBugz on Demand for up to 2 users.

</comment></comment><comment><USER13> I just started using Mingle from Thoughtworks and so far I'm liking it very much. Took me a few hours to get the hang of it and then I was able to create a simple tracking application for my simple needs. There are sample templates included but they were overly complex and not what I needed.

What really impresses me about it is how easy it is to make your setup as simple or as complex as your needs are. It's free for <= 5 users and very pricey after that.

It's a jruby on rails app and I'm running it on glassfish on ubuntu.

<http://studios.thoughtworks.com/mingle-project-intelligence>

</comment><comment><USER14> I'm currently using bugzilla at work, and it has the same problem you mention with trac - adding new tickets is a pain in the ass. However, I love the integration with Mylyn <http://www.eclipse.org/mylyn/> because I spend my whole day in eclipse. If you use eclipse, mylyn integration is a huge plus - just because you can set a context and it will track how long you spent working on a task, as well as your estimate. Outside of eclipse and the office, I use an instance of tiki-wiki running on the same VPS I use for SVN. Tiki has a lot of features, but the default interface blows.

</comment><comment><USER15> <http://unfuddle.com>

Supports to-dos, milestones, time tracking and a notebook (simpler ver of wiki). It also supports Git and SVN.

</comment><comment><USER16> I've been using hiveminder.com for sometime. Its super easy to add tasks, delegate, tag, set due dates, etc. It also handles groups nicely, and its free.

<comment><AUTHOR> It doesn't have most of the features we need, but I like the Braindump. Thanks.

</comment></comment><comment><USER17> <https://www.drproject.org/>

Quote: DrProject is a web-based project management portal that integrates revision control, issue tracking, mailing lists, a wiki, and other tools that software development teams need to succeed.

DrProject was originally a fork of a popular lightweight open source portal called Trac.

</comment><comment><USER18> Streamfocus is from gibsonf on here. It is more on the level of Microsoft Project than Basecamp. (or gibsonf1 now? <http://news.ycombinator.com/threads?id=gibsonf1>)

<http://www.streamfocus.com/>

<comment><USER18> Also, it's written in lisp! For the type of team that needs software like Streamfocus, I don't think there are any equivalents.

</comment></comment><comment><USER19> I like 'things' for single person task tracking. It follows GTD and it's the best GTD app I've used. I use it regularly and daily. Unfortunately, the team functions are not implemented in it, but for personal tasks (not tickets), it's quite good. FogBugz look's like a nice ticket tracker, but it costs money.

</comment><comment><USER20> You might want to try Comindwork, which we currently use at our startup. It's not that it's perfect, but it has all the important functionality and looks pretty decent. You can register a free account for testing purposes (1 project, unlimited users, 100mb storage).

</comment><comment><USER21> Here's a recommendation on what not to use, Ace Project. Too much clickety clickety click.

</comment><comment><USER22> You may want to take a look at <http://gulpd.com> It has just been released in private beta but you can sign up and it is free for now. Fairly easy to use albeit still in active development.

</comment><comment><USER23> redmine. It's trac done right (multiple project, no need for plugins for most stuff). And being a RoR app, there must be a lot of built-in testing in the codebase. That could explain why it evolves so fast.

</comment><comment><USER24> rememberthemilk.com for general to dos.

I second lighthouse and goplan.

</comment><comment><USER25> I recommend <http://www.vitalist.com> for GTD style task and project management. More ideal for single-person use, though.

</comment><comment><USER26> For time tracking tools, check this list we made: <http://timetrackingresources.com>

</comment><comment><USER27> We're using unfuddle. It's pretty much like basecamp and trac combined. A good product, and the company listens to your suggestions.

</comment><comment><USER28> Sugarcrm, it has modules for almost anything.

<http://www.sugarcrm.org>

</comment><comment><USER29> omnifocus is excellent for todo's, but it's only for a single user.

billings is great for time tracking (has an excellent, easy to use (best in my opinion) widget for starting and stopping your timer), but is also single user

lighthouse (lighthouseapp.com) is great for team project manangement

</comment><comment><USER30> hmm, we do some of this. more focused on the biz side than development side. if youre looking for dev/design time tracking try tick. Publictivity.com. if you want an early invite and free account, email me jason [at] publictivity.com

</comment><comment><USER31> Time Tracking - GetMoreHoney.Com! Way awesome, very pleased with it...

</comment><comment><USER32> Using free google apps account. pretty much serves our need

</comment><comment><USER33> pen & 3x5" cards ~ <http://flickr.com/photos/bootload/488026860/>

<comment><AUTHOR> Interesting to see that pen, cards and paper are still used a lot. It's obviously really important that adding tasks and ideas into some kind of software system isn't more time consuming or harder to do than simply keeping a system of paper cards (or vim and notepad). Lots of software out there requires too many clicks for a simple operation like adding a task. It's the price I have to pay for staying organized, as I would loose all the paper cards.

</comment></comment><comment><USER34> StreamFocus.com :)

<comment><USER35> I signed up for a beta a few days ago but I haven't heard back - is that still open? I'd be happy to go ahead and buy the software if the beta is closed.

</comment></comment><comment><USER36> www.projjex.com is pretty simple and effective.

</comment><comment><USER37> i am surprised nobody mention todoist.com

<comment><USER26> I have used Todoist for 6+ months and it's really great.

</comment></comment><comment><USER38> wow, so many in the market? i use hiveminder.com .nothing great, but simple enough and works for us.

</comment><comment><USER39> i user www.projectpier.org. a BaseCamp clone that installed in your server</comment>


The iPhone Actually Has No Competition Where It Matters Most : Profit - <AUTHOR> http://techcrunch.com/2011/08/03/iphone-android-profit/

<comment><USER2> interesting to see this area of the smartphone marketplace, as opposed to OEM or OS market share by units. apple definitely has the upper hand in that it owns the entire vertical, from the iOS software to manufacturing the phone itself. furthermore, apple, having planned extensively what will go into the phone, is able to bargain for cheaper raw material costs, thereby increasing profit. not only does apple know how to dominate market share in iphone users, but also they know how to make incredible amount of money off of that segments business.</comment>


SVG, Use it Already - <AUTHOR> http://dbushell.com/2012/04/03/svg-use-it-already/

<comment><USER2> "Older Android" is a little hand-wavy: SVG support was only introduced in Honeycomb, so the vast, vast majority of Android browsers still don't do it. Especially painful when I was trying to make a cross-platform app with PhoneGap- everything looked great on iOS, then not at all on Android.

I ended up having to use an Illustrator -> Canvas tool (made by Microsoft, oddly), but Canvas is a huge pain when all you want to do is draw some simple shapes. Mobile devices are a _huge_ target for this stuff because of the varying pixel densities, but Android is still mostly a no-go for SVG.

<comment><USER3> Quite a bit hand-wavy! Only because SVG support is easily detected with the likes of Modernizr <http://modernizr.com/>. Background images with CSS are very simple to provide both SVG and a raster fallback graphic for. Image elements aren't as simple, but I'd suggest defaulting to SVG in both cases and replacing the source if support doesn't exist. That way the issue with eventually disappear alongside legacy browser usage.

As you said the benefits of high pixel densities are visually huge. A small and temporary JS hack is a price worth paying in my opinion.

<comment><USER2> _Background images with CSS are very simple to provide both SVG and a raster fallback graphic for._

Oh, sure. But I was talking about just using SVG- for mobile devices with different pixel ratios falling back to raster graphics involves making a number of different size alternatives for each graphic. Not fun.

</comment></comment></comment><comment><USER4> "Animation and scripting and sprite stacks" sound like exactly the sorts of things that I, as a web surfer, deliberately turn off in my browser. There is already _far too much_ animation and scripting etc. on the web.

Scalable graphics as a native web format is a great thing. But if the cost is yet another format filled with irritations and security holes, then no thanks.

The most successful media formats have been very narrowly focused. JPEG, GIF, PNG, MP3s, etc. do not have a zillion exciting features. You can't build a complete web application with a JPEG file. JPEG compresses photographs (and only photographs) really, really well, and that's all it does.

Maybe what scalable vector graphics need to do to catch on is to throw out the super-feature-dense SVG system and come up with something new, something simpler, something that just does scalable still images _really well_ , something that _isn't_ yet another enormous all-singing, all-dancing ball of security liabilities and unintended consequences.

<comment><USER5> Indeed, SVG is a bad standard because it is too complex.

There is no 100%-compatible SVG editor (except notepad) - every vector graphic editor just supports its own subset of SVG, things get lost when transferring things between "SVG-supporting" editors.

There are multiple ways to do the same thing in SVG - this makes it difficult to understand a SVG file created by someone else and it is very hard to return to a complex SVG file after few years and modify it.

The complexity of SVG makes web browsers larger and more complex (hence less secure and slower).

So, I disagree with the article. Keep away from SVG unless you really need it and maybe someone designs a simpler vector format for the web.

</comment></comment><comment><USER6> When I made <http://emacsformacosx.com/> I decided to use SVG since I was targeting only Macs and all the popular Mac browsers supported SVG (also I wanted something snazzy looking). In the end I had to do some XHTML+SVG dual namespacey magic so that non-SVG browsers (most importantly, Google) had something to fall back on.

I checked out the retina display MacBook Pro at an Apple store the other day and I was happy to see that the SVG on the site rendered at full resolution (at least with Safari).

I think the choice to use SVG for this particular site was a net-win.

</comment><comment><USER7> I know this is about static svg images, but as a curiosity, about a year ago I did a small experiment with svg animations. You can see it here: <http://et.vaan.osaa.fi/>

Translation: "You just can't" (as in, able, skilled)

To my surprise, it actually works on iOS devices too, except that it doesn't automatically refresh the screen. That is, after zooming it was rendered in a different position than before but not animated. As a hack, I force it to redraw with css animations, continously scaling it slightly (less than 1%).

Reading my comments, it seems ie9 didn't scale svg content according to css sizes, but drew them in "original" size.

Writing the smil animation declarations was pretty much trial by error, didn't find any practical tooling support. I did the original image in inkscape, and then hand edited the xml for the animations. Rotating things was tough, because inkscape didn't leave the element/group centers in any predictable place, so I had to guess good rotation centers.

<comment><USER8> Nice. FWIW: it's flawless under Chrome for Android on my GNex too.

</comment></comment><comment><USER9> It easier said than done. Later this evening, I was trying to do just the same for a forum (SVG logo, with fallbacks for IE and older Firefox). I'm (thankfully) not a front-end web developer, but I thought it wouldn't take more than 15 minutes.

I wasted about 4 hours on that thing... The result is here: <http://220.127.116.11/irmug/local/http/www.irmug.com/> using these logos: <http://220.127.116.11/irmug/logo.svg> and <http://18.104.22.168/irmug/logo.png>

This is what I finally decided to do:

1\. CSS (for #logo element):

        background: url(../../../../logo.png) no-repeat center center;
        background: rgba(0,0,0,0) url(../../../../logo.svg) no-repeat center center;
        width: 588px;
        height: 198px;

(borrowed from <https://gist.github.com/1565894> \- note two _background_ s!)

2\. run this stupid script to swap-out logo in Firefox < 4 and IE

        window.onload = function() {
          if (!document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#Image", "1.1")) { // IE, Firefox < 4
            var el = document.getElementById('logo');
            if (el.style.setProperty) {
              el.style.setProperty('background-image', 'url("../../../logo.png")', null);
            } else { //IE
              el.style.backgroundImage = 'url("../../../logo.png")';
            }
          } else { // just to make sure
            var el = document.getElementById('logo');
            if (el.style.setProperty)
              el.style.setProperty('background-image', 'url("../../../logo.svg")', null);
          }
        }

It works perfectly on all browsers now, except Opera 11 (when you zoom in, it's all messed up). I can't imagine what the problem could be.

If there is a better way of doing it (without using huge libraries), I'd be very thankful if you let me know.

<comment><USER10> That's an interesting solution, but wouldn't you normally want the logo in an img tag, so it gets loaded sooner?

<comment><USER9> It was originally an <a> tag so I didn't want to change that, and I think img tag didn't work very well with SVG and I had to use <embed>, which was another level of complexity.

But I'm by no means a web (front end) developer so I'm sure there are better ways to do this; I just didn't feel adventurous enough to spend more than 4 hours on stupid compatibility issues on older browsers :-)

</comment></comment></comment><comment><USER9> BTW, check this out: "20 SVG uses that will make your jaw drop" [http://www.netmagazine.com/features/20-svg-uses-will-make- yo...](http://www.netmagazine.com/features/20-svg-uses-will-make-your-jaw- drop)

This one will really make your jaw drop (you have to click on different parts): [http://upload.wikimedia.org/wikipedia/commons/6/6c/Trajans-C...](http://upload.wikimedia.org/wikipedia/commons/6/6c/Trajans- Column-lower-animated.svg)

<comment><USER11> The bottom link renders at an fairly low framerate in Firefox on a 3GHz core2 duo.

On Chrome it is about twice the speed but the sliding components return to a position different from where they started.

Slow on a desktop machine translates to nearly unusable on Mobile. On an ICS Android with an Allwinner A10, The slide animation consists of only two frames.

The poor performance is not intrinsic to vector based rendering, SVG is simply not the right tool for that job.

<comment><USER9> It's tolerable on my iPad 2 (iOS 6), and absolutely smooth (the smoothest animation you can imagine) on Safari 6 beta on my old Core 2 Duo 2009 MacBook Pro, so hopefully that's just a matter of browser implementation.

And I completely agree with the last statement. It's cool, but we have better tools in HTML5 for a simple animation like that.

</comment></comment></comment><comment><USER12> Do any SVG renderers (especially in a browser) do subpixel rendering?

It seems like this would greatly help perceived resolution. With a bitmap, you can't necessarily assume a particular pixel color ordering, and even if you did, with tablets/phones you can't even assume a particular screen orientation. By doing subpixel rendering at view-time, it should be able to give increased resolution in all cases. It would even look best on a printer, which doesn't have separate subpixels (right?).

(Of course, without hinting like fonts have, it could also be worse in some cases.)

<comment><USER13> If Apple really pushes the whole industry into Retina-era, we can probably forget about subpixels in a year or two.

<comment><USER14> Just based on recent history, wouldn't Apple more likely try to _prevent_ the rest of the industry from moving to Retina-like displays?

<comment><USER13> How so? Because they bought up all hi-res panel supply? Other manufacturers will catch up sooner or later on this, or they will face sale declines. I don't see how Apple intentionally prevent others from moving to retina displays.

If anything, the rest of the industry has to blame itself for delaying so long and investing so little on good displays. Now they have to bite the bullet by competing with each other for the remaining supply of hi-res displays. Would they see this coming a few years ago when Apple invested heavily for such strategic thing?

<comment><USER14> "Because they bought up all hi-res panel supply?"

They've done that in other parts of the supply chain, but I was thinking more about patents. It wouldn't surprise me to find that they've patented how to have a lot of pixels in a particular geometry.

<comment><USER13> iFixit seemed to suggest the panel is from LG Phillips. I doubt Apple have much to do with the panel per se, but the actual design of the new cover glass and the way they make it that thin might be patentable.

</comment></comment></comment></comment></comment></comment><comment><USER15> I have a feeling that a significant legacy mistake is going to keep SVG from wide use for years after it's ready.

No, I don't mean IE. I mean Photoshop. When every problem looks like a stack of raster layers... well, among other things, vector graphics aren't going to easily come out of that.

OTOH: maybe SVG will help pull us out of the unfortunate accident of history that's meant that Photoshop is used for web layout, but I'd bet we'll see convoluted export procedures before we say a wholesale shift to vector tools....at least, that's the historical pattern.

</comment><comment><USER16> There is a nice SVG drawing lib called Raphael.js (<http://raphaeljs.com/>); it does animations pretty well and works even in IE6 (via fallback to VML). So it basically does not work only on old Android and links.

<comment><USER17> Raphael is nice if your use case is fairly simple and along the lines of the examples provided on the homepage, but I would caution people that the lib is quite buggy and not (particularly?) actively maintained.

<comment><USER18> Do you have any alternatives you would recommend?

<comment><USER19> If Go is your thing, consider SVGo (<http://github.com/ajstarks/svgo>). For samples, see: [http://www.flickr.com/photos/ajstarks/sets/72157623441699483...](http://www.flickr.com/photos/ajstarks/sets/72157623441699483/)

</comment></comment></comment></comment><comment><USER20> SVGs cost more than bitmaps, it's the law of spline demand.

<comment><USER16> For small and complex things yeah, for big and simple not at all.

</comment></comment><comment><USER21> SVG graphics on the new iPad look amazing.

<comment><USER22> And probably even more so on one of those new MacBook Pros that I can't afford...

...anyone mind donating one to a poor, deprived Linux PC user? ;)

</comment></comment><comment><USER23> I work with SVG+javascript every day. Any time a browser gets updated I get nervous. Chrome and Firefox have both screwed me numerous times by breaking their SVG DOM implementations. I usually find a workaround, but it's been somewhat of a struggle for the last two years. You thought cross-browser HTML was difficult? ugh. SVG can be hell. That said, SVG also works wonders. I must be a masochist because I do like it. It can be a challenge for sure, but the rewards are good enough to keep using it. SVG transforms are a mindfuck though.

</comment><comment><USER24> Meh. We have used it for a while. The format itself is not particularly bad (although it's a bit fat) but the browser support is rather mediocre. For example, neither Webkit nor Firefox will do vector transformations if you apply CSS transformations on the SVG. Instead, they will do crappy raster transformations. And the rendering speed is so slow it's not even funny. So we just switched back to PNG for the time being. Maybe it will get better in a year or two.

</comment><comment><USER25> This article doesn't address sprite vs non sprite. For most users it is much quicker to serve them up one large png with all the icons as a sprite file than a bunch of individual SVG files.

Can you use a single SVG sprite file that contains all of your SVG images for a single connection/download?

Is there a tutorial for this?

<comment><USER26> It is possible to do this, but there's tricks of setting font-size and background-size involved to get the background sprite image to scale correctly.

I got this info from somewhere in The Googles, so the information is out there.

I haven't yet tried this on older browsers, so it may need extra help when I decided what browsers my app will support

</comment></comment><comment><USER27> in 2004 or 2005 i coded an SVG/JS based LOGO++ in-browser IDE and some other nice demos. (sadly the source code is now gone, thx to a corrupted time- machine backup)

i really believed at that time that SVG (at that time only working (in a sane way) via an Adobe Plugin (yeah, you read right)) would be the future. i wanted to be on the forefront of technology - of A technology - and SVG was my choice. every browser and webgraphics-company pledged support for this amazing new technology! i already saw myself talking at conferences about the amazing new webpages (we still called them pages in 2005) we can build with it.

i think i probably achieved that goal - i was an "interactive SVG" ninja, but nothing came out of it. now i will wait a bit longer how the market turns out before i touch it again. fool me once ...

update: year numbers

<comment><USER28> > i really believed at that time that SVG (at that time only working (in a > sane way) via an Adobe Plugin (yeah, you read right)) would be the future.

Adobe SVG Viewer 6.0 preview 1 was released in July '03 and not updated since.

<comment><USER27> FF support came along at that time (or later), too. but it was even more buggy than the Adobe plugin. the FF implementation went stagnant then, too (for years). so basically to do interactive stuff, you were stuck with Adobe.

</comment></comment></comment><comment><USER29> Why bother when a compressed PNG is even smaller and has far broader support with less shim nonsense?

<comment><USER30> Resolution independence?

</comment></comment><comment><USER31> I get worried when I see SVG....I don't want Javascript and CSS embedded in something that I might over look and think is an image....

<comment> jarek-foksa Embedded JavaScript code can't harm you if you use SVG via <img> tag or background-image CSS property.

</comment></comment><comment><USER32> I tried to overlay an SVG logo over a photo background (jpg). While it more or less worked after futzing, it was a responsive website and re-sizing the screen caused the SVG to not stay aligned with the background jpg. It doesn't appear to be possible with CSS. So I had to just drop SVG and use a jpg instead. Lame.

<comment><USER33> You can set the size in CSS just as you can with any element.

<comment><USER32> Right, but I wanted it to fluidly resize in the WP twentyeleven theme, so setting it to a fixed size wouldn't work.

</comment></comment></comment><comment> johnx123-up FWIW, none of the browser hacks--including canvg <http://code.google.com/p/canvg/issues/detail?id=109> (which is active than svgweb) have no support for marker element.

</comment><comment><USER34> I just made this with SVG: <http://ex1.lynndylanhurley.com/timeline>

It runs really great in Chrome + Safari, but Firefox performance is awful.

*edit: grammar

<comment><USER35> Is the site down? The map loads but the progress spinner just spins (seemingly) forever on Chrome, Safari, and Firefox (on my fast MacBook Pro).

I'm a developer at Mozilla, so I wanted to test your site so I could file an SVG performance bug for Firefox. :)

<comment><USER34> It should be working. I would really appreciate any advice you might have - can you please check again?

<comment><USER35> Your site is working for me now in Firefox, Chrome, and Safari. It's cool visualization of data using SVG!

I see that Firefox 13 is significantly slower than Chrome and Safari, but Firefox 16's Nightly builds are much faster. (Firefox Beta 14 and Aurora 15 are just as slow as 13.)

To my untrained eye, your demo is "only" about 1.5x slower on Firefox Nightly than Chrome and Safari. Is there a way to quantify the speed difference, such as FPS or time to completion? The demo ends at datetime 2012-05-22T00:48:10.

</comment></comment></comment></comment><comment><USER36> Could SVG become widely used for animated decorations? Like you always see in games and television news programs?

<comment><USER37> I think you mean Motion Graphics, and specifically Idents. <http://www.google.com/search?q=ident%20motion%20graphics>

I'd say its a some way off yet, but wouldn't bet against it.

</comment></comment><comment><USER38> SVG is worse than png, for tiny images</comment>


Ask HN: Best strategy to make an alternative to an existing open-source library? - <AUTHOR> An open-source library, which I use regularly, has limitations because it is designed for use with Arduino and other microcontrollers. However, the library (let's call it "ArduinoLib") can be compiled for desktop PCs, and I am among a few people using it this way.
To fix these limitations, I would like to write an alternative library for use on desktops. This would be a separate open-source project, using a different name. However, ArduinoLib is MIT-licensed, so there is the option to re-use some of its code.
Perhaps 1/3 of ArduinoLib's code could be used unchanged. Another 1/3 would require major changes to add my desktop-focused enhancements. The final 1/3 is microcontroller-focused and would not be useful for a desktop library.
I see several possible ways to approach this project, some starting with the existing ArduinoLib and some starting afresh:
1.1. Fork ArduinoLib on GitHub, remove the microcontroller-focused code, then add my enhancements to this fork.
1.2. As above, but instead of a true fork, create a new repository and begin by importing the latest version of ArduinoLib.
2.1. Start my library from scratch, importing individual functions and/or files from ArduinoLib where appropriate.
2.2. Write the entire alternative library myself, only using ArduinoLib for reference.
The argument in favour of the 1.x options is that they will lead to a project structure which is similar to ArduinoLib, whereas 2.x will result in more differences between the projects. Such similarities should make it easier to share code between ArduinoLib and my library, which would be beneficial for both projects.
On the other hand, with the 2.x options my library can start from a clean slate. I would be able to make my enhancements without any "baggage" from the unused microcontroller support getting in the way.
Which of these four approaches would you recommend taking? In what situations would you recommend one approach over another? <comment><USER2> Have you spoken with the project's maintainers? Are they uninterested in incorporating your proposed changes? Because contributing back to the original library could also be an option. Then you'd have the benefit of an existing community to help with maintenance, documentation, etc.

</comment><comment><AUTHOR> Also, as I understand it, the fundamental difference between _1.1_ and _1.2_ is that a true fork retains the history of the original project. Is this appropriate for a new project which takes an existing, active open-source project in a different direction?

<comment><USER3> The difference between 1.1 and 1.2 is very, very superficial. I couldn't care less if a project has some GitHub-specific marker or not, especially that I've seen several code hosting places come and go already.

On a second thought, this GitHub-specific marker of being a fork is somewhat important. I skip forks, going to their original. Fork on GitHub usually means that somebody either bookmarked the project or wanted to make some small changes and possibly send them back to the upstream -- at least that's how I perceive fork markers on GitHub.</comment></comment>


Ask HN: Thoughts On New DC "startup accelerator" Endeavor DC - <AUTHOR>

I noticed a new startup accelerator, Endeavor DC, run by Michael Goldstein, Allen Morgan, & David Steinberg. Anyone have knowledge about the group that would give me an idea where they might lie between Ycombinator and lower quality programs. http://endeavordc.com/team/ <comment><USER2> Thanks for noticing us. We're focused on early stage consumer Internet startups. We are higher touch than other programs - focusing on fewer companies and layering on more resources, connections, partnerships, etc.

</comment><comment><USER3> Hey guys, I found out about it thanks to this post and will be doing an interview with them to find out more and will post on StartupStats.com tomorrow. Thanks for bringing this to the community's attention!!!

</comment><comment><USER4> It looks brand new, I hadn't even heard of it until you posted about it. It's about time it got one again since Launchbox moved. It has to be the biggest US city without one.</comment>


Nokia brand licensee HMD Global is now the new home of Nokia phones - <AUTHOR> http://www.nokia.com/en_int/news/releases/2016/12/01/nokia-brand-licensee-hmd-global-is-now-the-new-home-of-nokia-phones <comment><USER2> I recently got one of the [Nokia classic phones][1] and frankly, it's such a breath of fresh air. I know, I know, I'm being nostalgic and it can't possibly replace my iPhone but it does do several things much more efficiently.

I can load an SD card with lots of podcasts and music and have a player that'll last an entire week. If I have a new file, I can load it on via Bluetooth in the morning before I leave for work. Sure it's not that fast, but for just one 10-minute MP3 at 192 kbps, it's okay.

I have my work iPhone if I need 4G on the go, but when I want to disconnect a little, it's perfect!

Well done Nokia/Microsoft for keeping these phones alive. And for shipping them with Snake preinstalled ;)

[1]: [http://www.nokia.com/en_int/phones/nokia-130-dual- sim](http://www.nokia.com/en_int/phones/nokia-130-dual-sim) "Nokia 130"

<comment><USER3> Do any of these support North American GSM bands? I remember looking through them last year some time, and every one I looked at only had 900/1800.

<comment><USER2> Not sure; I'm in Europe. But I've read on forums that some (all?) of these don't work with American frequencies.

Edit: Found it! [Manual][2] says "You can only use your device on the GSM 900, 1800 MHz networks."

[2]: "[http://download- support.webapps.microsoft.com/ncss/PUBLIC/en...](http://download- support.webapps.microsoft.com/ncss/PUBLIC/en_MA/webpdf/100000385030/Nokia_130_Dual_SIM_UG_en_GB.pdf")

</comment></comment></comment><comment><USER4> I can't help thinking that this company thinks the Nokia brand still has way more pull and cachet than it actually does. I could be wrong, but I don't think slapping Nokia on an otherwise bog standard OEM Android device is likely to win over many hearts and minds.

<comment><USER5> Here's to hope it's not just the brand they're going to slap on and into it.

EDIT: looking it up, it seems like HMD Global has been formed as a result of buying back parts of Microsoft Mobile and employs veteran Nokia staff ([https://en.wikipedia.org/wiki/HMD_global](https://en.wikipedia.org/wiki/HMD_global)). Looks that much more promising.

</comment></comment><comment><USER6> I hope they do have developer friendly phones. If anyone from Nokia/Android team is reading please tell your managers to release kernel source, allow unlock-bootloader. The ROM community needs a new OEM after lenovo/motorola's backsies.

</comment><comment> at-fates-hands LOTS more information here on the proposed models and specs:

Nokia WILL Return in 2017 With Two New Android Phones: Specs, Hardware & Release Date Rumours - [http://www.knowyourmobile.com/mobile- phones/nokia-c1/23369/n...](http://www.knowyourmobile.com/mobile- phones/nokia-c1/23369/nokia-c1-leaks-running-android- windows-10-ahead-q4-2016-launch-A1)

Also if you haven't yet already, you should really try their Z launcher for your apps. I switched a few months ago and have been really impressed with it: [https://www.zlauncher.com/](https://www.zlauncher.com/)

I'm super stoked to see Nokia getting back in the game regardless of what platform they're going to be on.

<comment><USER7> I am curious about your experience with zlauncher. Does it work well for on the run and one handed use?

<comment> at-fates-hands yeah it does.

The cool thing is that it does learn your usage patterns, so depending on the time of day, you'll see different apps in your launcher - so I rarely have to input letters and search for different apps. When I do have to do a search, the letter recognition is good enough where I can do it with one hand and I get what I'm looking for 95% of the time on the first try.

I have a OnePlus Two with a 5.5" screen which is pretty big, but I'm still able to use it one handed pretty easily.

</comment></comment></comment><comment><USER8> Nice to see the icons from my N9 resurrecting: [http://www.hmdglobal.com/about/](http://www.hmdglobal.com/about/)

(kind of at least).

</comment><comment><USER9> I've been using my Nokia 6310i for a few weeks now, after three broken Androids and one broken iPhone. I have no intention of getting another smart phone.

Please build a non-smart, monochrome, small screened, long battery life, 4G Nokia.

</comment><comment><USER10> I would ditch my smartphone immediately if this dummy Nokia phones could run Viber for example.</comment>


Show HN: React component plays video from start to end but also loops in-between - <AUTHOR> https://github.com/lewhunt/react-video-looper <comment><AUTHOR> Totally humbled (and hyped) that this component has just been published as 'Side Project of the Month' in this month's awesome net magazine! [https://twitter.com/Lew_Hunt/status/1233108902155345920?s=20](https://twitter.com/Lew_Hunt/status/1233108902155345920?s=20)</comment>


Software Startup Lessons (Part 6) – Looking back at one failure - <AUTHOR> http://blog.lavablast.com/post/2009/04/Software-Startup-Lessons-(Part-6)-ndash3bLooking-back-at-one-failure.aspx <comment><USER2> What problem were you solving with the franchise news aggregator?</comment>


Sun may shut off high-end MySQL features - <AUTHOR> http://www.regdeveloper.co.uk/2008/04/17/sun_closed_source_mysql/

<comment><USER2> This is FUD. Yes, Sun will probably tell their paid developers to focus on features that will be pay-only initially... but so what? If Sun wants to play this way, they can. Someone can easily fork MySQL and only distribute their super-cool features under the GPL, forcing Sun to play catch-up.

It won't be good for the community, but this is what happens when greed gets involved. (This is not a first, though. Google has their internal MySQL fixes, and plenty of companies are selling tweaked versions of Postgres. Both products are still quite useful despite that.)

</comment><comment><USER3> How do you shut off high end features? If there are enough hooks in the product to build them, then someone will add them into the core eventually.</comment>


Real Programming in Functional Languages (1982) [pdf] - <AUTHOR> http://research.microsoft.com/en-us/um/people/simonpj/Papers/other-authors/morris-real-programming.pdf <comment><USER2> Some excepts from the Conclusions section are fairly amusing:

"One way to compromise between functional and imperative programming is recognize that every language has a functional subset, usually associated with the set of expressions in the language. However, it is rarely useful to take advantage of the functional subset via clever evaluation or compilation strategies because expressions in that subset usually represent very small intervals of computation or leave the functional subset via calls on functions with side effects"

"Functional languages as a minority doctrine in the field of programming languages bear a certain resemblance to socialism in its relation to conventional, capitalist economic doctrine. Their proponents are often brilliant intellectuals perceived to be radical and rather unrealistic by the mainstream, but little-by-little changes are made in the conventional languages and economies to incorporate features of the radical proposals. Of course this never satisfies the radicals, but it represents progress of a sort."

"A little appreciated role of functional programming, goto-less programming, and other stylish forms of programming is an indicator of a programmer's morale. When one comes across a program with a rat's nest of gotos, or large amounts of pointer arithmetic one says to himself, "This programmer was barely able to solve the problem he was working on. If he had the intellectual problem well under control, then he should have devoted some of his brainpower to making it look pretty according to generally accepted standards, e.g. eliminating gotos."

<comment><USER3> The second quote is so true. I never thought of it that way!

<comment><USER4> This quote is so misleading.

Since when functional programming is "radical"? It's the essence of computing.

What we're seeing are other languages going _back_ to the basics, after a detour in the "imperative is easy to learn" and "OO is reusable" lands.

<comment><USER5> >Since when functional programming is "radical"? It's the essence of computing.

It isn't representative of how processors work, unlike imperative programming. Even if the theory is there, the machine itself is imperative (most of the time), so there's a level of abstraction needed.

Though the theory could have started like that, the mechanisms are totally separated from the physical reality. In a field dominated by engineers (especially in a time where cycle counts mattered much more), that's what's going to happen.

<comment><USER6> There were honest to god LISP machines built back in the day. They never really caught on however. They were mostly oriented at the educational market, and didn't ship with such niceties like an OS or even a bootloader sometimes.

<comment><USER7> >> the mechanisms are totally separated from the physical reality.

> There were honest to god LISP machines

As LISP-flavored stack machines, yes [0]. Alas that Linear Lisp [1] never received a hardware implementation [2].

To those exploring high level language architectures, forget not also the noble SCHEME-79 chip [3]: a Von Neumannian register machine, but one which executes a SCHEME interpreter microcoded in LISP.

[0] [https://en.wikipedia.org/wiki/Lisp_machine#Technical_overvie...](https://en.wikipedia.org/wiki/Lisp_machine#Technical_overview)

[1] [http://home.pipeline.com/~hbaker1/LinearLisp.html](http://home.pipeline.com/~hbaker1/LinearLisp.html)

[2] [http://home.pipeline.com/~hbaker1/ForthStack.html](http://home.pipeline.com/~hbaker1/ForthStack.html)

[3] [http://dspace.mit.edu/handle/1721.1/6334](http://dspace.mit.edu/handle/1721.1/6334)

</comment></comment></comment></comment></comment></comment><comment><USER8> My favorite part about this is the introduction, where the authors relate functional programming to Haiku and Karate. Haiku and Karate are both intricate, beautiful, highly regimented arts. But only one is useful in a bar fight, and the people who are its victims don't know about the craft, or why it's effective.

So, the paper asks: which is functional programming? Haiku or Karate?

(EDIT: And, more personal note: Dan, thanks for posting. :) I assume since you posted this later, you got it from my Twitter, in which case you should also look at the Butler Lampson/Erik Meijer talk that I heard it from, and which I've been trying to get you to watch: [https://channel9.msdn.com/Shows/Going+Deep/E2E-Erik- Meijer-a...](https://channel9.msdn.com/Shows/Going+Deep/E2E-Erik-Meijer-and- Butler-Lampson-Abstraction-Security-Embodiment))

</comment><comment><USER9> When I went to college John Bachus, the inventor of FORTRAN was a computer science God. And when he becameba functional programming evangelist, we politely listened.

I did not becomeva convert until Scala came along as a way to mange large core clusters.</comment>


Cameras are about to get a lot smaller - <AUTHOR> https://www.economist.com/news/science-and-technology/21724796-future-photography-flat-cameras-are-about-get-lot-smaller <comment><USER2> > He was holding a small device in his hand, the size and shape of a lollipop.

"This is a video camera, and this is the precise model that's getting this incredible image quality. Image quality that holds up to this kind of magnification. So that's the first great thing. We can now get high-def- quality resolution in a camera the size of a thumb."

...

"But for now, let's go back to the places in the world where we most need transparency and so rarely have it. Here's a medley of locations around the world where we've placed cameras. Now imagine the impact these cameras would have had in the past, and will have in the future, if similar events transpire. Here's fifty cameras in Tiananmen Square."

...

"There needs to be accountability. Tyrants can no longer hide. There needs to be, and will be, documentation and accountability, and we need to bear witness."

...

ALL THAT HAPPENS MUST BE KNOWN

-From "The Circle" by David Eggers

<comment><USER3> What good is video evidence, if it can be faked? Having numerous independent feeds helps, I suppose. But once you have enough perspectives to create a decent 3D model, you can generate as many fake perspectives as you like.

Also, there are obvious downsides to panopticons.

But none of that matters, I guess. We will have the cameras _and_ the fakes.

<comment><USER4> > _What good is video evidence, if it can be faked?_

Even better: what good is video evidence if few care?

Consider officers shooting black people. There are several videos of that, but does it show any sign of stopping? They even walk off without any repercussions at trial...

And, conversely, when people do care, no extra evidence is needed.

<comment><USER5> Actually people do care, especially since there is video. what they still don't care about that would probably need video as well is the staggering amount of black on black shooting.

however as a society are we willing to give up that much privacy the moment we step out the door, where anything and everything could be a recording device. then again if we are drowning in being observed do we in turn find more freedom?

<comment><USER3> With as many cameras as we already have, there isn't much privacy anywhere, unless we live alone.

I just reread _The Light of Other Days_ by Arthur C. Clarke and Stephen Baxter. Basically, they argue that group consciousness is the best option where there is no privacy.

</comment></comment></comment></comment></comment><comment><USER6> Cached text-only copy [http://webcache.googleusercontent.com/search?q=cache:NzxuClC...](http://webcache.googleusercontent.com/search?q=cache:NzxuClCIlfEJ:https://www.economist.com/news/science- and-technology/21724796-future-photography-flat-cameras-are-about-get-lot- smaller&num=1&hl=en&gl=ca&strip=1&vwsrc=0)

</comment><comment><USER7> > Cameras are about to get a lot smaller

No, scientists have developed a prototype which can take fuzzy photos of barcodes.

They then go on to tell you what would be necessary to have their device equal a present day sensor in a phone, but they haven't made one yet.

In fact, no estimate is given for when this technology might be competitive with CMOS sensors. The article just points to his previous work as proof he can get some of his ideas to market.

Relevant XKCD: [https://www.xkcd.com/678/](https://www.xkcd.com/678/)

I am excited by advances in camera technology, but this headline is peddling research as a pending disruption to the industry, and I don't see any evidence of that in the article.

<comment><USER8> He's saying he can make a commercial sensor in 5 years. Now, that's admittedly not saying it'll be in phones in that time, but when it works it won't just be competitive with CMOS sensors, it'll do things they aren't capable of.

<comment> orbital-decay There are planar Fourier capture arrays, which are also lensless, can be implemented with existing CMOS process and seem to be better by every metric than this. AFAIK they are currently being evaluated for eye tracking sensors which aren't sensitive to resolution (128x128 is enough) but need to be flat.

There are also single-pixel compressed sensing cameras, which can be made lensless as well and are limited by the optical modulator specs.

The problem with lensless sensors is always the computing power required to reconstruct the final image.

<comment><USER8> Admittedly I'm reading between the lines here, but I suspect that these don't need computationally expensive reconstruction. The reconstruction is done entirely by setting up the delays correctly on the input sensors, then the image is formed by simple interference. You'd read the image off just like an ordinary ccd.

<comment><USER9> From the article:

"He concedes that there are challenges: improving the optical performance of the elements; suppressing spillover effects between different signals in the device; and honing the algorithms that calibrate the camera's performance."

The line of "honing the algorithms" is the complexity orbital-decay is referencing. These types of sensors do need computationally expensive reconstruction to generate images we're used to seeing with traditional optics and sensors currently found in many consumer devices. The filtering and focusing work the lenses do still needs to happen. These sensors essentially rely on complex math to replace the finely ground glass.

<comment><USER8> Those algorithms are already very well understood from radar and sonar, though. It's not like he's starting from scratch.

And I'd take issue with the characterisation that they need "complex math to replace the finely ground glass" \- what replaces the glass is the analogue photon detection, delay, and amplification channel on the front end. My suspicion is that the only "complex math" is done calculating the delays before capturing the image, not doing the reconstruction (again, unless I've missed something unique about moving from GHz to THz).

</comment></comment></comment></comment></comment></comment><comment><USER10> This is very much on the path I've seen in software defined radio (SDR). I am particularly interested to see when they invert atmospheric interference in real time. A telescope or spotting scope with a co-linear laser visible to the circuit should be sufficient. Then no shimmering heatwaves in the distance, just a clear picture.

</comment><comment><USER11> Some ingredients for a always recording society...

\- Super cheap and gigantic capacity storage.

\- Wireless network like 5G.

\- Wireless charging.

\- Nano cameras.

I think there was a Black Mirror episode about this.

<comment><USER12> Well there was white bear which was more of a philosophical debate and then there was Most Hated in the Nation which I think really hits home the development of small new technologies such as cameras and the consequences of keeping their power and security unchecked.

<comment><USER13> There was also The Entire History of You - where everything you see is recorded and can be played back at any time - leading us to hyper-focus on details from the past rather than experiencing the present.

</comment></comment></comment><comment><USER14> Could this enable a light-field camera? [1]

[1] [https://en.wikipedia.org/wiki/Light- field_camera](https://en.wikipedia.org/wiki/Light-field_camera)

</comment><comment><USER15> Sensor SIZE is still the primary determination of quality. Not seeing how this changed that.

</comment><comment><USER16> When will this ready to replace my 35mm, full frame camera?

:D

<comment><USER8> He's talking about an optical phased array system. Once it's working, competing with a 35mm system "should" (famous last words) be a matter of scaling up the number of elements to match the lens size. The thing is, once that happens, it's got a huge advantage: it doesn't need any other lenses. At all. Any "lens" you could want is a software configuration away.

<comment><USER17> is there already a model on sale? Like lytro?

<comment><AUTHOR> No, the technology demonstrated is only capable of imaging 8x8 pixels. Here's a link to the actual research: [http://www.caltech.edu/news/ultra-thin-camera- creates-images...](http://www.caltech.edu/news/ultra-thin-camera-creates- images-without-lenses-78731)

</comment></comment></comment></comment><comment><USER18> I don't think I fully grasped the explanation, it's like some sort of slit- scan pinhole camera? Aren't those images going to be super noisy compared to lensed cameras with larger sensors?

</comment><comment><USER19> On mobile, for me at least, the text content of this article disappears when the page has fully loaded. Anyone else? This isn't the first time I've seen this sort of thing happen

<comment><USER20> economist.com brilliantly bans you from accessing their site after you've clicked a few of their links. The text vanishes because they've sloppily hacked this limitation in client-side by checking a cookie after the page finishes loading. This leaves 99% of visitors thinking that the site is broken, so they leave without ever noticing the message about how they need to pay a ransom to unban themselves.

For sites like this, you can sometimes archive the URL to evade the ban.

[http://archive.is/Ni7Lo](http://archive.is/Ni7Lo)

<comment><USER21> OT: I think it is a bit of a jump to equate subscribing to paying a ransom.

<comment><USER22> It's a bit like a ransom when they load the article at first, you start reading, and then the text disappears asking for payment. Fortunately, The Economist seems to just use cookies so you can still view the articles incognito.

</comment></comment></comment></comment><comment><USER23> Escape the article limit garbage by using Private Browsing and the like.

</comment><comment><USER24> RIP Privacy

</comment><comment><USER25> It seems like economist uses Javascript to create the "You've reached your article limit" dialogue. Simple press ESC key to stop JS from executing on Chrome so that you can read the article.

Also here is my TL:DR summary of it if you're still trying to fight through the pay wall:

There is a thing called grating coupler that works like little high frequency antennas that receives light signals. When you put a whole array of them you will be able to do various scans of light signals to simulate the camera pointing at different direction, or fisheye, telephoto effects without the need of tilting or moving the surface of the array. The underlying computation relies on the ability to calculate and control the timing of signal travelled from each antennas, plus some classic signal interference and phasing issues. An 1cm x 1cm array will contain 1 million such couplers which would create a similar sized image as an iPhone 7 rear camera, but since there is no lens involved, the camera can be made a lot thinner.

<comment><USER26> Using the Brave browser with the block scripts option enabled seems to work, too.</comment></comment>


Ask HN: Would you pay for a browser plugin? - <AUTHOR>

Obviously this depends on the service, but would you be prepared to pay for an enhancement to a service you already use (ie webmail,twitter,fb etc) via a browser plugin.<p>Tools like buffer have built great businesses around browser plugins, I'm interested in the conversion rate of these businesses as opposed to a standalone service. <comment><USER2> I think the best way to do that would be to offer a free plugin with added benefits once you pay for it (like buffer). I look at is similarly to buying an app on a phone, it would largely depend on how useful it would be, how much I would use it, and if I could justify paying money for it.

I have a plug in to remove the ads on the Pandora page, and to show a pop up with song name and artist regardless of what webpage I'm focusing on. I wouldn't pay for that plugin, but a strong ad blocking one could be worth the money.

Do you have something in mind?

</comment><comment><USER3> Personally I would never pay for a browser plugin. I don't really need those services to do anything more than they already do. Granted I'm sure there are tons of people that want more, but I personally am not one of them.

</comment><comment><USER4> Yes, I pay for the Pro version of ActiveInbox <http://www.activeinboxhq.com/></comment>


Was Yahoo Mail Hacked? - <AUTHOR>

When I went to login to my Yahoo Mail account, I was forced to change my password "due to unusual activity" on my account. I'm currently visiting family in a different state, so I figured it had something to do with the location I was signing in from. I mentioned it to my family and my uncle said that he too was forced to change his Yahoo account passwords. Anyone have any information on a system wide password change requirement or was Yahoo hacked? <comment><USER2> a better question is "Was your yahoo mail NOT hacked?" In the past year or two, almost every @yahoo friend in my address book has had their account compromised sending spam to everyone in their address book. That yahoo's gloriously compensated new CEO didn't make this priority one on day one shows how unconcerned they are with user experience. They must be experiencing a flood of outmigration to other email account services (yes to icloud and gmail)...just plain dumb.</comment>


Ign.com currently banned on Reddit for vote cheating - <AUTHOR> http://www.reddit.com/r/leagueoflegends/comments/zmde7/so_apparently_ign_links_are_now_banned_from_the/c65uevo

<comment><USER2> turds mcgee</comment>


Apple's New Challenge: Learning How the U.S. Cracked Its iPhone - <AUTHOR> http://www.nytimes.com/2016/03/30/technology/apples-new-challenge-learning-how-the-us-cracked-its-iphone.html <comment><USER2> Perhaps they lied to safe face. But if now, shouldn't they be obliged to report the vulnerability?</comment>


Give me 15 minutes and I'll change your view of GDB (2015) [video] - <AUTHOR> https://www.youtube.com/watch?v=PorfLSr3DDI <comment><USER2> I used to think GDB was a tool with the most broken interface I've ever seen, and which requires arcane commands to do the most trivial of debugging things.

I still do, but I used to too.

That early dig against Windows was particularly funny. There's no way I would pick that over Visual Studio's debugging tools.

<comment><USER3> I agree that gdb's syntax is ridiculous, having come from a background of DOS DEBUG and WinDbg, but what irritates me more are the implementations of certain functionality:

\- No way to get a 16-column (bytes+ASCII) standard hexdump. This is functionality that even the most basic debugger should have, yet it's missing from gdb.

\- "disassemble" command is next to useless.

\- If you write "b 0x12345" intending to set a breakpoint at address 0x12345, it doesn't work. An unnecessary and nonsensical extra asterisk is needed (which makes it look like it's retrieving 4/8 bytes from 0x12345, and using _that_ as the address of the breakpoint.)

\- Starting gdb with a binary and passing arguments to it --- you'd expect it to be smart enough to realise that anything after the executable name should be the arguments to the debuggee and not the debugger, but it isnt.

I don't use gdb often, but when I do, it's usually the option of last resort.

<comment><USER4> First of all, I agree! GDB without extensions is not that nice to use. But there exist several extensions ([https://github.com/cyrus-and/gdb- dashboard](https://github.com/cyrus-and/gdb-dashboard), [https://github.com/hugsy/gef](https://github.com/hugsy/gef), [https://github.com/pwndbg/pwndbg](https://github.com/pwndbg/pwndbg), [https://github.com/longld/peda](https://github.com/longld/peda), even though developed for it, these are not only useful for exploit dev!) that make it a lot better.

> \- No way to get a 16-column (bytes+ASCII) standard hexdump. This is > functionality that even the most basic debugger should have, yet it's > missing from gdb.

This should be quite easy to implement as a small python snippet that you put in your ~/.gdbinit. Granted, this should be builtin functionality, but it also shows how extensible GDB can be.

> \- If you write "b 0x12345" intending to set a breakpoint at address > 0x12345, it doesn't work. An unnecessary and nonsensical extra asterisk is > needed (which makes it look like it's retrieving 4/8 bytes from 0x12345, and > using that as the address of the breakpoint.)

Agreed, I never understood why that was necessary. It is really annoying. Perhaps someone wanted to avoid a conflict if you had a symbol named "0x12345"? (can you even do that?)

> \- Starting gdb with a binary and passing arguments to it --- you'd expect > it to be smart enough to realise that anything after the executable name > should be the arguments to the debuggee and not the debugger, but it isnt.

I recently learned that gdb has a neat option called --args, that does exactly this:

        gdb --args program arg1 arg2

GDB feels quite similar to VIM to me: you have to spent some time to get used to it, it has some warts but it is very flexible and useful if you know it.

<comment><USER5> "b 0x12345" will place a line breakpoint at line number 0x12345 of the current source file. The "nonsensical" extra asterisk is used to tell gdb that you want an address breakpoint instead.

<comment><USER4> Oh! That makes sense, thank you. It only raises the question though, does anyone really use hexadecimal line numbers? :)

<comment><USER6> Just a guess: if you have an expression language that lexes numbers in a few bases, then when parsing some commands you no longer know which base the number token was, all you know is that you got a number, and in case of the break command you interpret that as a line number unless prefixed with a * token

</comment></comment></comment></comment></comment></comment><comment><USER7> Just wanted to mention gdbgui, a new front end to gdb that I developed which is similar to Chrome's debugger, has a gdb terminal which you can fall back to if you want to run gdb commands, and data structure/value plotting and visualizations similar to ddd.

[https://github.com/cs01/gdbgui](https://github.com/cs01/gdbgui)

<comment><USER8> This looks great! Did you know that you can also use Chrome's debugger to debug Node? I wonder how difficult it would be to use Chrome's debugger as a front end for gdb.

<comment><USER7> Never tried, but pygdbmi would probably get you halfway there. It uses python to parse structured data (key/value pairs) from gdb output. Gdbgui uses it on its backend. (Disclaimer: I am the developer)

[https://github.com/cs01/pygdbmi](https://github.com/cs01/pygdbmi)

Also for golang: [https://github.com/cyrus-and/gdb](https://github.com/cyrus- and/gdb)

</comment></comment></comment><comment><USER9> If you want to use a powerful gdb visual interface, you may want to try DDD. However, DDD has an old-fashioned GUI which is very crude. I have tried several visual debugging tools, such as RedHat Insight, DDD, Nemiver and kdbg, but none of them is enough powerful or stable. As far as I know, DDD can't display non-English comments in source code.

Now I'm using an awesome GDB init file to construct a convenient debugging interface. It's an open source project and you won't regret it: [https://github.com/cyrus-and/gdb-dashboard](https://github.com/cyrus-and/gdb- dashboard)

There is also a browser-based frontend for GDB: [https://github.com/cs01/gdbgui](https://github.com/cs01/gdbgui)

If you want to try more, search the keyword GDB on GitHub and sort by stars, then you will find many GDB enhancement tools.

<comment><USER10> Qt Creator is also a fairly decent front-end to gdb ( [http://doc.qt.io/qtcreator/index.html](http://doc.qt.io/qtcreator/index.html) ).

</comment></comment><comment><USER11> Previous discussion from a year ago: [https://news.ycombinator.com/item?id=12101347](https://news.ycombinator.com/item?id=12101347) (169 comments)

</comment><comment><USER12> Some other very nice:

[https://github.com/snare/voltron](https://github.com/snare/voltron)

[https://github.com/cyrus-and/gdb-dashboard](https://github.com/cyrus-and/gdb- dashboard)

I particularly like Voltro's view modularity and backends support. But dashboard is a really nice throwback (SoftICE) with its theme and sensible default layout.

<comment><USER13> GEF as well: [https://github.com/hugsy/gef](https://github.com/hugsy/gef)

Voltron adds awesome views, GEF adds a lot of handy functionality. I use both (often together)

</comment></comment><comment><USER14> If you want a powerful debugger with a crappy interface that is widespread (and programming java) try jdb. It comes with the freaking jdk tool chain so it is basically everywhere, however, gdb can't hold a candle to the horrible experience it is to use jdb without a graphical frontend. The documentation is about a page and a half, that is all, classes must be fully qualified with packages (which can have dozens of levels) in all commands, and it does not use readline for input!!! No left or right arrow to move the cursor! /rant

</comment><comment><USER15> The TUI in gdb is a great way to get started with gdb. Instead of writing your own hooks and commands you can visually step through the program and source code ( if you have debug symbols enabled)

I think that more people should know about this feature.

<comment><USER16> Absolutely. Many of the comments here deride the default gdb interface but the TUI is orders of magnitude more usable and I only learned of it recently. (I much prefer it over Emacs' interface, for example, something another commenter recommended.) And in single-key mode it's even better.

</comment></comment><comment><USER4> I found rr to be much better for reverse debugging than gdb's record feature. For some reason, hardware watchpoints while reverse-continuing don't work for me when using gdb record but do when using rr.

<comment><USER17> He mentions this in his longer talk:

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

</comment></comment><comment><USER18> There are only three comments so far so small sample size but am I the only one who actually likes working in GDB?

Then again, I also use Vim as an IDE. But so do a lot of folks here.

</comment><comment><USER19> for those who are still prefer documents over video, pdf slides are at [https://github.com/CppCon/CppCon2016/tree/master/Tutorials/G...](https://github.com/CppCon/CppCon2016/tree/master/Tutorials/GDB%20-%20a%20lot%20more%20than%20you%20realized)

</comment><comment><USER20> radare2 recently added reversible debugging feature too: [https://radare.gitbooks.io/radare2book/content/debugger/revd...](https://radare.gitbooks.io/radare2book/content/debugger/revdebug.html)

Note, that you will need version from git, but anyway, new release of radare2 will be ready in less than a couple weeks.

</comment><comment><USER21> The "flipping back and forth" that he seems so impressed with, combined with the arcane key bindings (I know they're Emacs-inspired, but that's little help when the navigation model doesn't actually work like Emacs windows/buffers), is why I dropped TUI pretty quickly. Besides, I have 3 1080p monitors; a UI designed for a VT220 is not the best use of that setup.

It also doesn't help that I've never gotten gdbserver to actually work reliably on my embedded Linux targets (which, to be fair, are not Cortex-A/Apple/Qualcomm chips, so probably being tested by ~nobody). I'd understand if some operations aren't supported due to missing debug hardware or emulation magic, but stuff tends to just start mysteriously breaking (e.g. not stopping on breakpoints, hanging when trying to print memory, crashing on resume/step, etc.).

</comment><comment><USER22> If don't like the Ctrl-X,A shortcut to get into TUI mode there is a command line option (--tui) to get GDB to start up in TUI mode. I find that a lot easier to remember.

I think cgdb ([https://cgdb.github.io/](https://cgdb.github.io/)) is even better than TUI mode though. Some nice things that it has that TUI mode doesn't:

\- Colorization of the source code window

\- The terminal display doesn't get confused when the debugged program prints to stdout

\- You can still use the up and down arrow keys for moving through your command history and don't have to resort to Ctrl-P and Ctrl-N. Scrolling the source code window also uses the up and down arrow keys but you have to switch the "focus" to the source code window first.

<comment><USER23> > \- You can still use the up and down arrow keys for moving through your > command history and don't have to resort to Ctrl-P and Ctrl-N. Scrolling the > source code window also uses the up and down arrow keys but you have to > switch the "focus" to the source code window first.

Minor correction, that's the same as gdb tui. Use ^X,O to select which window has focus and you can use up and down arrow to go through your command history. The rest is definitely better in cgdb.

</comment></comment><comment><USER24> As I've written on this subject before, I think current debuggers largely miss the point, though gdb misses the point in a whole different league.

What I want from a debugger is 99% of the time met by gdb by running a program and running a backtrace and inspecting a few variables. Where gdb falls flat by default is in making me type in commands to get a register view, backtrace, disassembly of the current area, and the current stackframe.

Most other debuggers do ok there. But even with gdb it's trivial to define a few macros to make that part easy.

Where every debugger I've used falls flat is that for most harder problems, their functionality seems focused on heaping on functionality to let me do the job the debugger should have, instead of actually doing the things that would really save me time.

I've increasingly instead turned to valgrind as my first choice, for the simple reason that a huge portion of the problems I deal with are low level (e.g. debugging my compiler, which involves debugging things like why my code generation doesn't correctly initialise a value on the stack. But this is the same problem I generally would like to be able to debug in higher level languages:

Program crashes. Which value caused the crash, or caused the exception to be thrown? When was that value set? Where? What was the code paths that led to that value being set? Which variables contributed to it being set to that value?

Fully automating this in the general case is not possible (it devolves to the halting problem if you don't put the debugged program in a "black box"), but making it easy for a human to guide it there should be the priority for a debugger.

Being able to get a quick view, see that "huh, that value shouldn't be there", be able to tell the debugger "identify when that variable will change and re- run", and work your way back that way, would solve the vast majority of the tough debugging sessions I've had.

Note that the above is _not_ the same as just setting watch-points by tracing and checking. Handling of watches is usually crude in most debuggers. What I'd like is something similar to Valgrind - to do this well the debugger needs to at least analyse the code and intelligently pare down what it watches, and ideally dynamically translate the code into something sufficiently instrumented to let it run fast. For most debugging sessions where I've tried watches, I've had to give up because of how slow they can be, but if the issue is something valgrind can catch, it finds it fast.

Support for replays might be an improvement, but it's still about providing tools for us to do the debuggers job instead of semi-automating vital functionality.

<comment><USER25> You should try using rr. The combination of reverse execution and hardware data watchpoints enables new, much more direct, debugging strategies to answer the kinds of questions you posed.

<comment><USER24> rr doesn't work on my CPU yet. Or at least not without building from git, and that fails due to some compilation problem or other. I haven't had time to try much more than that, but from what I can tell from the docs it does seem _better_ though I think at unnecessarily high cost. I already have code that make Valgrind fall over because its state exhausts my memory, so I'l be interested in seeing how rr fares there.

<comment><USER25> File an rr issue if you have trouble getting it working.

</comment></comment></comment></comment><comment><USER26> The reverse debugging portion of this video was mind blowing. I had no idea you could do that.

</comment><comment><USER27> WinGDB exists and allows remote debugging in Visual Studio to remote machines using gdbserver. Used that in my previous job and was very convenient.

</comment><comment><USER28> A video targeted towards people who haven't spent fifteen minutes in gdb but already think it sucks. Cool beans, just what HN needs

</comment><comment><USER29> I prefer valgrind over GDB.

</comment><comment><USER30> [2015]

</comment><comment><USER31> 15 minutes!?! Gosh, even changing my views will be slow with GDB ;-)

<comment><USER31> I'll take a textual article over video any time.

</comment></comment><comment><USER32> Agree. I started embedded coding on Linux + Qt-Creator. I have everything working, compiling and running on my ARM and AVR chips, but Debuging jsut does nto work. Just can't find any proper info on how to integrate GDB into Qt- Creator and be able to just Debug like in Visual Studio. If this is not possible, that this endeed is very stupid, starting/stopping servers on a remote target and the rest...

<comment><USER33> I don't think the situation is likely to improve much unless as a profession we become open to paying for quality tools.

<comment><USER34> We used to be open to paying for quality tools, then the FOSS generation took over, killing the business of selling tools to single developers.

Nowadays the only way to make money selling developer tools is to sell them to enterprises, the only ones that value developer time vs money spent on tooling.

</comment></comment></comment><comment><USER35> Why not use cgdb?

<comment><USER36> I much prefer the cgdb interface to gdb's tui. I've also used it with various embedded builds of gdb. It works great.

</comment></comment><comment><USER37> Ever heard of a not so new tool called IDE? You are welcome.

<comment><USER38> my whole computer is my integrated development environment =)</comment></comment>