Ask HN: Please help a frustrated Mid-Career (?) Developer! - <AUTHOR> I've been a software developer for 5 years.  It has been a good career from an outside perspective - great names, high salaries, chance to live abroad, responsibility beyond my years etc.
All is not well on the inside though.  I'm experiencing a bit of a career low and crisis of confidence, which is why I turn to the smart people at HN!
I'll give a brief history for context -
My first few years as a developer were great.  I learnt a ton about software and all things tech.  Combined with a bit of business awareness I shot up the ranks and ended up in 'senior' developer roles (in practice if not in title).  I worked on some fairly low level high performance stuff and off of this built a bit of a name for myself in some niche technical communities.  I was proud of what I achieved and felt I was learning every day and delivering good stuff.
The last few years though, this has really stopped.  I first had a bad year in one of my roles where issues outside of my control left me fighting fires for a year rather than coding.  I left and then spent six months in a contract role that just involved hacking HTML and Javascript together at short notice for demos.  I've now moved back into a permie role, but seem to be really struggling to get to grips with the code-base.  The bits of code I have contributed have in retrospect turned out to be buggy or poorly designed in the context of the code base.  I'm not covering myself in glory there at all.  I don't have a single achievement yet after 6 months on the job.
I'm fortunate in that my CV and interview technique is getting me into very well paid development roles, but every day I am feeling like more like someone who can talk a good game and live off past accomplishments, but not deliver.  It's really eating me up as I want to excel in my job and earn the respect of my team.
I guess I feel like I've gone backwards over the last few years.  A few reasons for this:-
- I never just sit there and crank out code anymore - I must have read 1000 lines of code for each one I've written over the last 2 or 3 years.
- I never get the opportunity to properly engineer something and learn from what works well and what doesn't work well as a result of my own design decisions.  My last few jobs have been weighted towards maintenance.
- I struggle a lot more with low level algorithms and data structures nowadays.  I used to be pretty good at this but have lost the edge as I've drifted up to middle tier business and CRUD coding.
- I have lost the art of elegant code - everything I write seems forced and fragile, too much repetition, too inflexible.  I look at other peoples code and algorithms and it just looks unattainable to me even though I was doing that 2 years ago.
- I've developed a few concentration issues - I drift off and surf the interwebs more than I used to.
- The learning has stopped - I learn new tools and languages but rarely take away a new idea from them which makes me better in the day job.
After this essay, I guess the question is, how do I get my mojo back and get that level of technical excellence back?
And did this happen to any of you guys part way into your careers, or did you have a pretty linear improvement over the years?
Any help appreciated! <comment><USER2> _...how do I get my mojo back and get that level of technical excellence back?_

You decouple your day job from your need for technical excellence.

You do something on the side. Maybe a pet project. Perhaps a little service work for customers you find. Contribute to an open source project. Or best of all, start your own business.

This is what I did and it changed everything. I have never complained about the lack of stimulation of any day job I have had (well maybe just a little). Better yet, I have used to crappiness I encountered during the day to push myself to "never do that" at night.

The day job is comprised of quality right in the middle of the bell curve and it's good enough to pay the bills. The side work gives me a chance to push all the way out to the right hand side of the bell curve with cool stuff.

The ultimate plan is for the side work to take over and make working on someone else's crap during the day unnecessary. Give it a shot.

<comment><USER3> It sounds to me like he has a lot of room to grow in his day job, if he wants to be a software developer.

If he doesn't want to be a software developer, then sure, he can duck the issues of maintenance, legacy code, low-level code, and all that. He can hobby-code his own projects and avoid other people's code. That means finding another career, though. If he wants to revive his programming career, he needs to face up to his weaknesses, which is exactly what his current job is pushing him to do, if only he'll commit to it.

</comment></comment><comment><USER4> >> My last few jobs have been weighted towards maintenance.

There is your problem. I had the _exact_ same frustrations in my previous job. Now I am with a team doing development projects and it feels a lot different now.

Maintenance projects are good in a sense that you get to learn a lot by looking at other people code, but that in itself is not a good argument to stick with those type of projects. Every new development project, even if it is small, will have hard problems to solve. You will have to apply your knowledge of algorithms and data-structures more often than you imagined. In contrast, a maintenance project may give you a hard and difficult to debug problem which finally turns out to be caused by the previous developer forgetting to compare all the 7 properties of an object in the equals method. It is cute to have those problems once in a while, but there is not much chance of learning and innovation.

<comment><USER5> I did a stint as a maintenance programmer. I was proud of it, then. I'd worked on code written by McArthur geniuses and the worst PHP monkeys -- no matter how complex the code was, no matter what language it was written in, no matter which backend database, I took pride in being able to figure it out, re- architect it if necessary, and fix it.

I didn't feel like I was going to seed; I was learning new (old) languages and systems all the time and I even got the chance to help on a few research projects, work with machine learning experts, etc.

I found, however, that I just got $h1t on by management. I wasn't perceived as being productive, they were always complaining I was too slow and too expensive. And I was slow and expensive because maintenance programming is slow and expensive, particularly if you're the guy who'll clean up any mess, no matter how bad.

<comment><USER6> Sounds like you take pride in doing a great job. But unfortunately PHBs are too caught up in watching the P&L to even understand the value of you efforts. I did my share of clean-up jobs, but eventually no money would compensate for the pain endured.

</comment></comment></comment><comment><USER7> It's not just you - this happens lots of people, in lots of fields.

It's an obvious suggestion, but a small personal side project seems to help a lot of people - small enough that it doesn't become a big time sink or a chore, personal enough to be fun. A new platform you're unfamiliar with (eg your phone) may increase the novelty factor. Some people like to do a library or similar; I think an end-user toy like a little game is better because you can get feedback from non-coders which will reward you for extreme cleverness, but also requires you to complete rather than offering a half-assed library and calling it a 'foundation' or something.

