OK Doomer - <AUTHOR> https://aelkus.github.io/games/2020/01/30/doom <comment><USER3> The early versions of counter-strike had a famous bunny-hopping bug where you could cover 40% more ground than simply walking (jumping had a bug where the X and Y coordinates were individually calculated, so if you moved in both directions at the same time you would cover sqrt(2) ground)

It was a skill honed and part of the fun of the game. Then in version 1.3 they removed it because it was a 'bug' \-- they basically removed the mini-game of bunny-hopping and the first 30 seconds that were all about perfectly executing bunny hops to get into position were replaced by a monotonous boring walk.

Such a shame that the monotony of real-life is added to games.

Anyways, I think the author should try Overwatch -- it's one of the few contemporary widely played FPSs that doesn't take realism too seriously.

<comment><USER4> On the opposite spectrum of simple exploits by jumping, we have Tribes. In the original game, people quickly realized you can exploit the physics engine by jumping, allowing you to quickly traverse the terrain. It became known as "skiing".

The devs, rather than patching it, incorporated skiing into Tribes 2 and has been a staple ever since. And also, while Counter Strike has become a massive success and has thousands of players today. Tribes (while it was successful at the time) has become a niche game that quickly weeds out newcomers and hardly anyone plays it anymore.

Not saying that there's a correlation, I just find it amusing.

<comment><USER5> It's just a bummer that Tribes: Ascend (the last installment of Tribes) went downhill quickly and became dead. No other FPS game can match the sheer joy of shooting other players with projectile weapons while skiing midair at 200km/h...

<comment><USER6> Tribes: Ascend was really good. It was a labor of love for the developers who worked on it.

Sadly, it was abandoned and taken over by cheaters. Also, it was never as moddable as the original Tribes was, and since there were no private servers, there was no way for the community to pick up the slack after Hi Rez abandoned it.