School (eg a part-time master's degree) also increases your value, may be financed by an employer, and may push you to think deeper into problems rather than being in maintenance mode as you describe.

Finally, ask yourself if you're getting put into maintenance mode because they don't know where else to put you? If you say 'what do you need?' to your boss, any supervisor will first think that it would be nice to make an existing problem go away. If you want to be an architect, you need to come up with alternatives to the _status quo_ and then sell them - not just in terms of 'this will be better than what we have now, please give me permission' but rather 'rising maintenance costs will bury us if we don't act, getting ahead of (our competition) will require a team of 5 and a $$$$ budget - but will allow us to capture (quantified market share)'.

</comment><comment><USER8> Sorry, but that is the majority of softare development. While you may believe all your previous accomplishments were really great, there is most likely someone looking at your code thinking how frustrating it is to work on the codebase. I think it is way easier to start from scratch than take an existing project and move it forward. When you start over, you can build a ton of momentum. You can hold all the complexities in your head. You rarely have the same problems existing solutions have because existing solutions have users that have learned the system and have a set of expectations.

I'm not trying to belittle your previous work, while at the same time you should realize that your frustration with maintenance is somewhat belittling as well. It is simply a different kind of problem that takes a different set of skills and talents to do well. If you consider maintenance in this way, it can be just as rewarding and help further your learning. Likewise, if you are doing maintenance, you are working on software that had some level of success. No one will ever ask you to change a codebase no one uses. You can learn a ton from a codebase that has been around for a while. You see the parts that were bolted on and how that impacts the future, but also how the tradeoff of a more flexible design was actually not necessary.

I'm not trying to be negative, but rather challenge you to change your mindset. I maintain a huge amount of code and it is a huge pain in the neck at times. That said, I also realize that my ability to continually dive into new parts of the code has become easier through time. Even if I do have to read the 1000 lines of code, I'm finding that the process of reading code and making guesses where to read next has become more efficient. Likewise, I've tooled my environment to help me search for leads when solving problems with the code. My perspective on writing new code is radically different because there is a very clear understanding of how I could do a better job for the developer that looks at the code in the future.

In short it can be really frustrating to maintain code, but at the same time it is something that needs to be done. I also believe it can be something done very well. If you see it as a healthy challenge I think you'll find the feelings of burnout will subside and you can take pride in changing that one line that ended up helping save people massive amounts of time and money.

<comment><USER6> The bigger the company, the more software development is turd polishing and brown nosing managers. You have to ask yourself whether the status and money of working for XXXX Corp is what you want or whether you want to respect yourself for the great work you do. If it is the latter, then find a new job with a small, dynamic, with-it company that values your abilities and motivation. If it is the former, then suck it up.

If you can't make up your mind, then take a holiday to recharge your batteries and get away from the day to day battles.

</comment></comment><comment><USER9> My career had a huge dip like this. Take a big step back, maybe a day or two off, and try to remember what you loved about coding. Then get the hell out of the tar pit you're in and figure out how to spend more of your time doing that.

I build tools and frameworks. I do a lot of other stuff incidental to that, and often the "incidentals" are what other people hire and pay me for. But what I truly love is building the thick layer of infrastructure and interface upon which a veneer of app and decoration is added. I want to build Back End Code, for any of several fun definitions of that. I especially love building stuff that enables other developers.

I also want to use Good Tools that make me feel good, and that build results that feel solid when I use them.

There are a lot of other factors -- algorithms, platforms, languages, performance. And while they're important to get the rest done, they're not what motivates me. Those two things are pretty much what motivates me, and the rest is done for the love of those.

Your two (or more) things are probably nothing like mine. But you really, really need to figure out what they are. Then stop "doing what a software developer does". Go do what _you_ do.

</comment><comment><USER10> Seems similar to what I've been experiencing.

Things that I've been doing:

\- work on side-projects

\- take up new activities that require commitment. Nothing is _always_ pleasant and if you feel like you're constantly procrastinating/putting unpleasant tasks aside, then actually doing something because you _have to_ helps shift the "I can do it later" mentality to a "let's just do it while we're at it" mentality. I'm doing martial arts

\- cut back on reading news. If you need a "daily fix" of news, you'll probably notice that this addiction impacts your ability to focus.

\- take time away from the computer. It helps organize ideas in your head. I walk.

\- forget the idea of a "learning ladder", i.e. the idea that what you must accomplish next must be harder than what you've learned previously. Particularly, get rid of the notion that your next learning milestone should be programming related. Instead, research a real-world problem. You'll find a whole new industry worth of code to explore and it'll open doors.

</comment><comment><USER11> I suspect that your inability to concentrate is at the root of everything. Judging from the responses here, it seems to be a common phase for software engineers to go through.

I went through it myself recently, and it lasted for several months. At first I attributed it to stresses from homebuying, marriage, etc. But eventually the excuses ran out, yet I still found myself spending a lot of time surfing the net and cruising on my past accomplishments. I tried schmacking myself across the face. I tried changing the position of my monitor to make it easier for others to spot my laziness. Nothing seemed to work. I had gone from being a top producer to a worthless slouch, and I couldn't get seem to get out of my rut.

Then I finally realized the bleeping obvious: I simply no longer had any interest in what I had been working on. What started off as challenging work had turned into an endless stream of moderate enhancements and inane customer support issues.

I was very fortunate to be in a position where I could transfer ownership of the project and move on to different things. The effect was immediate. As soon as the work became challenging again, my productivity immediately shot back up. Hopefully you're in a position to do the same. Good luck!

</comment><comment><USER12> Been there. Join a company who's challenges are technical. That's an oddly rare venture as a software developer... most devs spent careers shoving data into and out of a database, and the grand challenge at most software shops is social.. it's designing software that user's interact with nicely. If you feel like you're losing your technical edge, look for a company that's doing something that's technically hard. Makes all the difference.

</comment><comment><USER13> Don't worry it happens to the best of us. I had a similar situation and it lasted for quite some time. Actually it lasted until I left the employer I was at. There are a lot of below the surface issues that can affect your ability to develop optimally, language, platform, the code base can all have an effect, even office politics can have an effect on your code quality.

In some ways we are like athletes, where better skills separate the superstar from the average and the superstars really shine. But just like athletes we have our slumps, which you are probably in. Averaged out over a career though they are brief even if they last a couple of years.

To me if I had to play 1000 ft view arm chair psychologist, I would say it is most likely your job, their is no passion and without it there is no dedication to producing quality work. Over time this has a compounding effect. I personally got to the point where I did not want to learn new technologies which, if you knew me is a very strange turn of events. I tinker with everything, trucks, computers, low tech camping and wilderness tech, solar / clean energy, bio-diesel, you name it and I tinker with it.

Anyway point being it can drag you that low, where you loose passion for the basis that got you here. That is when it becomes dangerous and when it required immediate action.

So lets get to the important part, how did I break the spell? by doing exactly what I did not want to do, on nights and weekends I started coding my own side project, it was like pulling nails at first but then things started to spark again.

Planning and design started to occupy my mind again, efficiency of code and modularity dominated my curiosity. The wheel started turning again and I got sharper, my code quality went up and I was happier even in my private life. That project ended up pulling me out of that job and out on my own

When I stated it I subconsciously agree to my self that even if it was a flop I was doing this for therapy. I also agreed amongst myself to never tell myself that again because I needed the belief that this was going to carry me somewhere else. That prepared me for the fact that it could fail and would soften it with the fact that I achieved the goal of rehabilitating myself. While also providing the hope that it could turn into something that will change my life. It did on both accounts.

I have been there, if you need someone to talk to my email is in my profile. I can help you with ideas for projects and help you with what I did to navigate certain mental demons in that situation (e.g procrastination, lack of motivation). It's tough and it is a form of depression, the sooner you break the cycle the easier it will be to recover.

<comment><USER14> "I would say it is most likely your job" -> I would agree so. Quit your damn that makes you feel miserable. But please find an offer before doing that! Money is still the factor to survive here.

</comment></comment><comment><USER15> I feel with you, man.

Unfortunately I cannot offer words of advice, I'm in the same mood and a similar position right now (and it starts to influence my private life a lot, which sucks. Explain to your SO this kind of "I'm feeling that I don't accomplish anything so we're fighting regularly, sorry").

Story's, as I said, similar, but with some key differences: I'm senior in title and in practice, but not in payment. My job's in a niche (OCR/DMS) as well, where basically people just jump between competitors if anything bothers them. I don't want to follow this practice. I might leave, but this inbred culture leads to lots of problems.

Coworkers are mostly converts from VB times and stopped caring about self education after they were forced to learn C# 1.1 (it still works. Nvm that 4 is out). I lobby for a (company provided, I use git personally) version control system for 5 years. The company handles projects in the 5-6 digits range and didn't manage to support this request for the most basic of tools yet.

To add insult to injury we're divided into two divisions, one is doing projects for the customer, one is developing the platform. The latter is elite and you won't get a job there. I'm sure they don't even earn much more, but they do the interesting thing. Design new features, research new possibilities. We (as I said, I'm "senior", but still) are just code monkeys.

Sorry for hijacking the thread, but this crushes me, right now. I'm seriously unable to get up, unable even to turn on any machine. There's so much I want to learn and do, but the mere thought of my day job currently stuns me. I constantly find me wandering off, I even think the Net is boring and I've seen it all by now.

(Queue the "Quit the job" responses.. Currently searching for better alternatives, but I've a family to support - and maybe I just abuse that as an excuse to hide my fear for something new).

Long post, in huge parts offtopic - sorry for that. Let me finish with "Yes, you're not alone". And the best of luck to you, this is for me the writers block in programming - and it sucks.

</comment><comment><USER16> Whenever I'm feeling low, I go to lunch with friends who work at a big enterprise software company, preferably in the financial or health sectors. Those guys make me feel like my job is a dayspa.

I've also found that constantly coming up with new ideas and suggestions for your company's core product, even if they never get executed, is very fulfilling. When you are doing so, you are often checking out new technologies or processes and the learning experience leads to the sparks that ignite my creativity and passion.

Side projects are nice and all, but it sounds like you want social acceptance for l33t hacks as well. I think you may just have to accept the fact that many developers are treated like factory workers and their managers are the ones rewarded with respect (and cash) on behalf of their best works.

</comment><comment><USER17> You may be experiencing a mild case of burnout. Career capabilities and recognition often undulate based on many factors. Even when you think you're doing everything right, it may be harder to do what you used to be able to do easily. I think that's a natural part of being human. Over the long haul, though, you will continue on an upward trajectory--assuming you continue to absorb new information and practice new skills.

If it really is burnout, there are many resources for how to approach that. An important part, though, is taking a break. Surfing the Net doesn't help. You need time away. You'll know you're at least partway through it when you begin itching to try something new.

Like many here, I went though similar periods in my career. You do get through it and you can definitely become a better developer over time, despite age. Assuming you like what you're doing and you want to improve, then the question is, "what to do?"

Decide on something new that you want to learn. A new language, development environment, operating system, tool set, or whatever. Then pick a problem and work on it. Do it at home in your spare time, so there is no pressure and no expectations. You may not notice any immediate benefit, but you will be growing and improving. This is what makes the difference long term.

Best of luck.

</comment><comment><USER18> "I never get the opportunity to properly engineer something and learn from what works well and what doesn't work well as a result of my own design decisions."

Sure you do, it is called what you spend your free time on. In your case, you aren't devoting any of it toward what you loathe you aren't doing. That's fine, but everyone is equal in the fact that they get 24 hours per day, what they do with it is up to them.

-Scott

</comment><comment><USER19> New development and maintenance are two very different development tasks in my opinion. Maybe you are discouraged because you are going through a brand new learning curve which you thought you had mastered and are now proven otherwise?

I definitely agree with everyone here recommending to take on side project and work on things in your spare time. Every job I ever got was because of skills/tech I gained on side projects (because I could do stuff with tech I though would become relevant...and it often did).

Relying on your job to teach you all you need to know is a sure way of becoming technologically irrelevant in 5-10 years. Your job will primarily tech your organizational stuff like working in teams, consistency, timeliness, playing politics etc. Even if they send you to any sort of training, those classes are usually a joke.

Learning your trade you really have to do in your own spare time. I easily (easily!) spend 20+ hours a week on my own stuff which I hope will land me the next position.

</comment><comment><USER20> I experienced this and I chose to learn a new (programming) language and get a job using it. You mention learning new languages but are you actually switching over to that language? Rather than working in your main language and dabbling at night, use the new languages and tools in your day job. It's generally within reach to either convince people to let you do that where you are or to find a new job.

Usually learning is engaging, so if that's not doing it for you, it makes me think 1) you aren't going deep enough and challenging yourself enough or 2) you truly aren't interested in coding anymore. I tend to think it's the former but only you know for sure.

I read this article from my RSS reader today and think it's applicable to your situation: [http://www.fluentself.com/blog/stuckification/exit-the- middl...](http://www.fluentself.com/blog/stuckification/exit-the-middle/)

</comment><comment><USER21> I hope this article of mine may inspire you a little bit: [http://programmingzen.com/2010/07/04/the-pursuit-of- excellen...](http://programmingzen.com/2010/07/04/the-pursuit-of-excellence- in-programming/)

</comment><comment><USER22> I've had a multi-year 'maintenance mode' slump where I didn't get very much done. I learned a lot about propping up crap code, which is a really useful skill (as someone else said, this really is the majority of software development work to be had.) but you are right, it's not very satisfying, and i didn't really feel like my career was moving forward.

For me, the answer was a side project that grew into my full-time job. (I had a few false starts, and had to get a few other dayjobs... but I did quit my maintenance job to focus on my own company, and that was the first, and a necessary, step.)

</comment><comment><USER23> Ah, another eager, frustrated dev with 5 years of experience. As much as I can relate to your experience and mindset, I gotta tell you that I'm happy to not be alone.

I have a very simple advice that I got from someone far back, do one thing that will make you feel that you accomplished something. It could be anything, an android/iphone app, a usable web app or a game (in HTML5 may be?) or just patches to your favorite open source project.

The joy of building something which people use is unprecedented. It helped me a lot and I'm pretty confident it will help you too!

</comment><comment><USER24> Good question, I think you touch a nerve on a lot of us here.. The world we live in is stressfull by nature, it changes rapidly and it is difficult to compete against new comers fresh, full of mojo, with a clean slate and ready to learn and do.

I recommend you three things: 0\. Keep the day job & the money flowing.. it is not everything but having it gives you lots of options.

1\. Pick up a hobby that has nothing to do with software development

2\. If you want to understand why your are feeling the way you do, read "Flow" by Mihaly Csikszentmihalyi

</comment><comment><USER25> You are still pretty green. Keep working on it.

</comment><comment><USER26> I think you're worrying too much. Sounds pretty normal to me. Try to keep learning, practice coding problems if you're so inclined or get a hobby. Get out more. Spend more time with your family. Teach a few courses if thats possible. In this context, I don't think there is any such thing as linear improvement.

<comment><USER27> Retire, relax, enjoy your family. It is just a phone. Not worth it.

</comment></comment><comment><USER28> Find a small idea/project to work on that isn't work related that you'd like to code up and then like my friend at a shoe company says, "JUST DO IT!"

</comment><comment><USER29> Programmers: Before you turn 40, get a plan B

<http://news.ycombinator.com/item?id=650437></comment>


The Ruby train goes blah blah blah - <AUTHOR> http://kenegozi.com/blog/2011/07/08/the-ruby-train-goes-blah-blah-blah

<comment><USER2> First and foremost there is more to Ruby then Rails. Rails is one framework albeit the most popular Ruby framework. Ruby as a community is growing and developers are writing cool things with it. It's also available on the JVM and there is Ruby implementation written mostly in Ruby.

I think the problem here is that the author is writing about "Rails Developers". <language/framework> developers usually have a narrow minded view about other languages/frameworks and hence call themselves <language/framework> developers. Real developers use the right tool for the job.

I've come across some really delightful developers who write Ruby/Rails who are pretty appreciative of other languages. This notion that all developers who use Rails are arrogant is not true anymore IMHO.

</comment><comment><USER3> The interchangeable use of 'Ruby' and 'Rails' in the original article (and some of the comments) is indicative of someone who has not taken the time to understand either. Conjecture like that is not worth the GET.

<comment><USER4> Interchangeable in what sense:

"And I think that Rails is a cool platform, I really do." "And I like the ruby language. A lot."

How much clearer could he be?

</comment></comment><comment><USER5> The author seems to be focusing his argument primarily on productivity and tooling. In that regard, I agree that C# and all the surrounding OSS has surpassed vanilla Java and is starting to catch up to Rails.

However, he neglects to mention anything about deployment, hosting, data storage, and long term infrastructure costs associated with being on Windows and .NET. These are real problems that startups have to weigh along side productivity when choosing their stack.

While Mono is certainly an option, the recent shaky history surrounding its corporate sponsorship makes it a riskier choice. Also you lose most of the tooling advantages if you use Mono on Linux instead of .NET on Windows.</comment>


Why we should worry about domestic drones and how to bring them down - <AUTHOR> http://blogs.reuters.com/great-debate/2015/02/05/why-we-should-care-about-domestic-drones-and-how-to-bring-them-down/?utm_source=Facebook <comment><USER2> From the title, I thought that the article was going to be about the rise of the surveillance state, and how monitoring/tracking drones would be the next battleground in the War on Privacy. Instead, we get a fearmongering article that stops one step short of suggesting that civilian drone ownership be banned.

<comment><USER3> Yes, the implications here are very troubling: that security for high government officials is more important than privacy and anonymity for the rest of us.

For those of us in the states, how the &*$# did we end up here? Was this value system mentioned anywhere in our founding documents? In any government/civics class that any of us took in school? Who are the people they have making these arguments?

<comment><USER4> If you squint just a little bit, a huge percentage of the population _wants_ a king. Starting from there, it's not surprising that leaders get that treatment.

<comment><USER3> It has always been this way, and we're supposed to have a system of government that realizes and actively fights this desire.

Over the past several decades, however, the system of self-restraints has broken, however, probably irreparably. I don't think there was any one reason or master conspiracy or anything -- just lots of little compromises made by people doing the best they could.

Understanding why it happened doesn't make it any better, though.

Back in Lincoln's day you could ride all the way to DC, wait in line at the White House, and based on a lottery be able to go in and talk to the president. And he would feel embarrassed for whatever problems you had and would listen to you patiently.

Those days are long gone. And the goal of perfect safety for elected officials is still just as far away now as it was then. Not a good trade for the republic.

<comment><USER4> I wonder how different Lincoln's listening was from petitions.whitehouse.gov.

</comment></comment></comment></comment></comment><comment> mike-cardwell Rather than controlling it remotely, you could programme in a destination and time and it could rely on GPS and a backup gyroscope for when GPS is unavailable. Fast forward a decade or two when the tech has improved a bit, and add a camera and facial recognition and let it rip on your target of choice. They get good at shooting them down? Make sure you send 50 of them instead of 1.

[edit] It seems inevitable to me that this will happen at some point in the next few decades. It also seems inevitable to me that countries will enact laws to try and prevent it. But that it will happen anyway. No matter what law is created.

</comment><comment><USER5> It's not hard to imagine cheap(ish) long range autonomous drones that can't be jammed. Such a drone can't communicate or coordinate attacks in flight, but a mere timer or location trigger can still make an attack pretty exact.

The technology is sufficiently cheap and available off the shelf today that even a moderately skilled person could assemble an autonomous drone that carries a small bomb and detonates it at a specific coordinate at a speficic point in time. Any viable defense is a dome, either physical or virtual (e.g. realized by autonomous lasers, some form of projectile weapon, or a swarm of counter dronws). In any case it's clear how asymmetric the threat is in the sense that any viable defense is orders of magnitude more advanced and expensive than the attack.

The simplest way of avoiding these attacks in their simplest form is likely already in place for high value targets: you don't reveal an exact time and place for an appearance, being a few meters or a few minutes off is enough to thwart the dumbest drones.

<comment><USER6> There are communication channels that can't be jammed in practice (eg. color and shape codes). The drone does not need to be completely mute and uncordianted.

The way to avoid this kind of attack is the same way people has been avoiding for ages somebody hiding a bomb with a clock at the target. It's done by police investigation and arresting the people as soon as they start making bombs. Helped by the fact that most people that want to do something like that are too stupid not to blow themselves while trying, this has been good enough for a long time.

</comment></comment><comment><USER7> We need to teach our children how to make airplanes. As long as we can, as a living generation, assure future generations that this technology will be something they can, themselves, benefit from, then we have a chance.

It is true of all technology: it can be weaponized. So, use it more peacefully, with more enthusiasm to promote life, and stay safe. Fact: drones are good for the environment. Conversion to a drone-based delivery system could be a very positive impact on our environment through transportation. The drone-pizzabox is a good idea, death robots from the sky are a very, very bad idea. As long as you know how to make a flying thing out of a bit of greasy cardboard, you can stay safe in the universe. Pizza helps too.

</comment><comment><USER8> Not to get all libertarian, but this reminds me of the gun control debate. What this person seems to be most worried about (a drone attack) would necessarily be the work of a criminal. But what this person seems to be endorsing (a law restricting civilian drone use) would mostly limit the freedom of those who follow the law. It's very silly and a bit disappointing.

<comment><USER9> _a law restricting civilian drone use_

Was this submission originally linked to something else? The submission talks about jamming and techniques to shoot down drones. I coincidentally mentioned on here yesterday the business opportunities around anti-drone technology-

[https://news.ycombinator.com/item?id=8998369](https://news.ycombinator.com/item?id=8998369)

None of this has anything to do with banning drones. Several comments thus far have fearmongered a worry that the article doesn't even remotely claim.

EDIT: While I know that commenting on moderation is verboten, and seldom beneficial, the moderation in this discussion are _embarrassing_. Fear- mongering hysterics of the actual worst kind, incapable of discussing actual changes without rhetoric and propaganda. Though now I see this was flagged to the fourth page, unseen by normal rational people.

<comment><USER8> A restriction does not necessarily mean a ban. From the article:

> For the recreational pilot who loses control of his machine, better firmware > can keep it from hovering over prohibited areas like the White House.

Now of course it's hard to argue that a special blacklist for programmable GPS does not make some sense. But this kind of agenda always starts out at the fringes. What I'm saying is that even the mild rhetoric at this stage is troubling, because I have a pretty good idea where it's headed.

<comment><USER10> It is not a sensible idea.

First of, people will be able to go around your DRM by patching the firmware, or spoofing the data coming from the GPS.

Second, your proposal would require the GPS to be always on. Not every drone needs a GPS, and not every drone needs the battery drain of using a GPS all the time.

<comment><USER11> But it would prevent some frat guys from doing something stupid. Of course hard-core criminals and the mafia will always have access to dangerous things, but that doesn't mean restricting access for the small-timers and the stupid/drunk is not worthwhile.

You can't always win, but you can win 95% of the time.

<comment><USER10> Stupid frat guys aren't going to fly explosive laden drones over restricted areas. However, _everyone_ will have to pay the cost of this stupid DRM as it slows down operations and sucks battery. Worse, if it's made mandatory, it might stifle open source hardware.

The blind urge to control and regulate is one of the most destructive force in the economy.

</comment></comment></comment></comment></comment></comment><comment><USER12> Yeah, this worries me. I think we're probably counting down the final months before the first time someone is assassinated via civilian drone. It could be trained to keep its distance until it recognizes its target's face, and then approach very fast and detonate explosive when close enough. The attack could be complete before anyone realizes anything is wrong.

One defense might be to have your own fleet of anti-drone drones, and hope that they're faster and more aggressive than the attacker's. Another might be to place a rifle under the control of a CV system. Both options seem awful to me, and inevitable.

<comment><USER13> Lasers would be more effective. 1W and above lasers are readily available on the open market, and output more than enough power to fuse or burn out any optics that are not shielded.

<comment><USER14> Lasers are slow to impact (unless using an obscene amount of power) and require precise tracking of the target over time (because they're slow).

<comment><USER13> Conversely, it is far easier to hit a moving target with a laser than it is to hit a moving target with a projectile. With a projectile, you have to aim where the target is projected to be, whereas with a laser you aim where it is now.

CIWS systems and fighter cannon are gatling guns precisely because the probability of any single round hitting a small, moving target is low.

If all you need to do is overload the optical circuits of a drone, a 1W laser is sufficient. Whether you kill the drone by incinerating it in midair or kill it by causing it to crash due to loss of orientation, the result is the same.

<comment><USER15> A lot of CIWS systems are missle based: [https://en.wikipedia.org/wiki/Close- in_weapon_system#Missile...](https://en.wikipedia.org/wiki/Close- in_weapon_system#Missile_systems) And the US and Germany are moving from Gatling gun based ones to a "Rolling Airframe Missile" that as I read it is self-guided once fired: [https://en.wikipedia.org/wiki/RIM-116_Rolling_Airframe_Missi...](https://en.wikipedia.org/wiki/RIM-116_Rolling_Airframe_Missile) Needless to say, using blast fragmentation warheads near crowds is sub- optimal.

This really sounds like a job for Death Rays, err, the laser finally getting a serious workout as a kill mechanism.

<comment><USER13> Or hunter-killer drones that can close in and fire some sort of directed fragmentation / shaped charge warhead? That might be a viable alternative, especially once 3d fabrication reaches an acceptable maturity.

</comment></comment></comment></comment></comment></comment><comment><USER16> Doesn't even require explosives. It's more like the laser pointer threat to aircraft; all it needs is for someone to fly a reasonably solid drone into a jet engine on takeoff to achieve a major air disaster. This has come close to happening by accident at least once (drone near Heathrow).

<comment><USER17> > to fly a reasonably solid drone into a jet engine on takeoff to achieve a > major air disaster

Any modern turbine engine can swallow vast quantities ice without much of an issue. I think the baseline is in the region of 500 kilos of ice in 1 minute. A small commercial drone won't make much of an impact to an engine that can fly through a hailstorm without burping.

Edit: the abuse a modern engine endures for certification:

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

And if it did, any commercial aircraft certificated since the late 1940s will survive an engine failure on take-off, and continue to climb.

<comment><USER18> Yet sometimes a single bird will take out an engine: [https://www.youtube.com/watch?v=9KhZwsYtNDE](https://www.youtube.com/watch?v=9KhZwsYtNDE)

Modern engines are designed to contain the damage, and multi-engine jets are designed to be able to maintain control, climb to a safe altitude, and return to the airport with an engine out, so flying a small drone into an engine probably won't cause a major disaster, but it will cause a lot of disruption as the plane declares an emergency and returns to the airport, and cost a lot of money to repair or replace the engine.

One of the suggested videos for that one was interesting. It's a video from a forward facing camera in an F-16 as it gets hit by a bird, which shuts down the engine. The pilot tries for a while to restart, fails, ejects, and the plane crashes: [https://www.youtube.com/watch?v=zN_Zl64OQEw](https://www.youtube.com/watch?v=zN_Zl64OQEw)

</comment></comment></comment><comment><USER19> Really, the Honeybee helicopter is an Air Force drone?? I had one of those 4-5 years ago and was lucky to keep it in the air for 30 seconds. Its the heli in the article with a purple tailboom and training-gear.

I was eating somewhere that had CNN on TV and they were discussing the use of rockets to take out civilian drones. Not which part of that scenario is more dangerous.

I'm not sure this is sensationalism with amazing ignorance or are people really this dumb and crazy(I usually avoid mainstream news).

<comment><USER20> I honestly thought that was Lama V3 without a canopy. These have been available for years, and yeah, controlling one is a huge feat, the battery life is around 10 minutes and they can lift absolutely nothing. It's a toy essentially. I used to be really interested in R/C helicopters years ago, but it is(or used to be) a very expensive hobby. Usually you spend few hundred dollars on a helicopter only to crash it on the very first day(it's just inevitable) and then you just keep on spending money on parts. It's most definitely not a "drone" like the quadrocopters are, not any more than R/C electric cars are.

Edit: that's a lama V3 if you were wondering: [http://www.dx.com/p/e-sky- lama-v3-r-c-helicopter-1166](http://www.dx.com/p/e-sky-lama-v3-r-c- helicopter-1166)

<comment><USER19> The lama is a coax heli. This is the heli in the article with training gear. [http://www.xheli.com/2blhokirtf.html](http://www.xheli.com/2blhokirtf.html)

</comment></comment></comment><comment><USER21> "The American public largely hates domestic use of drones, and only 3 percent are "very likely" to buy one this year, according to a recent Reuters American Insights poll."

Huh? Hate is a very strong word for a technology that the "public" planned to showcase during a big collage football game but was shut down by the FAA. [http://www.freep.com/story/sports/college/university- michiga...](http://www.freep.com/story/sports/college/university- michigan/wolverines/2014/09/19/michigan-football-drones-faa- bloomberg/15894245/)

I have no doubt that the FAA, "hates" the domestic use of drones but the public keeps finding tons of incredible uses for them, which seems to be complicating the security issue. The security issue is clear, even if you could jam the whole frequency spectrum how do you deal with possibly disrupting emergency medical care, package delivery, surveillance... This article grossly oversimplifies the security issue. Garbage.

</comment><comment><USER22> Can someone explain why this is an issue _now_? Is it ubiquity and reduced cost, or is there some fundamental advance that I am unaware of? From a layman's perspective, I feel like high-performance RC planes and copters have been available in kit form for well over 30 years.

<comment><USER15> Well, an errant drone recently crash landed on the White House grounds: [https://www.google.com/search?q=drone+white+house+grounds](https://www.google.com/search?q=drone+white+house+grounds)

</comment></comment><comment><USER23> > Like the car bomb, the drone bomb could become a cheap, ubiquitous and > anonymous way to deliver explosives.

Should we ban cars as well then?

</comment><comment><USER24> I'm sure jamming Wifi and GPS will have fun effects on drones as is jamming common frequencies for radio controllers at 72Mhz will also have fun effects of crashed drones.

Not sure if this is possible but actually if you make a broad frequency listener with software controlled radio then you can try and just jam all local heard frequencies with a stronger noise signal.

</comment><comment><USER25> [http://www.amazon.com/Kill-Decision-Daniel- Suarez/dp/0451417...](http://www.amazon.com/Kill-Decision-Daniel- Suarez/dp/0451417704)</comment>


Show HN: I spent weeks trying alternatives to 24hr time. This system won - <AUTHOR> https://newdaynew.me <comment><AUTHOR> Hey HN,

A few months ago I started an experiment called "hacker time," living on alternatives to the 24-hour clock. The system that won divided the waking day into 10 blocks of 100 minutes each. It is like a metric system for time that starts when I wake up at 0.00 and ends at 9.99 when I should be sleeping.

Throughout quarantine I've been building newDay, a calendar/planner that uses this system. Here are a few things you can do with it:

\- Set up hourly intentions for each of the 10 newHours (takes me <10 min each night).

\- Monitor weather / sun level data throughout the day

\- Navigate with vim-like hotkeys

\- Import/Export from Google calendar

Many of today's tech companies have an abusive relationship with their users' attention and data. newDay strives to earn your usage by helping guide you on the path you choose while holding your time, attention, and data as sacred.

I am committed to transparency when it comes to the use of your data. You can use newDay in an anonymous cookie-only mode. More details here: [https://newdaynew.me/privacy](https://newdaynew.me/privacy). I know there is still room for improvement and I welcome community feedback.

newDay has helped me build a fulfilling life while quarantined, and I hope that it works well for you, too. All thoughts, feedbacks, rants, and nitpicks are welcome.

\- esc

</comment><comment><USER3> Interestingly enough, the US Navy used 18-hour "days" on some of their subs to address issues of sleep deprivation and scheduling. There are some interesting articles out there on the topic, but eventually they went back to the standard 24-hour day. Using a different paradigm for time is a neat concept, but for practical reasons, it would just never sync with the rest of the world.

</comment><comment><USER4> Interesting system and redesign of time. It's mapping more closely to my maker schedule/mental model with the chunking of time and intentions, should enable more deep flow work

<comment><AUTHOR> Thanks for that thought.

</comment></comment><comment><USER5> refreshing to see a departure from something we take as entirely default - <USER2> system of time! A friend and I actually spent some time thinking about what life in metric time would look like a few years ago ([https://yef.im/metric- time](https://yef.im/metric-time)), so it's really cool to see it turned into a product that actualizes that way of thinking.

</comment><comment><USER6> Looks like the core insight is 100 minute hours so that you have enough time to get in flow for deep work.

Love that it integrates w/ GCal!</comment>


What bothers me about Google's AppEngine - <AUTHOR> http://matthewpaulmoore.com/post/48621135502/what-bothers-me-about-googles-appengine

<comment><USER2> _AppEngine is a highly opinionated product; "use our approved stack or use another provider."_

Its a PaaS rather than a IaaS, so its naturally somewhat opinionated, but its not like Google doesn't have a wide-open IaaS offering. Its more "use the stack we provide for you in our PaaS or build your own stack on our IaaS" than "use our stack or use another provider".

 _That's compounded by the fact that the majority of applications on Google's AppEngine are going to find themselves being forced to also use Google's BigTable implementation. Well, that's a pretty huge investment on the developers' part, because BigTable isn't really a standard that's easily deployable on other cloud providers._

Developers don't use BigTable directly, they use the Datastore API. There are third-party open-source implementations of the AppEngine Datastore API that use backing stores other than Google BigTable, which can deployed on the IaaS of your choice.

 _If anything, AppEngine is more accurately compared to Amazon Elastic Beanstalk, not lower-level services like Amazon EC2 or Amazon OpsWorks._

Yes, AppEngine is a comparatively high-level, PaaS cloud offering. Google's IaaS equivalent to EC2 is Google Compute Engine.

This article basically seems to be complaining that App Engine is bad because it doesn't have the wide open flexibility of an IaaS offering like EC2, which is an odd complaint, because AppEngine is a PaaS, and Google offers an IaaS if that's what you are looking for.

</comment><comment><USER3> Don't forget you can use App Engine with Google's Cloud SQL which is basically MySQL.

App Engine is definitely more limiting just not as limiting as you think. And, what you fail to mention is what you get in return for these limitations. You get a system that scales with no configuration or maintenance necessary. Even Elastic Beanstalk needs to be configured and maintained because it is more open.

App Engine is really a web developers dream platform. It is just a matter of whether your app will work with its limitations.</comment>


Shit – An implementation of Git using POSIX shell - <AUTHOR> https://git.sr.ht/~sircmpwn/shit <comment><USER2> Hiya HN. I was ranting on Mastodon earlier today because I feel like people learn git the wrong way - from the outside in, instead of the inside out. I reasoned that git internals are pretty simple and easy to understand, and that the supposedly obtuse interface makes a lot more sense when you approach it with an understanding of the fundamentals in hand. I said that the internals were so simple that you could implement a workable version of git using only shell scripts inside of an afternoon. So I wrapped up what I was working on and set out to prove it.

Five hours later, it had turned into less of a simple explanation of "look how simple these primitives are, we can create them with only a dozen lines of shell scripting!" and more into "oh fuck, I didn't realize that the git index is a binary file format". Then it became a personal challenge to try and make it work anyway, despite POSIX shell scripts clearly being totally unsuitable for manipulating that kind of data.

Anyway, this is awful, don't use it for anything, don't read the code, don't look at it, just don't.

<comment><USER3> > instead of the inside out

Now the name makes even more sense. I first read it as sh/git, but reading it as something that starts inside and slowly works its way out is now my preferred explanation of the name.

<comment><USER4> The name also plays well with the porcelain & plumbing metaphores of git.

<comment><USER5> metaphors. Not being pedantic, it just puzzled me a while to see what was wrong with that word.

<comment><USER6> what do you get when you cross a metaphor and a semaphore? a metaphore

<comment><USER7> I never sem a phore that I didn't like.

¿

<comment><USER8> lol

</comment></comment></comment></comment></comment></comment></comment><comment><AUTHOR> This was done in the span of a few hours, and was committed to sr.ht using itself.

Drew even livestreamed the whole thing, but I don't think he's uploaded it to a PeerTube instance yet.

<comment><USER9> Where was it livestreamed?

<comment><AUTHOR> He has a subdomain on his site that he uses for it:

[https://live.drewdevault.com/](https://live.drewdevault.com/)

<comment><USER10> You're not the right person to ask about this, but if Drew is around I would _love_ to hear high-level details about what how this setup works and what the average monthly cost is.

I can see that it's open source[0], and I'm very tempted to copy it. I'm already in the midst of migrating all of my video hosting to peertube, but I don't have a solution I'm confident in for livestreaming other than Twitch -- especially because when in the rare instances where I do stream coding sessions they can go up to 5 or 6 hours, at which point archiving and storing that video starts to look a lot more costly.

[0]: [https://git.sr.ht/~sircmpwn/live.drewdevault.com/tree](https://git.sr.ht/~sircmpwn/live.drewdevault.com/tree)

<comment><USER2> I don't use it very often. I just threw it up on a Linode with minimal effort so I could have a working live streaming setup. You'll note from the readme:

>This is the website for my self-hosted livestreaming platform (aka bag of hacks dumped into a server).

PeerTube is nice in theory but in practice it's been really really unreliable for me.

<comment><USER11> Why not simply stream to somewhere live Twitch/YouTube and have them serve the recording offline later on?

<comment><USER2> I try to avoid proprietary services.

<comment><USER12> You know, YouTube is pretty easy. I bet someone could implement it in an afternoon and a dozen lines of shell script...

<comment><USER13> Is this a challenge?

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER14> I once landed a job as a web developer in a marketing department where IT was gatekeeping production hard.

Although all the code was in git (the real git), deployment involved a magical shell script someone in IT had written ages ago. Only after a bunch of rocky, outage-causing deployments did we have the sense to start digging into this magic script.

It turned out it was just a bad, thousands of lines long re-implementation of git using perl and mysql that captured and stored diffs and rsync'd them to production. ...And this was well into the era of CI/CD and infrastructure automation tools.

Eventually, the company brought in new IT leadership that put an end to that kind of nonsense, which freed us in marketing to buy purpose-built PaaS for our needs.

Obviously do this kind of crazy stuff as you please on the side. But at work, build only what uniquely adds value to your company. For most, dev tools are probably pretty low on that list.

<comment><USER15> I really disagree, a small amount of customisation of tools can reap significant productivity gains.

I think your anecdote is really just an example of bad management, not bad tooling. Could easily be that some management doofus had prohibited git from being installed on the 'production' system.

<comment><USER16> I think the problem is the idea of 'tooling'.

A table saw by itself is mostly useless. With a fence and a miter gauge, it becomes useful. With a push block, stop block, subfence, outfeed table, infeed table, featherboard, crosscut sled, tenon jig, and dado set, it is the single most useful tool in a woodshop. Keep in mind it is still _one tool_ and all those accessories are not "tooling", they are accessories to a single tool that increase what you can do with it. The tool always works the same way, and anyone can use it with any of those accessories in any woodshop in the world. In effect it becomes a new, larger solution, made up of many features that extend the utility of the tool.

That's not really what we have. Mostly what we have are jigs. A jig isn't an outfeed table or a crosscut sled. It's a hack for a particular job. If you need to make one specific cut 300 times, you nail together some scrap wood, dial in the miter gauge, angle the saw blade, and make your cuts. And the jig is scrap once again.

But in the heady new world of "DevOps engineering", the jig is now "tooling", and we pat ourselves on the back that we were able to nail some scrap wood together and claim it created business value. Of course, it's not a _shitty_ jig like in the bad old days of shell scripts ("ha ha! remember when we were productive with this simple code that was portable and not gigantic or complicated? how foolish!"), because instead of making it out of scrap wood, we now make it out of scrap steel with a MIG welder. We're _advanced_ now.

And I'll go further. The fact that most woodworkers make their own tablesaw extensions is illustrative of the problem: craftspeople like having fun with their toys. Is there value and experience and dollar savings you get out of making your own crosscut sled? Sure! But it'll also take you 1-2 days of buying parts, measuring, cutting, gluing, clamping, drying, aligning, and finishing. Any business with any sense should have paid $100 to just buy a complete crosscut sled made of aluminum with a good design that will last forever. But they are too dumb to notice they're spending an inordinate amount of time and money on craftspeople making jigs.

I wish the ghost of W. Edwards Deming would rise from the grave and call us what we are: bullshit artists.

<comment><USER17> I think you're saying that "creating home made tooling is a waste of time, and you should just use professional tools"?

In which case I agree, for almost all cases. A carpenter trying to build their own saw or chisel would be laughed out of the workshop, and rightly so.

However, the mark of a master craftsman is one who can identify when custom tooling are necessary and knows something about how to build them.

<comment><USER18> In my opinion, this is simply an over-extended metaphor. Programming ultimately is not carpentry, and custom tooling is justifiable in many more cases.

</comment></comment></comment></comment></comment><comment><USER19> I wasn't aware of the plumbing / porcelain metaphor in git until now.

It's fantastic to what lengths some of us go for a good pun :-)

</comment><comment><USER20> There are two hard problems in computer science:

1\. Cache invalidation. 2\. Naming things 3\. Off by one errors.

This person has #2 nailed down, hard.

</comment><comment><USER21> Amusing, but less than the title suggests (no porcelain, no reliability properties, no error checking, etc).

Still, fun stuff.

<comment><USER22> Interesting terminology, I'd never heard of porcelain in the context of git.

In case there are others like me, this will save some clicking:

[https://stackoverflow.com/q/6976473/293064](https://stackoverflow.com/q/6976473/293064)

<comment><USER23> Am I reading that correctly? A porcelain command is one that's _not_ supposed to be used in scripts, but the --porcelain flag is for when you _do_ want to use things in scripts?

</comment></comment></comment><comment><USER24> I initially thought it was "SourceHut gIT" not "SHell gIT"

I don't mean any offense by that - sourcehut is fine - just what popped into my head.

</comment><comment><USER25> It seems that the logical next step after the birth of this monstrosity would be to create the next best platform: ShitHub

</comment><comment><USER26> This is great, but I already use "shit" as an alias for "fuck".

<comment><USER27> If there's anything you don't want to confuse, it's your shit and your fuck. Keep them separate, people. Keep them separate.

<comment><USER28> The world is big enough for everyone's kinks; I'll keep mine off yours and you return the favor tx

<comment><USER27> You can have whatever kinks you want, but you can't escape the germ theory of disease.

</comment></comment></comment></comment><comment><USER29> [https://wyag.thb.lt/](https://wyag.thb.lt/) If you want to hop the same train, I saw this long ago...

</comment><comment><USER30> So if this is the git internals, shit is what goes inside the porcelain plumbing?

</comment><comment><USER31> are there any other implementations in other languages? (preferably c++).

I use libgit2, but the code is a bit difficult to read and hack. I know there is a ruby book implementing from scratch.

I want to understand the git internals.

<comment><USER32> Let's rewrite everything in JavaScript:

[https://github.com/isomorphic-git/isomorphic- git](https://github.com/isomorphic-git/isomorphic-git)

<comment><USER33> What a strange way to spell Rust:

[https://news.ycombinator.com/item?id=19540845](https://news.ycombinator.com/item?id=19540845)

(to GP: lots of links related to reimplementing git in there)

</comment></comment></comment><comment><USER34> Isn't this how Git was originally done?

<comment><USER35> No, git was originally done in C: [https://git.kernel.org/pub/scm/git/git.git/commit/?id=e83c51...](https://git.kernel.org/pub/scm/git/git.git/commit/?id=e83c5163316f89bfbde7d9ab23ca2e25604af290)

<comment><USER36> It's slightly more complicated than that. The `git` command line itself was done in shell. Initially, `git foo` just ran `git-foo-script`, and then those were also written in shell. But the actual sha1 and packfile stuff was always in C from the beginning.

Source: [https://git.kernel.org/pub/scm/git/git.git/commit/git?h=v0.9...](https://git.kernel.org/pub/scm/git/git.git/commit/git?h=v0.99&id=e764b8e8b3c50b131be825532ba26fa346d6586e)

</comment></comment></comment><comment><USER37> Impressive! Though very lacking on any kind of instructional use. "init" is easy enough to figure out, but there's no "add" step. Shame :)

<comment><USER2> Sorry, I wasn't expecting this to HN before I had written some porcelain commands. I pushed an updated README that explains how to write commits with this.

</comment></comment><comment><USER38> 10/10 on wordplay

<comment><USER39> It's cute, but it negatively impacts my ability to effectively advocate for the tool in my workplace.

<comment><USER40> So... That's a very good choice of name then. You shouldn't advocate for it.

</comment></comment></comment><comment><USER41> This is essentially adding a blob inside .git/objects by taking a sha1 hash of the data after appending a header "blog <length>\00<data>". Then the first two characters of the hash are created as a directory and the remaining 38 acts as the file name inside which the zlib compressed data is stored. Nice project for learning the git internals.

<comment><USER2> Well, it also includes creating tree and commit objects, and reading and writing the git index.

<comment><USER41> Yes, of course. I was mainly stating the starting point.

</comment></comment></comment><comment><USER42> Try and market this shit

</comment><comment><USER43> "Shellgrit" which I've heard used to recover from starting to say "shit" in circumstances where that isn't appropriate.

Better name and contraction of "shell git" ? Or maybe this is not something in common usage. Dunno.

</comment><comment> daniel-dev i like the name so that's why i read it

</comment><comment><USER44> wasn't the original version of git mostly entirely shell scripts?

</comment><comment><USER45> that means i can put shit on my busybox.

</comment><comment><USER46> I feel like the name was conceived before the tool in this case. Also, hilarious.

</comment><comment><USER47> I don't think anybody should be targeting plain POSIX shell anymore. There are much richer shells available almost everywhere.

</comment><comment><USER48> Unfortunately "rt" TLD is not a thing. Otherwise it'd be worthwhile to register sh.rt as an alternate domain for sr.ht.

</comment><comment><USER49> What's wrong with people nowadays? Couldn't they come with a better name ?

<comment><USER50> Git is already an insulting term where I come from - I remember one of our children, years ago when they were young, looking at my screen and saying "why are you typing _git_ ??" in a shocked sort of tone.

They're much less concerned about their language now.

I don't mean to overstate the case - it's not a swearword or the sort of thing you'd really censor, just a playground term for a mean person. All the same it's an ugly word and (however irrationally) this is one of the reasons I prefer Mercurial to this day.

<comment><USER51> Mercurial is also an insult. Both projects were started in response to a mercurial git's actions.</comment></comment></comment>


Dell XPS 13 Review - <AUTHOR> http://www.anandtech.com/show/8983/dell-xps-13-review <comment><USER2> A Developer Edition (with Linux preloaded) will come at some point.

Currently there are driver issues of which the non-working audio is most persistent. Most elaborate info on it here:

[https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1413446](https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1413446)

In this Reddit thread...

[http://www.reddit.com/r/linux/comments/2u0jjd/linux_support_...](http://www.reddit.com/r/linux/comments/2u0jjd/linux_support_is_terrible_on_the_new_dell_xps_13/)

...you find comment from barton808, who identifies himself as the Team Lead of Sputnik (= XPS13 Linux), and gives away that they are waiting/working on the same issues (to be resolved).

I think it will make a great laptop. I currently own an XPS13 old version, and think it is just a bit short of Apple hardware. I've heard this new one should be up to par with Apple's hardware while having an eventually more compatible hardware stack.

It will probably be the most powerful Linux-preinstalled ultrabook on the market, when releaed.

Fingers crossed it may be released soon. :)

<comment><USER3> I was excited until I read 8GB max... that can't be right can it? What modern developer machine would have an 8GB cap?

<comment><USER4> I'm curious, but why do you need more than 8Gb for ? I can think of a few potential uses of more RAM (large video files edition, R on very, very big data sets) but 8Gb seems reasonable for most tasks. Are you really in a situation where you need 16Gb every single day ?

<comment><USER5> _Are you really in a situation where you need 16Gb every single day?_

Maybe not every single day, but easily 3 days a week. Personally I could never consider owning a primary work machine with less than 32 GB of RAM, as that is just about enough (with some swap) to do something reasonable with a moderately sized data set in reasonable time, without having to try to get too clever. That being said, I currently have an MBA with 4 GB of RAM as a secondary computer to complement my workstation at work, and that's fine for most of my day to day programming tasks.

<comment><USER6> > Personally I could never consider owning a primary work machine with less > than 32 GB of RAM, as that is just about enough (with some swap) to do > something reasonable with a moderately sized data set in reasonable time

Suffice to say, you probably don't represent the average developer, or power- user. I can write code just fine without having to resort to 32GB data-sets. I think most other developers can too.

Not saying I don't acknowledge that some people may have such a need, but I don't see this is a big enough issue for enough people, to think it warrants making the already expensive developer edition even more expensive.

If you need 3-digit Gigabytes of RAM, have you considered just remoting into a server which has all the juice you need instead? In the age of the cloud, why on earth do you need all that power in your laptop? That just seems awfully backwards.

<comment><USER7> 32GB might be somewhat excessive for mainstream developer laptops, but 16GB is not. A pair of VMs (for various MSIE versions, isolated dev environments, ...), an emulator or two (Android, iOS, …), 2-3 browsers open (with many tabs in at least one of them) and an IDE and you've blown way above 8GB working set without working on any big dataset.

I'm currently on an 8GB machine and regularly have to pare down my working set to avoid swapping.

</comment></comment></comment></comment></comment></comment><comment><USER8> The interesting difference between this review and that of most others is that Anandtech endorsed Dell's claims of 15 hours of battery life.

Reviews like at The Verge[1] measured the battery life at 6.5 hours.

I trust Anandtech more than The Verge to conduct properly controlled tests, but it really does illustrate the point that usage has a far bigger impact on battery life on modern notebooks than it did in the past.

1: [http://www.theverge.com/2015/2/13/8030821/dell- xps-13-laptop...](http://www.theverge.com/2015/2/13/8030821/dell- xps-13-laptop-ultrabook-review)

<comment><USER9> Apparently simply disabling Windows Indexing increased battery life from 7.5 hours to 9.5 hours in some tests.

<comment><USER10> If you have a Pro or Enterprise edition of Windows, you can configure this:

1) Launch mmc (Win+R, "mmc")

2) File -> Add/Remove Snap-In

3) Group Policy Object Editor -> Add -> Local Computer -> Ok

4) Expand Local Computer Policy -> Computer Configuration -> Administrative Templates -> Windows Components -> Search

5) Find "Prevent indexing when running on battery power to conserve energy"

6) Enable -> OK -> Close

If you're on Home Edition then make a new *.reg file with the following content:

         Windows Registry Editor Version 5.00

         [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Windows Search]
         "PreventIndexOnBattery"=dword:00000001

And run it.

<comment><USER11> You can change steps 1-3 to just "Win+R, gpmc.msc"... which will take you straight to the group policy editor.

<comment><USER10> You have to install Group Policy Tools for Windows in order to have gpmc.msc on Windows 7 work from the run box.

Going through MMC works even on virgin Windows 7 pro/ent without installing anything.

</comment></comment></comment></comment></comment><comment><USER12> I had been trying to find a decent developer's laptop for some time, and it led me to the xps 13 "developer edition" (the predecessor to this one). Keep in mind that I _really_ wanted to like that laptop.

However, in the end, I went back to my macbook air. There were just too many small headaches to deal with. I'll list them here. I'd like to know if there are any improvements this time around. I'd be curious to know if they're going to do another "developer edition" for this new model.

1) The touchpad sensitivity was way off in ubuntu, and I couldn't use normal configs to tune it properly. Sounds like they fixed it.

2) The wifi range was very poor compared to mba.

3) Battery life was not as good as mba.

4) Ubuntu wasn't very good at scaling high dpi resolutions on smaller displays. The mba I have doesn't have a high dpi, and I don't need it for my work. FWIW, the retina class displays in the mbp all are perfect.

5) The mba are better balanced. The xps13 was a little wobbly since the weight was not well distributed. It was also slightly harder to open and close.

Honestly, all of these things add up. Darwin isn't a "true" *nix, but it's close enough for me. If I'm off the mark on these issues these days, let me know.

<comment><USER13> > Darwin isn't a "true" *nix, but it's close enough for me.

Yosemite is a registered UNIX 03 product.

[http://www.opengroup.org/openbrand/register/](http://www.opengroup.org/openbrand/register/)

<comment><USER12> Darwin to me is pretty much the poster child for "unix-like" operating systems: [http://en.wikipedia.org/wiki/Darwin_%28operating_system%29](http://en.wikipedia.org/wiki/Darwin_%28operating_system%29)

</comment></comment></comment><comment><USER14> It seems great, but I really need a 16GB RAM option. (At least they have the 512GB SSD)

With a couple of VMs, and a webbrowser, 8 GB can get tiny, and those machines don't evolve, so I'd like to plan for a couple of years...

<comment><USER15> I see ultrabooks more as secondary devices. You really run VMs on a 13.3" display? I can't see any portable PC totally replacing my desktop PC.

<comment><USER16> What do VMs have to do with the size of the display? How are the two even remotely connected?

<comment><USER17> I think he's thinking of VMs as in Parallels or other graphical VMs

</comment></comment></comment></comment><comment><USER18> I'm surprised that Dell managed to get back to this point, but I think Apple is no longer a no-brainer if you want a "nicer" build quality, and you can start differentiating based on support. I never thought I would buy a non- Apple laptop again, but I've actually been eyeing the Dell XPS and a friend's recent experiences w/ AppleCare makes me want to take every effort to find an alternative hardware vendor, assuming they can hit close to the same quality.

<comment><USER19> Man, I finally a few years ago got completely comfortable with OSX and scripted so much stuff that I can set myself up basically anywhere in 5-10 minutes. Now I'm stuck on a MBPr and get to watch all of these amazing new PC laptops come out that are so innovative. All of the hybrids, convertibles, detachable convertibles, rotatable convertibles. I'm so envious.

Come on Apple, seriously.

<comment><USER20> The MBP is not all that "pro" any more. Soldered components, the bare minimum of USB ports, no RJ-45 ethernet jack. I'd be more than willing to add thickness & weight to one in return for those features, and better thermal management.

<comment><USER21> I don't think those features are what make it "pro". I prefer it being thinner and lighter with soldered components rather than heavier without. RJ-45's are terrible on laptops, they're ugly, bulky, and hardly used. I'd much rather just use USB -> RJ45.

<comment><USER22> You can point to any feature (excluding reliability) and claim that feature doesn't make something 'pro'.

I know one senior sysadmin - the kind of guy other sysadmins go to for advice - who's getting a Novena laptop as his next machine for work. That thing doesn't come with a keyboard and exposes the motherboard when the screen is up.

</comment></comment></comment></comment></comment><comment><USER23> Nice looking unit. I'm going to look seriously at it, instead of a MacBook Air 11, for a travel machine.

Dell's claim of "a 13 inch display in the chassis of an 11 inch notebook" is reasonable:

Dell 13: 304 mm x 200 mm x 9-15 mm

Air 11: 300 mm x 192 mm x 3-17 mm

And the weights are within 100 g of each other.

</comment><comment><USER24> I ordered a XPS 13 in 2014 over the phone since there was a problem with checking out at the website at the time. I spent 15 hours (started logging hours after the 2nd) total fixing their mistake when I realized they didn't order me the developer edition. Those hours were also spent fixing the screw up of them sending it to the wrong address.

I did end up getting the laptop. It was pretty nice except I could hear an electrical hiss coming from the bottom of the laptop when the room was quiet.

I had a friend who had one and confirmed the sound was coming from his as well.

I sent the laptop back and spent another 2 hours with their "support" for that.

I'll never buy from Dell again.

</comment><comment><USER25> This laptop will most likely get official support for Ubuntu 14.04.

<comment><USER26> 14.04 is almost a year old?

<comment><USER27> 14.04 is the LTS release, most corporate environments using Ubuntu that I've encountered jump between the LTS releases due to the five year support cycle. Being that a fairly large portion of the Dell's customer base it does make sense.

</comment></comment></comment><comment><USER28> This turned out to be a longer first post than I though it would be. I don't know why people are comparing these "good" laptops to Apple laptops in specs. Apple laptops really have not been better than the best laptops. For every MBPr that has come out there has been a better laptop by one of the tops Asus, Dell, HP, Lenovo, Acer. The reason is I buy Apple is I need a stable operating system. The last 4 Windows based machine I owned crashed when I close/move/sleep/awoke it/plugged in another display (who would think that would crash a computer), the reason was drivers. I switched those laptops from Windows to try Linux and it was marginally better but again driver support did not fix those problems. I bought 4 non Apple laptops in hopes to get a good one.

When I switched to Apple I still faced issues bug only 1/10 the time as when I was with other brands. I hate apple operating system lack of getting things I want. I wish I could have stayed with Windows, I am hampered by using silly work arounds to play video games I love. Linux is great if I didn't have so many configuration issues, installing the correct video driver is a pain (I'm looking at you intel video cards). The system works.

I spent 20 years working on windows machines. The last 4 years Windows machines just have had more and more issues which pushed me to something that is stable and will work.

<comment><USER29> Honestly (and really, hear me out here). Alot of those crashes were device drivers for graphics cards. Windows 8 (I know... 8.1 isn't bad) actually moved the display drivers out of kernal space (at the chagrin of every game dev ever) and now at least the system/applications recover from a graphic driver dump.

Although I will say I'm having issues with 8.1 that I can't really peg down. Sigh. We've had a string of issues with mavericks/yosemite here at work so I can't say everything is all rosey either.

Ubuntu is pretty easy going as far as linux distros and working. At least when you throw recent but not bleeding edge hardware at it!

I'll agree that right now osx is probably the most stable of systems for developing but that comes at the expense of lack of some pretty critical software (well... lets be serious, games...)

<comment><USER30> What problems have you had with Mavericks and Yosemite?

<comment><USER19> Oh, I got this! Worst wireless reliability I've ever seen in a business. They keep putting out 'fixes' to wpa2 authentication and we still have constant issues in our office when going from WAP to WAP.

</comment></comment></comment></comment><comment><USER31> I got a custom built 13.3" Sony Vaio S. It's got 12GB ram, 1TB disk, Intel i7 at 2.9Ghz, 1600x900 display, Blu-Ray Reader/DVD-RW Combo, 3G modem, gbit ethernet, both VGA and HDMI output, 3 USB ports (2 of them 3.0) SD Card and MemoryCard and cost 987 GBP plus tax which I got back on my way out. Oh and it's got very good Linux compatibity out of the box. Resumes from ram without a hitch, I only reboot when I need to get something done with the kernel. I'm writing this while listening music via my bluetooth headset. Battery sustains around 2 hours of work, but it used to be better. It was leaps and bounds ahead of what Apple had to offer with its Macbook PRO line at the time at 2/3 of its weight, and I fear still is.

I'm looking at Dell's machine and yes it's got a higher resolution display (but is it _better_ at that display size? I hope!), and presumably an updated processor, but that's it. No nic, no disk spinner, less ports, no VGA, etc. Call me old-fashioned but I can't consider a laptop without a couple easy ways to get data on/off (e.g. ethernet ports, disk spinners) as a development workstation.

Top that and I'll pay you.

And shame on you, Sony, for not being able to properly sell today's market leader that you came up with two years ago. Shame on you.

<comment><USER32> And I'd call a computer with 2 hours of battery runtime a desktop with a UPS. :) I jest.

That said, I think the Dell is okay in terms of connections. There's seemingly half a dozen video output plugs at the moment, including one that's been around since 1952[0]. I'd rather buy 4 adapting cables than have more than one video out on a subnotebook.

Getting data on/off seems easy: there's wifi, there's 3 USB ports for everything else[1]. Spinning (optical) disks? Really? Might as well put a LTO tape drive in there. I'd have like Ethernet, too, but in those cases where you're most likely to need it (at home, in the office), it's easy to stash an adapter.

[0] I'm not even kidding. [http://www.dansdata.com/gz061.htm](http://www.dansdata.com/gz061.htm) [1] Also bluetooth. And there's an SD card reader, if your development process includes taking photos. External optical drives are like, 20 bucks.

</comment></comment><comment><USER33> I've had the high end version (i7 & hi-res touchscreen) for a couple of weeks as my primary development machine and so far is pretty satisfied

The keyboard is more plastic than for instance the Zenbook but good. I've had no issues with the track pad, two-finger scrolling works perfectly. Best trackpad I've had on a PC laptop (don't know what The Verge was raving about, maybe pinch gestures aren't as good as mac?)

As for battery issues, It does feel that it doesn't last too long, like 3-4 hours tops (I run Bitlocker & Chrome though so that has some impact). I don't think this is as much the laptops fault really as it depends mostly on having a screen with very high resolution and depending on how you configure power saving options, what kind of work you do etc.

I think it's pretty safe to say that the Xps "13 is the best PC laptop in this form factor right now until sharp releases the exclusivity on the screen in November, then Asus might give them a run for their money again.

To their credit I vowed never to buy a dell laptop again but they proved me wrong. A 14"-15" version of this laptop with more ram would be the ultimate though, larger screen so you can use the resolution better, more battery volume for a little better longevity.

I'm not so sure the hi-res version is the best option for developers because of the energy drain, especially if you need to work on battery for a whole day. The power pack buys you some time but very doubtful you'd last a whole day.

Also matte screens is often better than glossy for development, at least when working outside or where's there's sun.

Then again, you might need touch for development and the touch version with gorilla glass looks much better.

Personally the feature I'm dying to get now that we have almost bezel free computers are Amoled screens. Bezelfree where the true blacks of the screen blends into the little bezel there is would be truly droolworthy

</comment><comment><USER34> I own the generation preceding this (xps 13 9333) and use Ubuntu 14.10 on it. In general I'm pretty happy with it, though the coil whine is an annoyance. The touchpad is good, though if I'm being completely honest it's not _quite_ on par with that of the MBPr I use for work. 128GB hasn't actually been a problem, but I pretty aggressively offload all media on to owncloud so I'm not storing movies, pictures, etc.

I bought a refurb on ebay so it wasn't terribly expensive, but at list price it would be a little difficult to justify compared to a MBA. I bought it because I wanted to use Ubuntu as my primary OS and am not completely thrilled about giving money to a company that loves walled gardens.

</comment><comment><USER35> It's strange that no 28W Broadwell-U machines have been reviewed yet.

Since they have almost 2x of the power budget than the 15W ones, I expect them to be a whole different beasts for loads where you need both GPU and CPU to be active.

</comment><comment><USER36> _Amazingly, Dell claims 15 hours 12 minutes of battery life, and on our Light test we hit exactly that._

That sounds _really_ impressive. Congratulations!

I have mixed feelings when it comes to Dell. I use Dell U2713HM. Initially I got the first revision which had issues with a buzzing sound emitted when displaying a pattern on the screen. It completely died after a few weeks. I got a replacement (third revision) and haven't experienced any problems since.

I haven't owned a Dell laptop. How good are they when compared to other PC laptops and MacBooks?

<comment><USER37> > I have mixed feelings when it comes to Dell. I use Dell U2713HM. Initially I > got the first revision which had issues with a buzzing sound emitted when > displaying a pattern on the screen. It completely died after a few weeks. I > got a replacement (third revision) and haven't experienced any problems > since.

I have the same issue. You got it replaced? When I called Dell they sent me a refurb that had dead pixels and buzzed as well. I sent that right back. My brand new display also had a dead pixel from the start. And actually all you need to do to get that buzzing is to display a lot of text on the screen i.e. Wikipedia or something. It's super annoying when you're working in a quiet environment and all you can hear is BUZZZZZZ. I'm still kicking myself for not going with Eizo because Dell was $100 cheaper. I vowed... Dell, never again.

</comment></comment><comment><USER38> For those looking for a Ultrabook form factor workstation with 16GB RAM capability - the HP ZBook 14 looks like a great choice. Anandtech review here - [http://anandtech.com/show/8186/hp-zbook-14-review-mobile- wor...](http://anandtech.com/show/8186/hp-zbook-14-review-mobile-workstation- meets-ultrabook) . You don't get a ton of battery life out of it but there's a choice of bigger battery.

</comment><comment> at-fates-hands As much as I love SSD's, is 256GB actually enough for power users? Or are they assuming the OS will be on the SSD and you can hook up an external HD for more space?

Just curious.

<comment><USER39> What are your usage patterns?

I've found 256GB to be a bit of a sweet spot. I can't get everything I would ever want on the disc, but it's enough with maintenance and uninstalling things I'm no longer using to any great extent. And the performance advantage of an SDD is so ridiculously nice that I would never give it up for a bit of extra convenience.

If you're doing things that are seriously space heavy like video editing, you'd probably need an external storage source to make up the difference. But for coding and general use, I find it to be more than enough.

Saying that, I'm sure there are developers out there who couldn't live in 256GB. I'm not sure how common they are but I'm sure they exist.

<comment><USER40> _If you 're doing things that are seriously space heavy like video editing, you'd probably need an external storage source to make up the difference._

You'd probably need external storage either way. I used to have some friends who were big into video editing, they could chew through 1TB with just a few projects.

<comment><USER39> Fair enough, but if someone's producing terabytes of data I can't imagine that they'll be satisfied with any laptop's storage for too long.

</comment></comment></comment></comment><comment><USER41> Switched to Linux a few months ago after I got tired of running out of memory and CPU power on a 16GB i7 MBPr. My productivity has increased 2x. All those little customisations to OS that you end up doing when using Linux really do end up making your life a lot easier in the long run.

I think Apple is on the same path as Microsoft was more than a decade ago. They are losing developers.

</comment><comment><USER42> I own a 2014 XPS 13 and I absolutely love it, but my next machine will be a Macbook. The reason is pretty simple: resale value. Upgrading to the latest and greatest Macbook is absurdly cheap since you can sell your old model for close to the original price. Whereas I'll be lucky to get half of what I paid for my XPS 13.

<comment><USER43> _Upgrading to the latest and greatest Macbook is absurdly cheap since you can sell your old model for close to the original price_

Oh how I wish that were true. I have a 2012 15" Macbook Retina (8gb/256gb) that I bought for $2200. The typical price on eBay is around $1200. So, I can get about half, which is your lament about the XPS 13.

<comment><USER44> For a three year old, out of warranty, used, old laptop thats pretty impressive

<comment><USER30> I forget that 2012 is now 3 years old. My MacBook is a mid2012 non-retina MBP (with all the ports on it) and it's still absolutely fine but I know in the fashionable computer world, it's ancient.

Still fetches a good resale value though.

<comment><USER45> That one is a weird case because it's still the latest model of "classic"/non- retina MBPs. And, probably, the last.

</comment></comment></comment></comment></comment><comment><USER46> what about GNU/Linux compatibility? Are they going to release a version with GNU/Linux preinstalled?

</comment><comment><USER47> I just don't understand why vendors limit max memory nowdays. I mean, I have 8GB in 8 years old T61.

</comment><comment><USER48> Does the left usb port support full power devices like hard drives? The 2013 model didn't.

</comment><comment><USER49> It looks to me like a Macbook Air 13" is better in spec and at almost the same price range. Did I miss something?

</comment><comment><USER50> The single thing that prevents me from switching from a Macbook to a Dell XPS is the Apple trackpad. Think about it.

<comment><USER40> A nice little thought-terminating stance. Considering Dell computers can never have Apple parts.

<comment><USER39> If, after years of trying, OEMs still can't produce a trackpad on par with Apple's offerings, that's on them, not their potential customers who are turned off by the absence.

<comment><USER51> Maybe it's because of patents?

[https://www.google.com/patents/US8049736](https://www.google.com/patents/US8049736)

<comment><USER30> Very informative, thanks! I didn't realise how much I enjoy the trackpad (that is, don't fight it and curse at it) until I come to use a Windows laptop and pinch to zoom, swipe left/right etc. doesn't work.

In fact, using a MacBook in Windows is a frustrating experience as the touchpad doesn't work as it does under OSX.

</comment></comment></comment></comment></comment><comment><USER52> > 16:9

not even once

</comment><comment><USER53> Looks like Mac is still the best choice of a good quality *NIX laptop that works out-of-box. PC still has a long way to go.

</comment><comment><USER54> People I know, who have used this laptop (the previous avatar), never had a good thing to say about this laptop - from the extremely high prices to rampant overheating.

3 years back I went for an Air, and till date that's been my only iProduct - yes, the iPrice just doesn't make sense to me, price was the reason I didn't buy any other laptop but the Macbook Air. My needs were clear >= 4GB RAM, 100+ SSD being the prime needs along with extremely good battery life and extremely light-weight and solid machine (And I was indeed lured by the polished/pretty OS - but I do still love my xubuntu). Yes, Air delivered that. I am from India and at that time a comparable machine (wasn't one available really) was available for at least ~30% higher than the Macbook Air price and the that scenario is pretty much still the same (both the higher price part and "alternative not really available" part). (I guess it may not be the same in US or other western countries)</comment>


Introducing Background Sync Web API - <AUTHOR> https://developers.google.com/web/updates/2015/12/background-sync?hl=en <comment><USER2> This kind of capability will be very beneficial in making web apps behave more like a first-class native application. For example, I frequently "send" an SMS when I have no service knowing it will be processed later when the network is restored (without manual intervention).

</comment><comment><USER3> (Slightly tangential) does anyone else predict and hope for a looser coupling between client and server?

Even in the age of increased connectivity, an app or static client experience, rather than streaming (except for obvious cases like video and music), in my mind would greatly improve the web for the user. Especially if not every user action can be tracked with an AJAX request.

I've only started looking into building apps offline-first (late to the party) but with tech like CouchDB, service workers etc - it's becoming much easier to build a more decentralized online experience (and interestingly return to an earlier epoch).

</comment><comment><USER4> But is it going to be a general standard implemented in other browsers?

<comment><USER5> All I could find was this, from the article: "It'll be a while before all browsers support background sync, especially as Safari and Edge don't yet support service workers."

It talks about using code to check to see if it's supported in the user's browser under "Progressive Enhancement".

<comment><USER6> It's got a spec [https://wicg.github.io/BackgroundSync/spec/](https://wicg.github.io/BackgroundSync/spec/), and Mozilla is interested [https://groups.google.com/a/chromium.org/forum/m/#!topic/bli...](https://groups.google.com/a/chromium.org/forum/m/#!topic/blink- dev/t9apD7cQb6I)

</comment></comment></comment><comment><USER7> This is exactly the kind of functionality that I was missing when I was building Toc [1], a decentralized messaging app built on web technologies and Cordova.

Since mobile devices tend to pause apps rather aggressively, getting the Cordova app to retry message sending in the background required messing with native plugins, and getting the browser app to do this was simply not possible at the time.

Glad to see this feature finally become a proper web standard!

[1] [http://toc.im/](http://toc.im/)

</comment><comment><USER8> This should be great. I work on a Cordova app where data submissions by the user are queued in some custom iOS code and regularly attempted if there is connectivity. When I read about Service Workers it sounded like they would be able to do this as part of standard HTML, but I didn't see any examples of people using them that way.

</comment><comment><USER9> With great power, comes great responsibility.

edit: nvm, didn't see execution time cap

</comment><comment><USER10> > Open Emojoy.

FTFY:

> Open Emojoy. In Chrome.

<comment><USER6> This is covered in the paragraph before. "if you want to try this you'll need either Chrome Dev for Android, or Chrome Canary for desktop."</comment></comment>


High Performance Ruby  - <AUTHOR> https://speakerdeck.com/headius/high-performance-ruby-e4e-conference-2013

<comment><USER2> Title sounds like an oxymoron. [Ducks and covers]</comment>