</comment></comment></comment></comment><comment><USER7> Contrary to my expectations, this article is about the venerable game Doom and not about [https://en.wikipedia.org/wiki/Doomer](https://en.wikipedia.org/wiki/Doomer).

<comment><USER8> I'm pretty sure the pun is intentional.

<comment><USER9> The main pun is with 'OK Boomer', though [https://en.m.wikipedia.org/wiki/OK_Boomer](https://en.m.wikipedia.org/wiki/OK_Boomer)

<comment><USER10> There are zoomer, doomer, and even bloomer variants of the "OK Boomer" meme. The author is likely riffing off of those riffs.

</comment></comment></comment></comment><comment><USER11> When the shooters moved from 2.5D sprite-based (Doom 1&2, Duke Nukem 3D) to 3D ones, something important was lost: restriction on performance many that no longer you could fight hordes of enemies, because computers of the day couldn't display them all fast enough. So, enemies got fewer, but tougher, and no longer you could experience the same sheer carnage as fighting hundreds of imps at once.

It was quite a while since I last played a 3D shooter (likely, HL2 Episode 2), so I don't really know if there is something out there that has a similar feel to good old Doom games.

<comment><USER12> The newest Doom released in 2016 brings back that onslaught in a modern 3D engine. I forget the exact name but I think Mount and Blade had a lot of enemies on screen. It's a medieval combat game. I'm not sure if Devil Daggers counts because it looks so primitive it might be an engine running 2.5D.

<comment><USER13> I have the original Mount and Blade, never got a chance to delve deeply. Does it handle well on Win10?

<comment><USER14> Checkout Expanded Gameplay 3 for the original Mount and Blade. It's probably the most fun gaming experience I've had (second to Brutal Doom though).

<comment><USER13> Might be too late to get a response but do you have a TLDR of the differences?

<comment><USER14> It's so much faster paced. You feel powerful. Weapons feel real. Horses have real inertia. It's more arcadey, but that's the premise. It's just plain brutal fun.

Give it a whirl, and make sure you choose The Olde Knight or the Steppe Prince. And please reply if you do try - it's a lost masterpiece that the original mount and blade should've been

</comment></comment></comment></comment></comment></comment><comment><USER15> I disagree with the point that as a pure carnage simulator, "Doom is the closest thing you will be to a pure instrument of destruction whose sole function is to search and destroy", and that it stands the test of time as the greatest in the genre.

The Serious Sams, Bulletstorm, Painkiller (and others) have taken the Doom experience of finding a horde of somethings and killing them into the modern era, each with their own take.

Serious Sam expanded the levels and monster counts to a grotesque scale, allowing for perverse satisfaction in watching and killing off a distant and vast sea of fodder running towards you.

Bulletstorm lightened the mood, and as a precursor to the Gears of War series, was the first in my mind to make the action movie tropes of kicking and punching things, coupled with cheesy banter, genuinely pleasing.

Painkiller took the heavy metal influences, and merged them with some of the great settings from the previous century of horror novels and coupled it with immersive and creative level and weapon design.

I definitely believe that Doom was the original seminal piece in the genre, a Tolkien-esque work. But mankind has improved on the experience in the years since. Try those out too.

<comment><USER16> I've played the Serious Sam games and I don't see them as improvements on Doom. They take a rather narrow aspect of Doom and make an entire game out of that. Sure, there are times in Doom where you need to clear out big rooms filled with monsters, but Serious Sam is _only_ that. One of the strongest points of Doom IMO is the level design, and that's entirely lost in the Serious Sam games, because at best they're just a sequence of arenas, and at worst there is some obvious collect-four-things "puzzle" in the way of an entirely linear progression.

That's not to say that I didn't enjoy them, but they're definitely different beasts rather than improvements on Doom. In my view that's kind of like saying that Gauntlet is an improvement of the experience in Ultima.

<comment><USER17> Serious Sam shifted into a whole new dimension with co-op multiplayer, huge outdoor spaces and huge end of level bosses.

Playing with a few friends, the atmosphere of watching your team mates far away in the distance, launching salvos of rockets up at some giant monster, which is even further away in the distance, while running non-stop from hordes of screaming enemies, to the tune of mad techno beats and endless explosions has yet to be beaten in my mind.

<comment><USER18> It obviously doesn't matter now but at the time Serious Sam ran GREAT on toaster PCs

</comment></comment></comment></comment><comment><USER19> Looks to me like the author should try Splatoon 2

\- moving fast in non realistic patterns? check

\- not being dragged down by realistic limitations? check

Its network stack is garbage, but from any other point of view (speed, strategy, system, weapons, visuals and music) it's I think the best FPS we have in this generation. And personally I'd say ever.

<comment><USER20> Splatoon also has some of the cutest style and fashion aesthetic in any media ever.

We could really use more bright and colorful future-fi, as opposed to the usual bleak and dark dystopian "cyberpunk" aesthetic.

<comment><USER21> Cyberpunk aesthetics tend to include splashes of bright neon color counterbalancing inky blacks -- a game like the 2009 Syndicate still looks pretty flashy.

On the other hand, games that seem to take visual design cues from metal albums (looking specifically at games like Dark Souls and Bloodborne) tend to have an all-grey look that quickly bores me.

</comment></comment></comment><comment><USER22> Periodic plea to Splash Damage (or whoever holds the rights) to re-release Enemy Territory, gameplay and maps unchanged, with a modern renderer and high- resolution models and textures. Pleeeeeeeeeeeeeease?

<comment><USER23> Oh man, that brings back memories. ET was a great game, one of the first multiplayer games that I've "really" played so there's a heavy dose of nostalgia attached to it.

I was particularly fond of the 'trick jumping' maps. Spend hundreds of hours just on those.

<comment><USER22> Same here :) It was my first online game, and I sunk a massive amount of time on it. It ruined FPSs for me. Haven't enjoyed another FPS, online or not, nearly as much since, with the possible exception of Heroes & Generals which I've been playing a bit recently, and has a similar vibe to it.

I used to play the standard maps, mostly. So elegantly designed, so beautifully balanced. Just loved playing an engineer.

<comment><USER23> Yeah - modern FPS games don't do it for me either, mostly the "realism" bothers me. Especially in the map design or the physics. Plus the million choices you need to make. If you play any of the new CoDs you have to choose between a million perks, weapons, add-ons to those weapons. Same for BattleField.

I've enjoyed the 2016 rendition of DOOM though, also the multiplayer with silly game-modes like "football" / freeze tag. I'd have liked an "instagib"-style game mode though, that was my favourite in JK2

</comment></comment></comment></comment><comment><USER24> I prefer the original Quake to Doom as the best arcade style FPS. Doom is too limiting to me in it's movement and level design. Quake still has the abstract level design and that makes it the only 3d FPS that I've ever played to make true use of 3d space. It's almost like parkour as you're flinging yourself from surface to surface, doing rocket jumps, all while spinning in the air and destroying hordes of creatures. It's Doom but more agile.

<comment><USER25> Doom is usually called 2.5d because it's basically simulated 3d.

<comment><USER26> I've seen two mildly differing explanations for this particular version of rendering visuals being called 2.5D, one that it's 2.5D because the geometry looks 3D, but the actors are all sprites, the other is that the geometry looks 3D but it's actually a 2D floorplan with tricks to simulate different heights.

There's also at least one another unrelated "2.5D" use, when the world is 3D, but the player moves on a strictly 2D plane.

<comment><USER27> Also the fact that the player would just look straight forward the whole time, so when shooting at an enemy at a higher/lower elevation you just needed to overlap him on the X coordinate on screen.

</comment></comment></comment></comment><comment><USER28> Loved Doom, but preferred Quake. The latest iteration, Quake Live (now on Steam, cheap) is my favourite multiplayer online game.

<comment><USER29> Man, Doom blew everyone's mind when it showed up at work. Total productivity killer. FPS on PCs, Apples and Macs were pretty crappy prior to that. Hexen was creepier and improved the game play. Descent (non ID) was a great multiplayer and had better 3D. Finally everyone was itchin' for Quake because NIN was blowing up huge in 1995. Too bad the last level at it hard. Quake 2 had a great objective with cool bosses and much better level editing than Doom. ... And then, too many goddamn games to keep up! 1996 + Diablo I is about when I just got overwhelmed...

<comment><USER30> Most people I knew burned a copy of the cd, and proceeded to wear it out in their cd player. Back then they just coded half the cd as audio and the CD was basically the new NIN ep. Those were the magic and fusturating days of bonus content on CDs. I wonder how such content will be saved in the future? Playing "hidden track.mp3" really isnt the same as finding track 99 and hearing a song after the 10min of silence buffer to fool you.

</comment></comment></comment><comment><USER31> I still play Doom using GZDoom and use the Brutal Doom mod. Fun as hell and there are dozens of great megawads to play. The Brutal Doom starter pack comes with the hell on earth collection which a really good remake of the original Doom 2. I must have played through a dozen times. One amazing WAD is the Japanese Community Project which has some mind blowing maps. It has a level which when viewed in the 2D map is a multi pane comic of the level you're playing.

And the gameplay is fast. You move fast, shoot fast and die fast if not careful. The latest Doom felt like your character was walking through deep mud.

<comment><USER32> I thought the speed of the new Doom was too low, too, but I think the bigger problem is the number of screen- and movement-locking events. Every time you pick up a key or do a finisher move, you have to wait 1-5 seconds for an animation to play out.

I think Doom 2016 is a pretty good and especially gory Serious Sam game. But it's certainly not Doom.

</comment></comment><comment><USER33> > Realism is moving at human speed, experiencing fatigue, reloading and hiding > behind cover, and guns that recoil when you fire them. Well, pseudo-realism > anyway – you really don't want the "real" in gaming.

Sounds a bit biased. My favorite FPS (pubg) has all of that, and it is what makes the game enjoyable. There is even bullet velocity and drop, so you need to account for moving targets and parabolic paths.

<comment><USER34> Compared to games like Escape from Tarkov, PUBG doesn't even get close in the realism department.

But that is perhaps the authors point, because games like EFT are certainly not games for everyone, while PUBG can be fun to most people.

Most people:

\- Don't want to keep track of magazines which they can _swap_ and which you have to reload slowly bullet by bullet, they'd rather press reload and end up with a full magazine in their weapon again.

\- Don't want to think about ammo types of which some will be utterly impractical in certain situations or about bullet penetration. They'd rather have 1 ammo type that fits in their gun that does 20 damage per hit.

\- Don't want to deal with their character having a broken leg or arm, being dehydrated, hungry, bleeding, in pain, or suffering from some other medical condition after a firefight that requires attention and will impair their ability to see, aim, walk, etc. They'd rather "use medkit" and be done with it.

\- Don't want to think about weapon/gear durability or taking their weapon apart/changing parts in a weapon they will likely lose on their next raid anyways.

All that stuff is something for people who enjoy more of a survival type gameplay. For everyone else systems like gear, health, reloading, ammo etc. are usually simplified to be fun.

On the other hand, systems you don't usually have to take away from without sacrificing fun are noise (step sounds, reloading sounds, moving in vegetation, moving slow, moving fast etc. etc.) and ballistics (bullet drop, ricochet, bullet penetration).

</comment></comment><comment><USER35> The best FPS game you can play right now is Escape From Tarkov. There is no other game that captures the fear of screen death and the adrenalin rush that you get, when you escape with your precious loot so well. The overall game loop is very addictive though...

<comment><USER36> Been playing it on and off for a few years now. It's fun but far from done.

</comment></comment><comment><USER37> One part of the DOOM portverse I have enjoyed recently is DOOM in VR with GZDoom - h[https://github.com/Fishbiter/gz3doom](https://github.com/Fishbiter/gz3doom)

<comment><USER38> Have you got the improved voxel weapon models working? I've tried this a couple of times but can't get past the crudely assembled billboard weapons. I downloaded WeaponsForVR.pk3 and another one (I think BR_VR_something?) but it doesn't seem to load them.

I never played the Doom games when I was a kid and I've been working my way through the whole series. Finished Doom VFR and Doom 3 BFG Edition in VR, done most of the original Doom, and almost finished DOOM (2016). They're great fun and the DOOM (2016) soundtrack is amazing.

<comment><USER38> (Too late to edit, but apparently I needed to set "Sprite Weapon Mode" to "Fat Item" in the VR options.)

</comment></comment></comment><comment><USER39> Unrelated but I really love the CSS and design of the site!

<comment><USER40> I went back and noticed that the first character of menu names is highlighted. It's useless TBH since you can't alt select the menu items. Overall the site is pretty clean though. Should probably set max-size on article, it's hard to read on widescreen because of long lines.

<comment><USER41> I don't understand how to 'alt select' anything, what is it for?

I don't mind the the numbers of word/line in my full HD 15.6" laptop screen, in fact, and I actually hated the 80 words/line pattern like articles at medium.com. Are you on 4k wide somehow?

</comment></comment></comment><comment><USER41> Doom is ported to browser

1\. [https://news.ycombinator.com/item?id=18817278](https://news.ycombinator.com/item?id=18817278)

2\. [https://doom.fandom.com/wiki/Wasm- doom](https://doom.fandom.com/wiki/Wasm-doom)

3\. [https://wasm.continuation-labs.com/d3demo/](https://wasm.continuation- labs.com/d3demo/)

</comment><comment><USER42> I don't know, I've never played doom when I was a kid, and every time I try to get into it I just get bored after few levels. On the other hand, I'm happy to play Doom 2016 a lot and have completed it multiple times. I suspect certain games just don't age very well, even though I can totally see why it was as revolutionary as it was when it came out(if you haven't read "Master's of Doom" yet, you absolutely have to).

<comment><USER43> Can you cite a 1993 game that you think aged better than Doom? When Quake came out, the full 3D enemies and environments blew everyone away, but the kinetic gameplay was lost. You don't really get this in the first few levels of Doom, but as you progress on the harder skill levels you start to face an obscene quantity of enemies, which combined with the raw player speed and mostly-2D aim create an intensity that was lost in 3D FPS genre.

<comment><USER44> Not on PC - the point-and-clicks aside - PC gaming back then was horrible, Doom was an absolute revolution when it game out.

Sam and Max was released in 1993 though I'd argue that it's hurt much more by the graphics than Doom is.

On console? A fair few, with Secrets of Mana being the pick of the bunch. It's still a fantastic game in 2020. After that you have Super Mario Kart and Super Mario All-Stars.

<comment><USER45> If we include consoles, then I'd put "The Legend of Zelda: A Link to the Past" in there, from the same year as "Super Mario Kart". That was a good year for SNES.

</comment></comment></comment></comment><comment><USER46> Does anyone else see a rendering artifact (looks like a really fast cursor) moving through the page? Happens in my Firefox and Chrome.

<comment><USER47> It's not a rendering artifact; it's an actual div moving with JS.

(box glyph stripped out by HN)

Search for "cursor386" in bootstrap.min.js, there's a setInterval loop that moves it around.

Appears to be from [https://github.com/kristopolous/BOOTSTRA.386](https://github.com/kristopolous/BOOTSTRA.386)

<comment><USER46> Amazing

</comment></comment></comment><comment><USER48> Well I do have played Doom as a kid when it was released and while I totally get that half of the experience with it was _being_ a kid/teenager, I can still remember as if I'm still there the fear, the dread felt and my heart beating in my chest when playing it at night with the headphones on. And it was just a bunch of pixels (and sounds).

</comment><comment><USER49> Odamex is also a pretty good multiplayer port.

Here's a 160 person CTF game: [https://www.youtube.com/watch?v=Rr5pA9t1Z0A](https://www.youtube.com/watch?v=Rr5pA9t1Z0A)

Here's some highlights from the CTF league: [https://www.youtube.com/watch?v=o41hDzqaXpU](https://www.youtube.com/watch?v=o41hDzqaXpU)

Highly encourage getting involved (www.doomworld.com), it's a blast and the barrier to entry is basically zero.

</comment><comment><USER50> If you are into Doom, check out the WAD that John Romero published for Doom's 25th anniversary

[https://www.romerogames.ie/si6il](https://www.romerogames.ie/si6il)

Some coverage about it here:

[https://venturebeat.com/2018/12/10/john-romero-reveals- sigil...](https://venturebeat.com/2018/12/10/john-romero-reveals-sigil- megawad-for-the-original-doom/)

</comment><comment><USER50> At the surface level, Doom was about killing monsters. But it was also about navigation, finding keys, and budgeting your ammo, health.

<comment><USER29> And chainsaws. Let's not forget chainsaws. I don't recall gore like that in a game ...maybe Postal and Syndicate... but it was pre-Duke Nukem.

<comment><USER50> As a player, I spent most of my time finding the key to unlock some door, rather than killing monsters.

<comment><USER51> I think Doom changes with subsequent replays. After a while you start to learn the layout of the maps. They stop being mazes and start being puzzles, where you know where all the pieces are but the difficulty is in finding the optimal route to accomplish your objective.

<comment><USER50> There are many WADs out there for Doom with extra content and levels to play.

</comment></comment></comment></comment></comment><comment><USER52> Similarly, I used to play a game called San Francisco Rush, which was all about driving off of hills in sports cars and getting absurd amounts of air. It was essentially a high-speed gliding game where you try not to smash into buildings on your descent. It was absurdly fun and not at all realistic.

</comment><comment><USER53> I believe 2.5D graphics is a term and it means not the type of graphics in Doom. Rather the one in Ultima, or SimCity.

<comment><USER24> It means something which looks 3d but is actually 2d under the hood. Doom looked 3d through a combination of techniques but the maps were 2d, Ultima and simcity look 3d because of the isometric perspective but are still just 2d tiles.

<comment><USER54> Maybe the later ones, but the first SimCity doesn't even look 3D.

</comment></comment></comment><comment><USER55> I play a lot of OpenArena and I must say it's still a lot of fun, especially with friends.

</comment><comment><USER56> Doom was fantastic. The only way I was able to complete my CompSci degree was through lots of Doom and Metallica while I coded....

<comment><USER57> You played Doom, while coding?

<comment><USER56> Of course! My brain works better when highly stimulated inbound, bc coding is rather monotonous to me. I'd use bits of quiet to plan what I was doing - <USER2> lots of external stimuli to help me get through the many boring parts of implementation

</comment></comment></comment><comment><USER58> Isn't there a new ray traced version of Doom that just came out? Graphics look amazing!

<comment><USER58> Oh I was thinking of Quake. There is also a Doom 64 re-release coming, but don't think that'll have the RTX treatment.

</comment></comment><comment><USER59> As someone who has finished Doom multiple times on the hardest level of difficulty, I really see no point to first person shooters. BOOORRRIIINNNGGG!!! Give me "Eye of the Beholder" or "Hired Guns" or "Dungeon Master" any day over senseless, repetitive violence; the atmosphere is orders of magnitude better.</comment>


UK launches program to explore removal of greenhouse gases from the atmosphere - <AUTHOR> https://www.carbonbrief.org/uk-launches-world-first-research-programme-into-negative-emissions <comment><USER2> BECCS is probably the most realistic option: [https://en.wikipedia.org/wiki/Bio- energy_with_carbon_capture...](https://en.wikipedia.org/wiki/Bio- energy_with_carbon_capture_and_storage)

... because removing carbon from 99% pure flue gas is a lot easier than removing carbon at 400PPM from the atmosphere.

Even if every bit of farmland on the planet was growing sugarcane for BECCS, we still would only pull ~9GT/y out of the atmosphere, on par with our current net emissions.

Of course, solving climate change is not actually a difficult problem. A $50/ton carbon tax would make all of these things profitable, including CCS on existing natural gas plants.

(source: climate R&D group)

<comment><USER3> What is your take on phytoplankton?

<comment><USER2> Unfortunately I am not the right person to ask on phytoplankton, but the main concern I have is about geologic stability. Noteably the percentage of the bloom that actually stays out of the food chain.

The models for this, when I spoke with some oceanography folks, were still really fuzzy.

</comment></comment></comment><comment><USER4> These type of solutions seem like the only reasonable ones to address climate change. Goals of cutting carbon emissions often tend to be misaligned with other activities that would be hard to stop en masse, such as everyone still driving a fossil fuel emitting vehicle, farms using fertilizer to grow their crops or individuals who want to use their AC because they're hot.

Sure it'd be great if we find alternatives to a majority of things that contribute to carbon emissions, but then there's the difficulty of getting everyone to use these alternatives across the board (along with the messy politics of it) and if you succeed at that, you'll still have to deal with other countries who aren't going to change their habits. It's essentially a global game of whack-a-mole. And it needs to happen soon. Some scientists claim we're already beyond the ability to reverse climate change by eliminating these activities.

Given what we're up against, it seems far more reasonable to explore ways of negating our emissions, terraforming the planet or trying to find a way to live on a far less hospital earth. I'm all for continuing our march towards a globally smaller carbon footprint, but it should be done concurrently while we try to address the sobering possibility that it might not be enough.

<comment><USER5> > _These type of solutions seem like the only reasonable ones to address > climate change_

Equally important:

\- Reducing consumption (which, in my experience, _increases_ happiness)

\- Having fewer babies

<comment><USER6> But who and how will you limit the babies? For example, babies from the Middle East will outpace European babies by a large number. Should Europe limit immigrants' ability to conceive? If so, how? Would you force sterilization? Would you trade money for sterilization? This general idea is fraught with moral problems.

<comment><USER6> Why the down votes? Would some people say why they are against talking about how the human population could enforce the idea of limiting itself? Given that it goes against the core biological imperative, I don't think I'm wrong in asking this.

<comment><USER7> You are not wrong in asking this, but the way you asked led people to believe that you are against such a thing, and people who object to what they perceive as your belief will down-vote you.

As Scott Adams has so rightly pointed out, we are victims of our bias, and it is very difficult to think coherently on an emotive subject like this.

</comment></comment></comment></comment></comment><comment><USER8> Any ideas what kind of DIY experiments I could do to replicate/outperform them on carbon sequestration? If they're the first group in the world to work on it, I imagine there's a lot of potential for hackers to fiddle. I have access to hardware lab and biohacker lab.

<comment> semi-extrinsic They're _far_ from the first group to work on it. Just for a sense of scale, the International Energy Agency (IEA) oversees the Greenhouse Gas Control Technologies conference (GHGT) which has been going since 1997. It's the main Carbon Capture and Storage (CCS) conference, held every other year, with more than a thousand people attending.

As one concrete example of companies working on direct capture from air, ETH Zürich has a spinoff/startup called Climeworks, who have alredy built machines that do this. They started in 2009 and did e.g. a $3 million series B round back in 2014. Currently assembling their first large-scale plant AFAIK. (No affiliation to the project. I'm not really a believer in direct air capture myself, I don't think we'll ever see the cost become low enough for large scale adoption. US DoE has estimated the cost will be around 6x the cost of capture from e.g. natural gas powerplants, so I think it makes much more sense to focus on that.)

<comment><USER8> [http://www.climeworks.com](http://www.climeworks.com)

Cool company, and a serious looking machine, thanks for sharing!

I also like what they're up to at OakBio: [http://www.oakbio.com](http://www.oakbio.com)

firstname.lastname@example.com

</comment></comment></comment><comment><USER9> The question that always springs to my mind when "brute force" solutions are brought up is: with what energy? Separating C from O2 inherently takes a bunch of energy, same as reacting them releases a bunch; it's the whole reason we're in this mess. Often the answer is handwaved as "renewables", but then you've pulled a fast one: if you have enough renewable energy to undo the damage done by fossil fuels, you have enough to replace fossil fuels entirely and then some. If we're postulating magic energy sources, far better to use them directly than to try and offset the continued burning of carbon.

<comment><USER10> I work in cleantech, and the smart people working on carbon capture and conversion (Opus12, etc.) are assuming renewable prices will drop to the point where they can use excess power to run the catalyst reactions needed.

Unlike the grid, carbon capture power doesn't need to be dispatchable. So you don't need to worry about the intermittemcy of solar and wind.

The same strategy is true for water desalination. They can run the plants whenever there is cheap power.

<comment><USER9> So, I'm not saying it's a bad idea, necessarily; but since it all boils down to power, at that point aren't you basically just using atmospheric carbon as a... battery?

Especially if you compressed your sequestered carbon into nifty charcoal bricks and burned them for fuel, instead of wasting all that effort digging up coal...

</comment></comment></comment><comment><USER11> "Worlds first" seems to be exaggerated [1]. Nevertheless this may become very interesting as power2gas becomes commercially feasable with cheap solar power like the 2.4ct/kWh farms in Dubai. Transporting gas from the farm to the user and transporting CO_2 back might be one option, carbon capture another.

[1] [https://www.newscientist.com/article/2091214-first- commercia...](https://www.newscientist.com/article/2091214-first-commercial- carbon-capture-plant-set-to-open-in-switzerland/)

</comment><comment><USER12> Well, photosynthesis has been deployed some million years ago and works rather well. Stop deforestation, manage forest wisely and start using wood again. 1 m3 wood = 1 ton of CO2 sequestered.

<comment><USER13> Wood isn't an effective means of sequestration unless you also bury it.

And it isn't going to fix things in terms of sheer volume either. We've cut down forests _and_ burnt fossil fuels. Replenishing forests only reversed the effects of the former and doesn't account for the carbon released via the latter.

<comment><USER14> >Wood isn't an effective means of sequestration unless you also bury it.

This is patently false.

 _Yes_ each individual tree is only a temporary store (with a half-life somewhere around 100 years), but that's ok because the forest as a whole is continually generating trees, and sequester CO2 in the form of soil. Trees also create conditions that protect that soil from erosion and re-emission (protection from wind, rain, and evaporation).

The total anthropogenic CO2 emissions since the industrial revolution works out to only 30 tonnes of carbon per hectare, which is a few inches of topsoil or a few additional trees per hectare. It's easy to soak up that much carbon just in biomass on the surface.

Even in farmland the addition of selected "farmer's trees" (carub, honey locust, acacia, leucaena) can be used. These are selected species of tree that actually _increase_ yield when planted into a field at 20-30/acre, despite casting some shade on the crops. These trees typically have deep roots that harvest minerals and recycle nutrients that would otherwise leach down to the aquifer, and their root system can coexist with crops right up to the butt of the tree. The nutrients are dropped as mulch, and they also make nutritious pods for animal feed.

<comment> david-given ...plus, if you're careful, you get to use the wood for things. Obviously you can't burn it, but sequestered carbon remains just as sequestered if you build buildings out of it than if you left it in the forest --- frequently better, because preserved structural wood doesn't rot as quickly as a dead tree in the forest.

Of course, you still need a lot of trees. The internets say that a rough rule of thumb for the amount of carbon in a tree is about a tonne. Therefore, given current carbon emissions of about 10^10 tonnes a year you'd need to plant more trees than that --- every year. (And then wait multiple decades. This isn't a short term solution.)

As you say, another reason to plant them is for local benefit. You don't mention that trees also regulate the local microclimate; they tend to make rain, for example. When Cyprus was deforested, it got a lot drier. I knew someone who was working to try and reforest a lot of it with the explicit goal of trying to fix some of the water supply issues; I don't know if they got anywhere. And, of course, they're just nice to be around.

Recent research show that there are about 10^12 trees in the world.

[http://www.npr.org/sections/goatsandsoda/2015/09/02/43691905...](http://www.npr.org/sections/goatsandsoda/2015/09/02/436919052/tree- counter-is-astonished-by-how-many-trees-there-are)

<comment><USER14> >You don't mention that trees also regulate the local microclimate; they tend to make rain, for example.

Good point. I'm usually so eager to mention that, too!

Trees regulate not only the microclimate, but the macroclimate as well. Isotopic analysis shows that about 80% of all terrestrial rainfall is caused by transpiration from trees and other plants. Trees essentially act as a giant inland irrigation network, using solar power to transport water via the airstream to power the water cycle. [https://www.nature.com/articles/nature11983](https://www.nature.com/articles/nature11983)

So trees cause rain. This explains why deforestation causes desertification. I would also recommend the excellent Greening the Desert documentary for an example of the reverse process. [https://www.youtube.com/watch?v=2xcZS7arcgk](https://www.youtube.com/watch?v=2xcZS7arcgk)

</comment></comment></comment></comment></comment><comment><USER15> This couldn't come too soon. We need to start developing the geoengineering knowledge to address climate problems, including problems we don't know about yet.

</comment><comment><USER16> They should ban diesel cars and cabs first and restrict trucks off the roads during rush hours. I can barely breathe when I cycle in Central London.

<comment><USER17> The particulate pollution that makes city air unhealthy is a totally different issue from carbon pollution and climate change.

<comment><AUTHOR> Burning less, eg in engines and heating stoves, would very much help both.

<comment><USER18> Those are things that should happen anyway. But no joke the world is not in a good place with how things are presently regarding climate change.

Two parts of carbon pollution are difficult. 1\. It's a diffuse source pollution problem. You can look a coal fire plant, and yes these are great contributers but so are cows and just general agriculture. Emissions come from everywhere!

2\. dealing with gaseous carbon pollution is also tricky because its up high and CO2 is reasonably stable. If we are going to try and filter air from the atmosphere we are probably going to have to either look at biological sequestration solutions ie. algae etc or energy expensive options to break down the carbon.

And conservation of mass being what it is we are going to end up with a lot of waste to store.

And that article talks about 8 million pounds....oh well.

</comment></comment></comment></comment><comment><USER19> The world adopting a vegan diet would stop the production of a huge majority of greenhouse gases

<comment><USER6> Only if you kill all cows. Or most farmed animals. I'd be interested in numbers around emissions created by now trying to produce enough produce for the world.

<comment><USER20> If people stopped eating beef and dairy then farmers wouldn't be breeding cows.

<comment><USER6> You still have a left over population. Are you going to destroy whole species? You would need to cull all of the domesticated animals to remove their impact. Otherwise you don't solve the problem or have ferrel chickens and cows roaming about causing havoc on the environment.

<comment><USER20> We "cull" all the domesticated animals every couple of years already. If we really wanted to handle this we would just stop breeding new stock.

</comment></comment></comment></comment></comment><comment><USER21> Dear god, there i was investing all my money in land that would become future coastal - and or harbour property depending on a flood prognosis map for 2050. And now i have to reverse all this. Does anyone need farmland near the upper missisippi? Upriver London? Florida Inland hills? [http://geology.com/sea- level-rise/](http://geology.com/sea-level-rise/) Come on people, i got a sale going on here. Dont get wet feet now, and leave me out here to dry.

Making the world a wetter place</comment>


Dropbox dives into CoffeeScript - <AUTHOR> https://tech.dropbox.com/?p=361 <comment><USER2> Where I work, we moved the project I work on to CoffeeScript about a year ago, and I've been using it ever since.

Putting syntactic sugar aside, while some things are very welcome (list comprehensions, ===, ?), there are two main reasons why I would be wary of using CoffeeScript again:

1\. Complete lack of documentation for syntax. Because there are basically no more braces and parentheses, CoffeeScript just tries to guess what you're doing, as far as I can tell, based on a bunch of internal heuristics. Unfortunately, there's no way for me to learn how to write parseable code without constantly pasting into the coffeescript.org site, and seeing if CoffeeScript understands it or not. This is the first language I've ever used where the syntax rules are essentially unknowable, and a lot of time gets wasted trying to discover them through trial and error.

2\. Unexpected side effects. For example, functions return the last evaluated value by default. If you're using $.each(), and your function's last line is something that returns false (like a separate function you call), then your $.each() loop will terminate unexpectedly early, since jQuery does that when it receives a false. So CoffeeScript isn't just a wrapper around JavaScript, but it really changes its behavior. Another example: CoffeeScript gets rid of function hoisting. A significant JavaScript feature, completely gone.

I personally am slower to code in CoffeeScript, because I know JavaScript 100% inside and out, but with CoffeeScript that isn't really possible, because so much of its implementation is undocumented. I mean, many times you're forced to end a line with a backslash in order to continue it, and even the existence of that necessary feature isn't mentioned once in the docs.

But a lot of people seem to love the syntax, and that seems to outweigh the negatives for them. I personally don't find JavaScript that ugly, but coding in a language I can't ever fully understand gives me a huge headache.

<comment><USER3> CoffeeScript can't really claim that "it's just javascript" either. I'd have to figure out how to hook up the CoffeeScript compiler into every single one of my workflows where I use javascript.

For example, I use swank (<https://github.com/swank-js/swank-js>) to send javascript to the current page in my browser from Emacs. I couldn't live without it. I'd have to figure out how to dynamically compile it, and I'm not sure if there's any restrictions with piece-meal compilation.

It's definitely a separate community and I'd lose out on lots of good tools if I had to use it. I'm glad nobody wants to use it where I work.

<comment><USER4> "It's just javascript" !== "You don't have to change your workflow at all"

</comment></comment></comment><comment><USER3> This sounds so much like some geeks wanting to hack. That's it. There isn't really a good reason to convert a codebase with tens of thousands of lines of code from js to CoffeeScript.

Not that there's anything wrong with that. But seriously, every single problem with javascript they mention is never a problem for javascript developers. You simply learn what's broken, and deal with it. Dealing with it is usually one line of code (or even less), making sure you just use ===, etc. It's really not a problem.

These kinds of posts smell a little like FUD to me, which is what I have a problem with.

<comment><USER5> The reason to use CoffeeScript over JavaScript is because it is better software engineering.

Number of lines of code has been shown to be one of the few good indicators for predicting defects. CoffeeScript significantly reduces the number of lines of code in a project and therefore the number of defects.

CoffeeScript is cleaner and easier to read, which is better software engineering. CoffeeScript solves many of the issues with JavaScript. The fewer warts and plumbing people have to deal with related to the language, the more they can focus on the actual problems they wanted to solve.

This is a little bit like the architectural decision to program user applications in languages and platforms with garbage collection and built-in frameworks rather than using a language like C or C++ with manual memory management and minimal standard libraries. Sure you get less control over the lower-level details such as allocation and deallocation of memory, but those lower level details actually are distracting from the application domain and were actually repetitive and could be automated. So the best way to solve those problems is to move to a platform that abstracts them away or handles them for you.

The reason that developers don't like CoffeeScript (other than the fact that they haven't learned it yet, and don't want to take the time) is simple, psychological rather than logical, and its the same reason that they don't like platforms like the ones I was talking about above: it makes things significantly easier, and that is problematic psychologically for programmers for two reasons:

1) The whole point of being a programmer is that you are mastering complex ASCII codes that other people can't decipher. Making things less complex takes away part of your identity as a programmer (not for everyone obviously, but for many).

2) Many programmers instinctively and falsely believe that any system which makes their job significantly easier must automatically come with compensatory trade-offs in things like performance or flexibility. This is intuitive, but false.

CoffeeScript improvements: indenting two spaces and using -> plus no closing parens and curly braces makes nested callbacks much easier to read and write, fat arrow binds this making it easier to use classes, class and extends provide a standard, simple way to create and extend classes, iterating over arrays and objects is much easier and cleaner, control flow and function definition is cleaner, better variable scoping, simplified closer wrapper in loops, more straightforward boolean operators, existential operator for cleanly and simply checking for variable existence.

Thought of one other explanation for not liking CoffeeScript: plain old status quo bias. <http://en.wikipedia.org/wiki/Status_quo_bias>

<comment><USER6> _better variable scoping_

CS's scoping is a bit... dangerous, because there's no indication of a variable's scope. If you're not paying attention to your environment, you'll inadvertently stomp on higher scopes or globals. You can lose assignments through typos too.

JS made a mistake by allowing globals by omitting "var", but that at least can be worked around by using a linter or "use strict". A number of languages have made this mistake, and many later followed a similar path to fix it.

CS has a lot of nice properties, but we should not laud conflating variable definition and assignment. It has always been a mistake, and I hope CS's author eventually comes around and fixes it.

<comment><USER7> >CS's scoping is a bit... dangerous, because there's no indication of a variable's scope. If you're not paying attention to your environment, you'll inadvertently stomp on higher scopes or globals. You can lose assignments through typos too.

Not just that, but adding a variable to an outer scope can break functions that were previously just fine. Isn't the whole point of scoping that changing code in one place won't affect unrelated code in another place?

</comment></comment></comment></comment><comment><USER8> Big, big fan of CoffeeScript and glad to see Dropbox hopping aboard.

That being said, some of their examples are lackluster.

      @originalStyle = {}
      for k in ['top', 'left', 'width', 'height']
        @originalStyle[k] = @element.style[k]

Should really be something like:

      @originalStyle = ['top', 'left', 'width', 'height'].reduce (hash, position) ->
        hash[position] = @element.style[position]
        hash
      , {}

... though that shows off some CoffeeScript warts.

Also,

      Sharing =
        init: (sf_info) ->
          for list in [sf_info.current, sf_info.past]
            for info in list
              @_decode_sort_key info

Why aren't they using CoffeeScript classes?

      class Sharing
        constructor: (sfInfo) ->
          ...

<comment><USER9> Really they should just use underscore:

        @originalStyle = _(@element.style).pick ['top', 'left', 'width', 'height']

</comment></comment><comment><USER10> I'm a little surprised by the number of negative comments in this thread accusing the three Dropbox engineers of wasting company time.

<comment><USER11> Why? It seems like a complete waste of time to this typical software engineer with 100x more objectives than time.

Why not convert all your Java code to Scala? Because you have real work to do and reskinning your existing code provides no benefits, that's why. If it works, don't rewrite it, go make more stuff work.

Maybe the dropbox folks don't have anything else to do, though. Not my place to judge.

<comment><USER12> Improve the codebase (make it small, cleaner, more easy to read, and fix issues of pastime) is NOT a wasted time. Not necessarily the BEST USE of time at a given moment, but dedicate some time to refresh the code with better tools, better syntax, better libraries, etc is a excellent way to move forward.

For a related sample, with obj-c I move to ARC ASAP, and plan to introduce the syntax literals as soon as possible. I certainly move the whole app codebase to python if exist a cheap way -and still 100% interface compatible to the coccoa-api - as like move js->coffescript for sure!

Is masochist persist in a old way just because is harder. Like when some refuse to upgrade the same language codebase to improve things (for example, I will move to LINQ, Lambdas, parallel code, async in C# as I move along) _IF_ the change provide some advantage - reducing lines, better API, more performance, better clarity, etc -

I tough constant -but careful- refactoring of a live project is very healthy.

Is better doing it when the project is moving, that wait until a major event happend in the industry -like what happend to my competitors, still on .NET 1 / VB Classic- and suddenly, your move is damm hard, too costly, and you have no skills in the "new thing".

I certainly think something that replace or massively fix JS (including, a better JS) will be very usefull.

If is ok to move from inline styles to CSS, and from HTML to HTML5, then move from JS with issues related from years of hacking-along-design to anything else, like CS, is a good effort.

<comment><USER11> > Improve the codebase (make it small, cleaner, more easy to read, and fix > issues of pastime) is NOT a wasted time. Not necessarily the BEST USE of > time at a given moment, but dedicate some time to refresh the code with > better tools, better syntax, better libraries, etc is a excellent way to > move forward.

And as everybody has been repeatedly pointing out, switching from JavaScript to Coffeescript isn't what you're describing.

Tools? The tools aren't even close to what's available for JS.

Libraries? Libraries aren't even relevant since Coffeescript can call out to JS and vice-versa.

Translating to Coffeescript sacrifices tooling and a codebase you know for a prettier syntax and reliance on the much smaller, much more insular community driving the language. And I'll say it: syntax is a _stupid_ reason to abandon code you KNOW for code you're about to write. A stupid, stupid reason. Engineers need to be more mature than liking to type fewer characters for an anonymous function or because list comprehensions are 3 lines fewer than a for loop.

By rewriting in coffeescript, their version history is likely trashed. They need to relearn the entire codebase. They need to develop new tools to replace the old ones they relied on, or more likely, will just live without those tools.

For a prettier syntax and a couple fewer gotchas. And if a team of 3 can't avoid the common JS gotchas in their day-to-day, I certainly won't trust them to rewrite an entire codebase in a language with different semantics just to get better syntax for what already works.

</comment></comment></comment></comment><comment><USER13> You guys should use MD5 digests of files instead of mtime for file change comparison.

mtime works fine until you want to add other steps that are dependent on the mtime of ephemeral files occuring previously in your process. Steps such as minification, uglification and comparison for uploading to a CDN all become a bit more complex if mtime is used since every compile step has the tendency to modify mtime so recompilations cascade through the process causing at best unnecessary processing and at worst weird edge cases if the order of middleware isn't taken into account (the middleware issues can be avoided with precompilation before production.

</comment><comment><USER14> I agree with them on the readability issue mostly, but I don't understand the preference for parens-less function calls, especially where there are arguments.

Maybe it's a matter of training, but

       @_update_status_position(e, files)

looks much clearer to me than

       @_update_status_position e, files

<comment><USER2> The thing that will really bite you is when you call a function:

        some_function arg_a

And then later on, decide it doesn't need an argument after all, and simply delete it:

        some_function

And then discover it doesn't work, because you have to _remember_ to add the parentheses back in:

        some_function()

It's the little inconsistencies like that which keep driving you nuts... :)

<comment><USER15> I just opt for parens every time. I really think they shouldn't ever be optional if in some cases they are mandatory. That this is a matter of personal style is somewhat frustrating.

<comment><USER16> I just use parens every time as well.

Remembering to call a function differently depending on whether it has arguments or not has been a common source of errors for me.

It's also much easier for me to parse the difference between "foo(bar(baz))" and "foo(bar, baz)" than it is for me to parse the difference between "foo bar baz" and "foo bar, baz"

</comment></comment></comment></comment><comment><USER17> "I had to be done [with Javascript] in ten days or something worse than JS would have happened."

I've heard this quote from Eich several times now, but I've never heard what the "worse than JS" alternative would have been. Anyone know?

<comment><USER18> He said it right afterwards: _"Something like PHP only worse..."_

([http://www.jwz.org/blog/2010/10/every-day-i-learn- something-...](http://www.jwz.org/blog/2010/10/every-day-i-learn-something- new-and-stupid/#comment-1021))

</comment></comment><comment><USER19> }); is not a line of code. Please stop counting it as such. Here's a good rule of thumb:

"If it can be moved to the line above, without any other changes, it's not its own line of code."

The argument that CoffeeScript saves countless }); }); } } is invalid, IMO. I would even argue that function definitions are not lines of code. Example: (ruby)

def foo end

0 lines of code.

BTW, I'm not a CoffeeScript hater, just trying to level the playing field.

<comment><USER20> _The argument that CoffeeScript saves countless }); }); } } is invalid, IMO._

I agree that counting }); as a line isn't necessary, but CoffeeScript saving you doing any of that is a very valid benefit. It cleans up code dramatically- ignore line numbers and just think about all the extra stuff that ends up surrounding multiple function calls.

<comment><USER21> I'm thinking it doesn't happen that often, and I would counter with having you think just how much more cognitive effort is used in parsing and debugging the syntax of CS. Remember, debugging and reading "old" code dominates our days, so it doesn't add up for me. As well, if you and the many others that like to claim keystroke reductions, there is no difference in "fu<tab>" for "->" and numerous other comparisons.

<comment><USER20> _just how much more cognitive effort is used in parsing and debugging the syntax of CS_

Have you tried CS? It's _far_ more readable, by virtue of not having "function() {}" splattered all over the page. I don't care/worry about keystroke reductions, I care about readable code. The lack of curly brackets and addition of significant whitespace absolutely _does_ make for more readable code.

<comment><USER21> Sure, I've tried it. Function calls are never splattered all over my page, so I don't have to care about that. And at best, it only allows me to cram more crap onto a single line, which is also not often helpful. Instead, I get to -- have to -- think about and end every function with something sane, in the event, for example with jQuery's .each(), I can't have my function magically returning false -- the last evalutated variable -- and terminating the each mapping.

My code already has significant whitespace; it's required by styleguide and linting. CS has prolific issues with whitespace usage, especially when it comes to parsing function arguments and lines broken over multiple lines. Just look through this or any other thread on CS being pushed.

CS often has mind fucks, and I'd rather have to ignore a couple lines with } on them.

Note: I mostly write in Python, if that gives any indication into how I very much enjoy significant whitespace.

</comment></comment></comment></comment></comment><comment><USER22> The middle code example can further be broken down[2] by using coco[1] instead of coffee-script.

JavaScript:

        this.originalStyle = {};
        ['top', 'left', 'width', 'height'].each(function (k) {
          this.originalStyle[k] = this.element.style[k];
        }.bind(this));

Coffee-script:

        @originalStyle = {}
        for k in ['top', 'left', 'width', 'height']
          @originalStyle[k] = @element.style[k]

coco:

        @originalStyle = @element.style{'top', 'left', 'width', 'height'}

coco also solves a rather nasty variable scoping issue[3]

[1]: <https://github.com/satyr/coco/> [2]: [http://satyr.github.com/cup/#c:@originalStyle%20=%20@element...](http://satyr.github.com/cup/#c:@email@example.com%7Btop,%20left,%20width,%20height%7D) [3]: <https://github.com/jashkenas/coffee-script/issues/712>

</comment><comment><USER23> It's nice to see some more prominent companies using CoffeeScript that people could point to if they ever wanted to convince their boss.

Did any of the other Dropbox employees have a hard lead-in time getting used to the syntax in CoffeeScript? Would you say you run into a lot fewer syntax errors when running validation now?

</comment><comment><USER24> The first comparison is not fair. Audio is 1D, while code is 2D.

Obviously CoffeeScript is less cluttered, but JS is nowhere near as bad as the audio makes it sound.

<comment><USER25> I'd say it goes further than that, as this isn't 1992 any more. I can't possibly find code pronunciation to be of imperative importance because I rarely debug code over the phone.

At any given time, I'm likely to have at least two of the following with me: a phone, a tablet or a laptop. Just e-mail me the code. Make a gist with the problematic section. Push it to a branch in our git repo so I can take a look at it myself. IM it to me. Don't _read_ it to me.

</comment></comment><comment><USER26> Speaking as someone who has managed coders writing far more lines of javascript than I will ever write, this is a better articulation of my belief that javascript should be generated from another language (CoffeeScript being the leader) than I could ever propose. Thanks Dropbox! This post should be read by everyone who writes or manages those who write javascript.

</comment><comment><USER27> the question that should motivate a change like this:

what does new-language let your team accomplish that you can't accomplish with old-language?

question isn't answered in post, the answer is probably somewhere along a 2x increase in the complexity the same team can handle. i dunno if it is worth disturbing an existing codebase and the QA cost of making sure you didn't introduce any defects. meh. where i work, we have maybe 100k lines of javascript, and its not really a problem other than lack of types when refactoring imperative code, nothing near the scope of the problem of Java's lack of higher order functions.

</comment><comment><USER28> this is great news! for people who prefer python-like syntax, coffeescript is a no-brainer. sites like js2coffee.com make it really easy to make the transition.

</comment><comment><USER29> I tell my prospective clients that if their contractors/employees are still programming in js then they are stealing from them.

Coffee Script is clearer, more concise, more maintainable. It has made me 5x more efficient in writing code (just the reduction in scrolling is a massive time savings) and I've seen similar results with my developers.

It takes about 2 days to learn and has a significant long term benefit. Switch.

</comment><comment><USER30> _In our case, we avoided this problem entirely by instrumenting our server code: whenever someone reloads a Dropbox page running on their development server, it compare mtimes between .coffee files and compiled .js equivalents. Anything needing an update gets compiled._

I wonder how did they achieve this? Is this a feature of node.js or is this like an automated build system? I suspect the latter.

<comment><USER31> They said exactly how they did it, it's right there in your quote: when someone reloads a page running on their dev server, the server checks if the CS file has been modified and triggers the compilation… So no, it's not a build system feature, it's a server feature.

</comment></comment><comment><USER32> Wait, they're looking forward to "Native CoffeeScript support in browsers, so that during development, we can avoid the compilation to JavaScript altogether."?

Is there something I don't know about?

</comment><comment><USER33> Ctrl+Shift+F - does it work with CoffeeScript in Eclipse?

oh wait, no semicolons :/

</comment><comment><USER34> tldr:

> Disclaimer: we love Python, and it's Dropbox's primary language, so we're > probably biased.

<comment><USER35> heh, I included this line because it's true, but that whole section is about why "use coffee because you like python" is the wrong tldr.

<comment><USER34> The rest of the article is about how you prefer CoffeeScript syntax, so how is that tldr wrong?

<comment><USER36> Because an accurate summary would actually summarize what they said, not just list their bias. I would summarize it as, "The Dropbox team prefers the readability of Coffeescript, the conversion took one week, they reduced the lines of code in their codebase by 20%, and there was no impact on functionality."

</comment></comment></comment></comment><comment><USER37> "We've heard many arguments for and against debuggability, and in the end, we convinced ourselves that it's easy only after jumping in and trying it."

So, in other words, you have only your own opinion and at best one (1) anecdotal experience. Congratulations! You've failed to prove your point from a logical perspective, let alone anything more!

<comment><USER38> I didn't get the sense they were trying to convince anyone, just pointing out why it makes sense for them.

</comment></comment><comment><USER39> As I only use the native application, I can care less.</comment>


MIT helicopter uses lasers to navigate indoors - <AUTHOR> http://blog.makezine.com/archive/2009/10/mit_uav_uses_lasers.html

<comment><USER2> I worked on a similar project as an undergrad, but it was a small hybrid blimp rather than a quad heli. There are a lot of engineering challenges with this even if you discount the software components. This looks really good!

</comment><comment><USER3> I think the official page is a better link: <http://groups.csail.mit.edu/rrg/mit-mav/system.shtml>

</comment><comment><USER4> Man, the narrator seems _really_ interested.</comment>


The Economics of Butch Cassidy and the Sundance Kid  - <AUTHOR> http://modeledbehavior.com/2010/03/14/the-economics-of-butch-cassidy-and-the-sundance-kid/

<comment><USER2> Posts like this make the internet just a tiny bit more awesome. It reminded me of how great that movie was and at the same time made me see aspects of it that I had not thought about during previous viewings. thanks!

<comment><USER3> And if I may offer the inverse of the lamentable "Not Hacker News" type of comment, posts like this are exactly why Hacker News is a particularly awesome corner of the internet. If anyone wants to know what it means to "Gratify one's intellectual curiosity," this type of post is it.

<comment><USER4> Alright, I've heard this phrase many times around here.

What is _intellectual_ curiosity? How is it different from just curiosity in general? What does the "intellectual" qualifier bring to the statement?

<comment><USER3> I have no idea how to define it! I can give some examples of what it is and what it isn't, in my opinion. For example, anything that kind of shakes up my worldview of how something works is usually it. Gossip about which tech personality is an asshole SEO arbitrageur is usually not it.

I'm reminded of a story I read in one of Smullyan's books. A teacher is giving a mathematics lesson, and he gives the students a problem: "Prove that such- and-such is so-and-so. Any questions?" One of the students raises his hand. "Sir, what is a proof? How do we know whether a proof is any good or not?"

It turns out that although the idea of a proof is relatively easy to grok and to use, proving whether something is a proof or not is extraordinarily difficult. The story comes to mind for two reasons: First, because "intellectual curiosity" is like "proof," easy to grok but difficult to define precisely. And second, because now you've piqued my intellectual curiosity: Is it possible to write a program that does a good job of flagging off-topic stories?</comment></comment></comment></comment>


Percentage of Young Americans Living with Parents Rises to 75-Year High - <AUTHOR> http://www.wsj.com/articles/percentage-of-young-americans-living-with-parents-rises-to-75-year-high-1482316203 <comment><AUTHOR> Since it's a Wall Street Journal article, to get around the paywall, hit the "web" link above and access the story through Google's search results.</comment>


The Paranoid Style in Bicycle Politics: A Bicoastal Freak-Out - <AUTHOR> http://www.theatlantic.com/politics/archive/2013/06/the-paranoid-style-in-bicycle-politics-a-bicoastal-freak-out/276514/

<comment><USER2> I dunno, I have noticed a huge problem with bicycling in the bay area, and that is people do fall into the "cult of bicycle". Normally its not bad, but they're definately getting their own bizzare "fundamentalist" strains where its ok to mow down pedestrians and run off, ignore traffic signals (and often common sense).

I'm also puzzled by the growth of bike lanes that push bicyclists onto busy heavily trafficed streets rather than less congested sidestreets where they'd be able to move more easily and safely.

Then again, SF is one of the worst run cities in the US so I guess this isn't a surprise.</comment>


How I Hacked Snapchat's Dumb Anti-Robot Security In Less Than 30 Minutes - <AUTHOR> http://gizmodo.com/how-i-hacked-snapchats-dumb-anti-robot-security-in-les-1506890048

<comment><USER2> Gizmodospam. Source URL: [http://stevenhickson.blogspot.ca/2014/01/hacking- snapchats-p...](http://stevenhickson.blogspot.ca/2014/01/hacking-snapchats- people-verification.html)</comment>


The Malicious Use of AI: Forecasting, Prevention, and Mitigation (2018) [pdf] - <AUTHOR> https://arxiv.org/abs/1802.07228 <comment><USER2> (1) How is it that it took that many people to write that paper?

(2) It's the first time I've seen something that looks like a "white paper" on the arXiv as opposed to a scientific paper.

(3) The standards for this sort of thing have sure gone down over time. This is the kind of thing you would hand to a congressperson, a staffer might read it, and the staffer would be just as confused as they were when they started.</comment>


don't miss 12/12/12 12:12:12 - <AUTHOR>

Bonus points for timing it perfectly so:

    TZ=GMT date +"%y/%m/%d %H:%M:%S.%N"
 gives

    12/12/12 12:12:12.121212121
 (shame it's not an even number of digits on the nanoseconds value) <comment><AUTHOR> Not that close...

        $ date +"%y/%m/%d %H:%M:%S.%N"
        12/12/12 12:12:12.367166822

</comment><comment><USER2> 12/12/12 12:12:12.120721961 was the best I could do.

</comment><comment><USER3> 12/12/12 12:12:12.N

Hooray!</comment>


Using websockets to easily build GUIs for Python programs - <AUTHOR> https://gist.github.com/jsomers/d32dd3507e5406c56e47b4cd6f28c60e <comment><USER2> Keep that in mind "easily" can be good for you, but not for your users---

[https://blogs.msdn.microsoft.com/tonyschr/2004/03/30/drivers...](https://blogs.msdn.microsoft.com/tonyschr/2004/03/30/drivers- a-new-kind-of-bloat/)

Even if it's just restricted to the local machine, any application that seemingly should have nothing to do with the network is going to arouse plenty of unneeded suspicion if it starts listening on a port or creating connections. Several years ago I remember coming across an application written in Python that did something similar, and its forums had users complaining that their firewall had detected something or that it was otherwise not working. I downloaded the executable, analysed it to discover the above, and decided to find an alternative instead.

<comment><USER3> Why would a firewall care about anything listening on localhost?

Why an app exposing itself to a local GUI process would listen on anything but localhost?

I wonder if websockets can work on Unix domain sockets; it's the normal way for non-websockets programs of a similar architecture.

<comment><USER4> Well Websockets sit atop HTTP last time I looked, what would be the point of using HTTP over domain sockets? I must be missing something - I thought the main reason so many protocols are implemented atop HTTP these days is because traditionally many corporate firewalls block nearly everything else.

<comment><USER5> You still need the HTML served somewhere - running a HTTP server on domain socket is a reasonable way of serving the that if it's at all dynamic, and since you've already got the socket open why not reuse it and do websocket over it too? Once the socket has transitioned, there's no overhead.

</comment></comment></comment></comment><comment><USER6> There's a Python library for this called "remi"[1]: REMote Interface library. It's amazing how well it works. We've been playing around with it on repl.it because we have a lot of users asking for GUI.

I recently built a TicTacToe game[2] in it in the fraction of the time it would take me just to setup a webapp. It's pretty impressive and goes to show how badly setup the web is for apps.

[1]: [https://github.com/dddomodossola/remi](https://github.com/dddomodossola/remi)

[2]: [https://repl.it/talk/share/Tic-Tac-Toe-in-remi-a-cross- platf...](https://repl.it/talk/share/Tic-Tac-Toe-in-remi-a-cross-platform- Python-Remote-GUI-Library/6145)

<comment><USER7> >I recently built [a simple app built on a platform for building simple apps] in the fraction of the time it would take me just to setup a webapp

Ok, sure

>It's pretty impressive and goes to show how badly setup the web is for apps

That conclusion really doesn't seem to follow for me. Someone else wrote a library that does all of the setup work, and then you didn't have to do that work, so you concluded that something else wasn't well set up?

<comment><USER6> Even if you pulled in angular or react it's still really hard to get something like this going. Especially for novices, these frameworks suffer from inversion of control and are pretty weird way to program. Once you get it it's pretty powerful tho.

</comment></comment></comment><comment><USER8> This is an idea in the right direction! HTML5/Javascript/CSS stack is great for making UI. So much effort has been poured into making this stack great that it makes all the sense in the world to make it a standard GUI stack.

Now we need a good connector library so that we can program in any language of our choice and use the web stack for seamless display. Web sockets are a good start but we could do better.

</comment><comment><USER9> I've been working on something similar in Kotlin called [http://kweb.io/](http://kweb.io/). It works but is still pre-1.0. You can manipulate a remote DOM as if it was local to the server and attach event listeners. Feedback welcome.

</comment><comment><USER10> This is pretty much what bokeh ( [https://bokeh.pydata.org/en/latest/](https://bokeh.pydata.org/en/latest/) ) does, there's Holoviews higher level plotting interfaces built on it too ( [http://holoviews.org/](http://holoviews.org/) )

<comment><USER11> I feel like Bokeh is way too complicated for what it does.

I guess flutter has really spoiled me; my expectations from a UI framework are just too damn high now xD

</comment></comment><comment><USER12> I've been something of a full stack developer for about 10 years now, my bread and butter being Python and c#, with a background in c++. The handful of times I've tried writing a web based UI for python and c# applications have been exercises in frustration.

Web is a cancer on tech. A giant, bloated, broken mess, built emergently, without any cohesiveness or vision. Simple applications come with hundreds of external dependencies, many of which regularly release breaking updates. It is simply impossible to consistently find up to date documentation on best usage for many of these libraries because of the speed with which the space moves, not necessarily toward anything good. Not to mention the incredibly dangerous nature of such a loosly typed language like JavaScript.

In my opinion, the whole system needs to be burnt to the ground to make way for something cleaner, safer, and more secure.

Then again, maybe I'm just biased by my preference for backend coding.

</comment><comment><USER13> The DomTerm terminal emulator ([https://domterm.org](https://domterm.org)) also uses WebSockets. The "server" is written in C, and handles pttys, command processing, help, and more. It uses libwebsockets ([https://libwebsockets.org/](https://libwebsockets.org/)) in the server. JavaScript in the browser (or something browser-like such as Electron) handles the GUI, including xterm/ansi escape sequences, menus, panes, buttons, etc.

</comment><comment><USER14> Is there anything preventing other applications from connecting to the web socket server and messing up with the application state? Or is that possible "by design"?

<comment><USER15> With websockets, it's actually up to the server to implement the cross origin detection. The library used in this application does not implement any protection.

So it's possible for any page on the net (eg evil.com) to connect to your socket and exfiltrate any data.

Make sure all tabs are closed and never visit any sites with advertising on it while this is running.

<comment><USER14> But this example works and, I assume, is intended to work over localhost. How would cross origin detection work in this case?

<comment><USER15> The websocket server needs to check the "Origin" header from the client. The code then needs to know what is expected (eg localhost or 127.0.0.q). If the origin header is something like "evil.xyz.com", then it needs to reject the connection.

<comment><USER14> Yes, I understand how origin verification is done. Nothing stops any other local app to make make a WS connection to this app's server and pretend it is making valid requests while, potentially, executing destructive actions or stealing data.

I understand that the generic answer will be along the lines: "well, if you have local access, you're never safe", but there is zero protection here. Anything local can connect to it and impersonate the "front end".

</comment></comment></comment></comment></comment><comment><USER16> Local UI?

electron + ES6 + html5 + no package installs + linux/macos/windows portable = why bother with anything else?

<comment><USER17> Because some people don't want to distribute a full, buggy web browser with every application they create.

<comment><USER16> Nice strawman argument, but you undermined your own argument:

Electron apps are not generic browsers that run random content from the web: they are fully debug-able projects, and the developers have full control over what is deployed.

You know, like ANY compiled project that is shipped as an .exe/.dmg.

Nice try though.

<comment><USER18> On HN, please don't reply in the flamewar style, even if another comment is annoying. It just leads to a downward spiral. Plus your refutation will be much more convincing if it's simple, factual, and civil.

[https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html)

<comment><USER16> Dammit, I did it again. Sorry, thanks for calling me out. That's actually why i -like- HN, so few flamewars.

</comment></comment></comment></comment></comment><comment><USER19> My use case is the same, but my local ui is composed of angular + websocket. It seems to me that when the browser (Firefox) tab containing the websocket is inactive, the websocket doesn't run. Not sure if it's because of any bug in my app or because of Firefox.

</comment><comment><USER20> I've recently started on this approach as well for hooking up a computational backend in Java to D3 based visualizations in the browser. Netbeans has several good introductory websocket examples that are a good starting point for setting up the socket connection.

</comment><comment><USER21> Websockets are known to happily drop packages in bad connectivity situations. I'd prefer something more robust like mqtt or stomp over ws.

<comment><USER22> You have to try pretty hard to get bad connectivity to localhost though...

<comment><USER23> There's a code golf problem in there.

My money's on sed and /etc/network/interfaces.

</comment></comment></comment><comment><USER24> Be careful, web sockets require state which causes issues when scaling.

<comment><USER22> The article is about making a local client in HTML/Javascript for a program doing the heavy lifting in Python. I feel like your response is just a knee- jerk reaction to seeing the work "websockets".

<comment><USER25> For a local client, yes, scaling would not be a concern; there is one websocket per client.

But this same method could be used for remote clients as well; I have a websocket-based "dashboard" for a project I'm working on that will potentially have to scale to thousands or more of remote clients. For a case like that, scaling is indeed a concern.

For example, the very simple websocket server used in the article won't scale well beyond a certain point because it spawns a new thread per client; something like gevent (which is what my dashboard uses) will scale much better. (Also the server in the example just exits on any exception; you need more robust error handling for something that needs to handle remote clients.)</comment></comment></comment>


Giving your startup a point of view - <AUTHOR> http://joel.is/post/4687482050/giving-your-startup-a-point-of-view <comment><USER2> I think it comes down to the difference between "having a mission statement" and "being on a mission."

Mission statements are usually all corporate-speak and written in passive voice. They are generally pretty useless.

Expressing the mission you're on is more expressive and active. It's also easier for customers to get behind, and for the company to internalize.

</comment><comment><USER3> I have no idea what this article means by "point of view".

However I suspect that by writing this article, the author is attempting to give his startup a point of view, whatever that means.

<comment><AUTHOR> I certainly made a mistake here I think. I normally try to avoid mentioning what my startup is or use examples so that it comes across as something people can relate to their own situation, and also so that it doesn't seem self- promotional, since that definitely isn't the intention. Reading back through I can see how it was not clear. I've added the actual "point of view" I'm adopting in my current startup as an example in the second paragraph of the "What does it mean to have a point of view?" section. Thanks for pointing this out, I hope it is a lot clearer now!

</comment></comment><comment><USER4> Confused: are they talking product design, or customer service, or financial responsibility? They don't seem to appreciate that these things are different.

<comment><USER5> I think the point he is trying to make is that, having a point of view that runs through your company, helps influence and define the positions that you take, when you are dealing with the questions you mentioned.

Everything starts to revolve around your companies point of view instead of around what you think most people want. I think he makes a great point, and relates directly to this awesome talk by simon sineck <http://bit.ly/eLt15m>.

People develop personal relationships with a point of view, thus helping you develop a brand not just a product. And not only a brand but one that stands for something and has values.

I think this is the most important thing you should be thinking about when approaching product design, customer service and financial responsibility.

Although I'm not one hundred percent certain what you mean by financial responsibility. I'm assuming your referring to corporate social responsibility, I'm not so sure that this has much place in a startup.

I would love it you could expand on this.</comment></comment>


The Facebook Chart That Freaks Google Out - <AUTHOR> http://allthingsd.com/20110926/the-facebook-chart-that-freaks-google-out/?mod=tweet

<comment><USER2> The comments here and the comments at allthingsD make it clear that many people don't understand how cookies and data collection work which is surprising.

Every time you visit a page with any kind of facebook integration (like button or whatever) facebook adds your online behaviour to it's user profile.

Ideally, from facebooks perspective, everyone would always be logged in to facebook and all pages would have a like button, then they can track everything everyone does on the web. That's why the stickiness thing is important, not just because active users are less likely to quit.

This is how you monetize a free social service.

<comment><USER3> I'm not trying to be deliberately obtuse, here, but would you please clarify where the money is, there?

<comment><USER4> Theoretically, fine-grained targeted advertising is the money. To get to that fine grain, you need lots of Stasi-like data. That's the tough part, unless you're FB. The other half (algorithms) can be continually iterated and improved by throwing math/CS/physics PhDs at the problem.

<comment><USER5> Now if only it was easier for said PhDs to get access to said data.

Actually, on second thought, that's a bit horrifying.

<comment><USER2> Ad networks, research companies and domain parking companies will kill to get PhD's on staff to do those kind of optimization problems.

They pay well but the good ones never stay long as the job is pretty boring for someone with those skills, it's really just a few problems that need to be solved over and over to the 10th decimal place because slight improvements in results mean lot's of real dollars.

<comment><USER5> Optimization, bleh.

Mining the tar out of Facebook's rather Orwellian data set? FUN!

</comment></comment></comment></comment></comment></comment><comment><USER6> Yes, people spend a lot of time on FB but how much of it converts to revenue? Google could be converting visitors to revenue faster than what FB could be. Say, I search for a .is domain registrar, I click on the ad which seems to be selling it the cheapest and I leave Google. My short visit was converted to revenue and converted quick. On the other hand, I go to FB not to look for anything specific but only checkout what other people are sharing or share something myself. I think the way I use FB, since I'm not looking for anything specific, I have a lesser inclination towards clicking on a link which is trying to sell me something. Google could show me links to stuff I was looking for making it more likely for me to click on them. (Yes, there are gamers who buy credit but I'm not one of them and not suitable to comment there. But from what I remember, it's not a significant share of FB revenue - but I may remember very old stuff and I would be wrong today.)

<comment><USER7> The graph that would be more interesting is a graph of ad sales. Google and Facebook are both fighting for the same marketing budget dollars.

<comment><USER8> Sort of. Google ads tend to be conversion-oriented and facebook ads tend to be branding-oriented. PPC vs CPM.

</comment></comment></comment><comment><USER9> According to this line of thinking, Google has spent the past 5 years being freaked out by Yahoo.

Of course they haven't. I think Google's Facebook envy has everything to do with the data Facebook is amassing -- not with time spent on their service.

<comment><USER10> _According to this line of thinking, Google has spent the past 5 years being freaked out by Yahoo._

Not necessarily, I think what is important here is the slope of Facebook's line, not its overall y-value.

</comment></comment><comment><USER11> I have trouble understanding why this graph would freak google out.

The more time I spend on google sites the less time I'm spending on sites I reached through google ads.

<comment><USER10> This chart isn't suggesting that more people are clicking on Google ads.

Facebook is a direct competitor with Adwords. Besides, the more time you spend on Google sites, the more of Google's ads you're exposed to. The steepness of Facebook's curve is very likely to freak Google out.

<comment><USER12> _The steepness of Facebook's curve is very likely to freak Google out._

Facebook looks likely to exceed 200% in just a few years!

<comment><USER4> Your comment made me laugh, but in seriousness, FB might be causing people to spend more time than they used to online, so that 200% number is, in a certain sense, not implausible.

</comment></comment></comment></comment><comment><USER13> Anyone think about the fact that Google has spent years becoming a minimalist for search effort and user experience, making results faster, more accurate, predict better, and be more painless... In short, they make a users experience and interactions with the site quick, almost transparent. Get in get out! Predict and find my results before I'm even done typing and show me the entire site before hitting "search". Now take other sites, how long does it take to find anything on facebook?... for ever, you have to dig and filter, and look and check... Its painful. I know it does not amount to much more than an observation but all that extra time spent does not reflect usefulness or effort on the users side. Id like to see a CPM comparison chart for popular sites!

<comment><USER14> That's the old Google you're talking about.

</comment></comment><comment><USER15> "Note that just a couple of years ago, someone might have thought to include Myspace in here. Remember?"

and facebook, not being fundamentally different to myspace, could easily be victim to the exact same thing. google, however, is sufficiently diversified to be much more resistant to user fickleness (firefox spellcheck says that's a word).

</comment><comment><USER16> Is it just me, or is a monochrome only chart a really bad way to present this information? It requires effort to decode.

</comment><comment><USER17> Stupid chart, huge difference here. Google has the advantage of knowing what a user wants when they are searching for it. Facebook is always pushing ads when users are looking to stalk people's photos.

<comment><USER18> Not to mention that Google is in the business of sending you away from their website; hopefully through an ad link.

If users are spending more time on Facebook, one could extrapolate that they are spending less time clicking on ads. The exact opposite of what Google wants.

</comment></comment><comment><USER19> These comparisons are a bit silly. They do not do the same thing. We should use this graph to compare Google to Yahoo and AOL and see how they fare against their competitors, not how many of their users spend 18 hours on Farmville.

</comment><comment><USER20> Considering Facebook and Google are both advertising-funded companies, I don't see what the concern is.

Start showing me slope on advertising revenue or momentum with major advertisers and I'll take notice.

Google's core market (search advertising) just had a new fence put up (Google+), which seems to be doing a good job keeping Facebook from marching right on in (social search advertising).

Facebook's ad-market strength is display advertising. This is a much smaller piece of the pie, and they don't completely own it, but they're making inroads. I expect Yahoo/AOL are much more worried about this than Google.

</comment><comment><USER21> I wonder what would happen if google blacklisted all facebook.com URLs. when I search for things, the first or second link is usually a company or fan FB page and if those were removed from Google's index, I wonder if that would have any affect on this graph.

Another thought, FB has become my IM... I spend a majority of time on there chatting, not clicking from page to page so FB's display ad's would be mush less effective to users like myself because the time I spend using there platform to IM is irrelevant/less valuable in relation to google sites.

</comment><comment><USER22> It took me a minute to figure out how facebook gained so much traffic without a commensurate decrease in the other sites.

My take-away is that facebook has mostly vacuumed up MySpace traffic (which was conveniently omitted from the chart).

</comment><comment><USER23> For the sake of argument lets say time spent on line = revenue. This picture shows us top line numbers. What about costs? I suspect that Google's cost for delivering content is markedly lower than Facebook's.</comment>


Most Influential Tech Blogs - <AUTHOR> http://www.techcrunch.com/2009/05/04/survey-says-pr-people-love-our-no-embargo-policy/?awesm=tcrn.ch_1Fg&utm_medium=tcrn.ch-copypaste&utm_content=shorturl&utm_campaign=techcrunch&utm_source=direct-tcrn.ch

<comment><USER2> Most influencial doesn't mean the best. From these I'll say that only Engadget, GigaOm and ArsTechnica are worth reading. Well, maybe VentureBeat too...

<comment><USER3> What about ReadWriteWeb ?

</comment></comment><comment><USER4> Can someone who reports other people's ideas be influential? I'd have thought the originator should be the one counted.

<comment><USER4> I guess they influence what people see, if they're popular.

</comment></comment><comment><USER5> I was expecting a list with techcrunch on top was just surprised they didnt make it.

</comment><comment><USER6> Best according to PR people. Not quite the same as best according to HN people.

<comment><AUTHOR> Russell, I agree re: your comment about the list being based on PR folk (admittedly, I am one). Interested to hear what a HN top 10 list would like. I'd have, personally, had ArsTechnica and ReadWriteWeb higher on the list.</comment></comment>


Post Startup Failure Depression - <AUTHOR> Hi, my startup of 2,5 years seems to be not taking off and was a miss. I will probably continue doing it as a side project for a while to see if there is any pivot I can make, but will have to get a job now. I feel pretty much like a I wasted nearly 3 years of my most productive years (I am 33 now) and also derailed my career. I was in IT/Mgm Consulting before. I applied to about 25 jobs and got rejected on all of them. In Germany having a failed startup is not really a thing of beauty on your resume. I feel like I f'd up my whole life with this and am sad and frankly a little desperate since a couple of month. Surely there are many of you who have gone similar paths. Any advice on how to overcome this psychologically, is highly appreciated? <comment><USER2> I'm in Berlin with a failed startup behind me, I was a cofounder. Doesn't seem to be a problem. When asked about it I tell the truth with no spin, and I feel like all I've gotten was props for trying. Where in Germany are you? In Berlin it's hard to imagine having trouble landing a job if you're a decent programmer.

</comment><comment><USER3> I am from Berlin, feel free to shoot me an E-mail with your story, linkedin etc. So maybe we can do something about your job problem :-)

It's sad to hear that you couldn't make it with the Startup though. I also couldn't multiple times and it sucks. It's very hard to make a profitable business.</comment>


Typography for Lawyers - <AUTHOR> http://www.typographyforlawyers.com/ <comment><USER2> I like the spirit of this. Personally, I'd love to see lawyers move toward plain text (to make it easy to process legal documents as raw data) rather than toward more sophisticated presentation text, but that's just my bias.

Of course, the two aims are not mutually exclusive.

</comment><comment><USER3> Kerning is not enabled by default in Word?

<http://www.typographyforlawyers.com/?p=766>

You have to activate it by checking a box in the Font dialog box... so irrational it's painful to contemplate.

I can imagine they did this for backward compatibility's sake (kerning would impact page layout), but consider the fact that 90% of the word processed documents produced today have crappy kerning because it was hidden behind a checkbox nobody will ever touch.

<comment><USER4> They could have just enabled it by default for new documents.

</comment></comment><comment><USER5> "The first problem is that it isn't professional. Dressing properly is one way we signal to clients, other attorneys, and judges that we take our work seriously and we take court seriously."

Though I also think typography is important, you end up with a lot of non- serious and bad lawyers simply looking serious with good typography because that's what the serious and good lawyers do. Bad content is still bad content no matter how you dress it up.

And when typography is used as a signal, as more bad lawyers adopt it, it becomes a less and less effective signal--until it becomes standard fare, and not useful at all for telling serious lawyers from non-serious ones.

<comment><USER3> You sort of described the cyclical nature of fashion, without intending to.

Things that are "in style" slowly erode in distinguishability as they become mainstream and overused, and then the better elements from older looks are remixed into something distinctive and those who have the motivation and wherewithal to try them out (you could call them the fashion-conscious) bring these new looks into vogue.

You can find this in everything: music, clothes, art, not just typography. That's not to say it's a bad thing, it's just an evolution of human interest.

Out of those fields, typography remains the most closed discipline (I would argue creating a professional typeface is on the level of carving a violin, it is much more inaccessible than combining clothing accessories or beats in audio production), and since the elite foundries are still moving into the digital age kicking and screaming, there is much interesting progress to look forward to. It will be a while before typography is starved for ideas and recycles lazy, supercommercialized dreck the way (in my opinion) pop music has gone for the YouTube/iTunes era.

</comment></comment><comment><USER6> Is there a "Typography for Programmers"? I could really use one of those...

<comment><USER7> I just read these "rules", and it looks like just good typography -- whether you're a lawyer, programmer, or something else. I like his explanations of _why_ each "rule" is necessary, too.

<comment><USER8> Yes, but I could see how programmers would need a specific advice as well. Monospace fonts for terminal/coding use, for instance.

Also, much of his advice doesn't apply to the web. Fonts designed for print often don't fare well on the screen, especially at small font sizes

</comment></comment></comment><comment><USER9> Thank you for telling people that it's one space after sentences and not two in modern typography.

<http://www.typographyforlawyers.com/?p=12>

<comment><USER10> I picked up the habit of putting two spaces between sentences in elementary school, and have not been able to shake it since. Luckily, this problem is automatically corrected in latex!

<comment><USER11> In latex source, I write each sentence on a new line. This makes the diffs in source control very clear. It also makes me conscious of very long sentences.

</comment></comment></comment><comment><USER12> The bit about Times Roman and Times New Roman is fascinating:

 _Think of Monotype vs. Linotype as the Depression-era Mac vs. Windows and you've got it...(In fact, when it came time to license fonts for their operating systems, Microsoft licensed Times New Roman from Monotype and Apple licensed Times Roman from Linotype, perpetuating the schism.)_

<http://www.typographyforlawyers.com/?p=687>

</comment><comment><USER13> What does "SC" mean in the font descriptions? (e.g., [http://www.linotype.com/1436/sabon- family.html?PHPSESSID=9df...](http://www.linotype.com/1436/sabon- family.html?PHPSESSID=9dfbc37a2956eb010047fd0c8e5b4640))

<comment><USER14> Small Caps. That one doesn't come with lower-case letters, it comes with small caps (look at the picture :).

</comment></comment><comment><USER15> I have just found out that Mac has a lot of typography options built in so you can use it even in TextEdit.

For example: <http://tinypic.com/r/27y0uo3/5>

<comment><USER16> How to open the Typography panel in the picture:

      1. press Command-T or choose Format > Fonts > Show Fonts
      2. click the gear icon in the lower left
      3. choose Typography…

</comment></comment><comment><USER17> _Convert straight quotes to curly quotes_

I agree with everything but the above.

<comment><USER18> I too am mystified. Could you explain?

<comment><USER17> Curly-quotes (or at least the ones that do left-quote, right-quote anyway) play hell with UTF-8 encoding in HTML - for simplicity's sake I'd rather not deal with them, especially for documents that might (and should be) placed online for everyone to view.

<comment><USER14> Never had that problem.

One big problem about curly quotes is that many default Windows fonts have their curly quotes all mixed up – Verdana is one of the offenders – as you can "see here" on HN. I then just refuse to use such shoddy fonts. Not the curly quote's fault that the font is screwed up. (You can use incorrect UTF-8 characters to get the correct curly quotes when using something like Verdana, but as soon as your text is copied and the font is changed you again end up with the wrong curly quotes.)

</comment></comment></comment></comment><comment><USER19> His follow up should be _user interface for lawyers_. This site needs better nav below the fold.

<comment><USER20> As web sites go, this one is pretty decent. There are some navigation issues, sure, but the design is simple and the text is a readable size, with a good line width.

<comment><USER21> It kinda bothers me how the bars at the top and bottom are not centered.</comment></comment></comment>


A new fast Linux OS? - <AUTHOR> https://github.com/TusharPardhe/Unknown-OS <comment><USER2> Does this OS use systemd, the linked page is a bit light on info. I've got LinuxLite on this old laptop, and I hate it, so this ticks a lot of my want boxes, but I'm hesitant.

</comment><comment><USER3> I admire the effort on this pet project. But this is yet another Linux distro, not a new 'OS'.

Unless I am missing on how this is unique than all the others. :S

<comment><USER4> More like a slightly modified ubuntu with different default packages.

And his only other project on github is a keylogger :o

<comment><USER5> He's been pushing this so much the last two days it's almost like he has an ulterior motive.

<comment><USER2> Yes, do go on.

</comment></comment></comment></comment><comment><USER2> I miss Crunch Bang, so I'm always on the lookout for a lightweight/fast distro, perhaps I'll give it a try</comment>


Delivery is via an Amazon drone. - <AUTHOR> http://arstechnica.com/gadgets/2013/01/17000-linux-powered-rifle-brings-auto-aim-to-the-real-world/

<comment><USER2> That typeface. Looks a bit like Bank Gothic. Can an American explain the cultural connotations? As a European it has very particular associations. A cross between Real American Hero Military Men With Guns and a certain child- like toy-soldier naïvité (case in point, a computerised machine for killing animals). Not trying to be incendiary, it's quite difficult to define. But people seem unashamed to use it. Is it a cliché?</comment>