Jfxr: A browser tool to create sound effects for games - <AUTHOR> http://jfxr.frozenfractal.com/ <comment><USER2> I've seen SFXR before, and while I can see the point of using these tools for things like prototypes or quick game jam entries, I am absolutely appalled when the sounds end up in otherwise high quality titles. Why ruin a good, otherwise beautiful game with these unimaginative sound effects?

My issue is not as much that the sound effects are cheap or boring as the fact that I can immediately tell where they come from, and that it could easily have been avoided by paying a sound designer an almost negligible amount of money to make sounds that somewhat fit the theme of the game in a more profound sense.

<comment><USER3> The original motivation for SFXR is the number of games produced that were simply _silent_. SFXR changed that to not silent.

It sounds cheap to say this, I'll admit. But if you want a better world you've got to make the tools that make that better world really easy to make, which is what sfxr is or was. Maybe we address this by making a tool that makes better sounds than sfxr. On the other hand, maybe we address this by making a tool that makes it really easy for game devs to work with sound designers.

<comment><USER2> _> The original motivation for SFXR is the number of games produced that were simply silent. SFXR changed that to not silent._

Sure, it lowers the barrier of entry when it comes to sound design. I think it has worked well for a few games, and as I said it makes perfect sense for something like ludum dare or just prototyping.

But when you want to polish your game and have a vision and/or a budget of any sort, I don't see how the sfxr sound effects aren't the first thing to go. Sfxr makes it all a lot simpler, but it sometimes strikes me as arrogant to use it for an otherwise polished product, since in my mind it means that these game developers don't recognize that it isn't trivial to create a good set of sound effects.

+1 on creating a tool that makes collaboration easier. I have a friend who does this professionally, and the process usually involves manual revisioning by renaming files or timestamped folder names and moving them to dropbox. The last project I saw him work on actually had an in-house tool to manage volume levels and delay times, though.

<comment><USER3> sometimes the barrier to entry is simply _not knowing_ anyone you can ask. I'd almost suggest something _like_ 99 designs but, the problem with that site is it significantly devalues the work of artists. I would hope that any tool that surfaces for this niche is more respectful to the craft than that.

</comment></comment></comment></comment><comment><USER4> I remember another tool like this, for 8-bit/lofi sound fx.

[http://www.superflashbros.net/as3sfxr/](http://www.superflashbros.net/as3sfxr/)

Given the title they might be related?

<comment><USER3> it started out with sfxr [1]

then the clones started

the mac clone cfxr [2]

the flash clone, you linked to.

the fork of that, called bfxr [3]

the ios port [4]

the (much better, in my opinion than OP), js port [5]

sfxr.js [6]

sfmaker [7]

and I'm sure there's a handful of others. I think I'm missing one js clone- along with a number of game engine libraries designed to accept the source parameters for a sfxr sound or bfxr sound and generate them in real time in the game as opposed to storing a wav.

The opportunities for this genre of program are opening up now that the webaudio api is just starting to mature (though it has a fair way to go).

SFXR gives you a very very basic array of synthesis techniques. There's a lot more that is possible here- Plus the whole field of FM synthesis techniques (think genesis/megadrive era sound effects), game engine libraries are yet to be addressed in the browser, as the tech making that possible is still just around the corner in the next browser releases.

[1]: [http://www.drpetter.se/project_sfxr.html](http://www.drpetter.se/project_sfxr.html)

[2]: [http://thirdcog.eu/apps/cfxr](http://thirdcog.eu/apps/cfxr)

[3]: [http://www.bfxr.net](http://www.bfxr.net)

[4]: [https://itunes.apple.com/au/app/sfxr/id349840825?mt=8](https://itunes.apple.com/au/app/sfxr/id349840825?mt=8)

[5]: [http://github.grumdrig.com/jsfxr/](http://github.grumdrig.com/jsfxr/)

[6]: [http://humphd.github.io/sfxr.js/](http://humphd.github.io/sfxr.js/)

[7]: [http://www.html5gamedevs.com/topic/757-sfmaker- html5-sound-e...](http://www.html5gamedevs.com/topic/757-sfmaker-html5-sound- effect-generator/)

</comment></comment><comment><USER5> How would I make a bell sound? (I know nothing about audio)

Can audio / sounds be copyrighted?

<comment><USER6> The closest I got, and it's terrible.

        http://jfxr.frozenfractal.com/#{"_version":1,"_name":"Powerup 16","_locked":[],"sampleRate":44100,"attack":0,"sustain":0.29,"sustainPunch":0,"decay":0.95,"tremoloDepth":0,"tremoloFrequency":1,"frequency":1600,"frequencySweep":0,"frequencyDeltaSweep":100,"repeatFrequency":9.4,"frequencyJump1Onset":40,"frequencyJump1Amount":0,"frequencyJump2Onset":66,"frequencyJump2Amount":0,"harmonics":3,"harmonicsFalloff":0.5,"waveform":"sine","interpolateNoise":true,"vibratoDepth":0,"vibratoFrequency":427,"squareDuty":100,"squareDutySweep":0,"flangerOffset":33,"flangerOffsetSweep":-2,"bitCrush":16,"bitCrushSweep":0,"lowPassCutoff":22050,"lowPassCutoffSweep":0,"highPassCutoff":0,"highPassCutoffSweep":0,"compression":1,"normalization":true,"amplification":100}

(Yes, that is one huge URL)

EDIT: I put the URL in a CODE tag. That fixes the broken page, but breaks the URLification.

<comment><USER7> Just played around with it a little more, came up with this:

      http://jfxr.frozenfractal.com/#{"_version":1,"_name":"Powerup 16","_locked":[],"sampleRate":44100,"attack":0,"sustain":0.29,"sustainPunch":0,"decay":0.95,"tremoloDepth":0,"tremoloFrequency":1,"frequency":510,"frequencySweep":0,"frequencyDeltaSweep":100,"repeatFrequency":8.7,"frequencyJump1Onset":40,"frequencyJump1Amount":0,"frequencyJump2Onset":66,"frequencyJump2Amount":0,"harmonics":5,"harmonicsFalloff":0.06,"waveform":"sine","interpolateNoise":true,"vibratoDepth":140,"vibratoFrequency":427,"squareDuty":100,"squareDutySweep":0,"flangerOffset":33,"flangerOffsetSweep":-2,"bitCrush":16,"bitCrushSweep":0,"lowPassCutoff":10100,"lowPassCutoffSweep":0,"highPassCutoff":0,"highPassCutoffSweep":0,"compression":1,"normalization":true,"amplification":100}

I was going for a tolling kind of bell.</comment></comment></comment>


Are Juiced Balls the New Steroids? - <AUTHOR> http://fivethirtyeight.com/features/are-juiced-balls-the-new-steroids/ <comment><USER2> Maybe they're too poor to do the obvious:

Get a bunch of $100 bills, buy some tickets to MLB games (with seats at various suitable locations), pay $100 for each foul ball that a fan is willing to surrender.

I think the average kid, or adult for that matter, when given the choice of keeping a foul ball hit by some mediocre batter, or exchanging it for a crisp new Benjamin, would gladly do the trade. I certainly would, but perhaps I'm not rabid enough of a "fan".</comment>


Web Devs Aren't Learning the Basics. Does That Matter? - <AUTHOR> https://www.futurehosting.com/blog/web-devs-arent-learning-the-basics-does-that-matter/ <comment><USER2> OK, so for a long time "web dev" meant HTML / CSS / JavaScript -- right? (Maybe a little server administration too.) And now it means all that, plus frameworks, plus platforms, plus Gulp & Grunt & SASS & 50 other things... optimization to design to demand gen to lead nurturing... these are all things a "web dev" can brush up against.

So people have to be selective with what they learn based on how far it will take them. And a solid understanding of tools that aren't CSS / HTML gets you pretty far these days.

Entry-level... easily the case can be made that if you want to get a website up, just hit the button at Digital Ocean to create your Ghost Blog, then grab a theme somewhere, and change the colors and go. (Wait... is any development knowledge even really needed any more?)

But for career advancement, and supporting legacy systems, and building things from scratch... yes, you need to have a good understanding of ALL the pieces -- or your team does at any rate. And, if you go the team route, you also need a good Product Manager to make sure all the people are connected and aligned.</comment>


Why did we take reddit down for 71 minutes? - <AUTHOR> http://blog.reddit.com/2010/01/why-did-we-take-reddit-down-for-71.html

<comment><USER2> "Memcachedb also has another feature that blocks all reads while it writes to the disk."

Seriously?

Wow.

<comment><USER3> Sounds like it's time to look at Redis...

<comment><USER4> Or Tokyo Cabinet / Tyrant, which is still a high performance key/value store but doesn't need to fit everything in RAM. Depends on how much they're storing.

<comment><USER5> Virtual memory support is currently being added to Redis so that it won't need to fit everything in RAM either. I'm sure antirez can provide some better info on how it'll work.

<comment><USER6> Hello, VM is already in alpha on Git actually. There is some more work to do, but I don't think in the Reddit use case there is the need of Redis VM: they are using MemcacheDB as a persistent cache, if it's a cache it should match very high performances delivered by memcached and is not required to cache everything. Redis is as fast or faster than memcached (using clients with the same performances) and is persistent, so probably it's a good fit for this problem.

Instead of VM Reddit should use Redis EXPIRE I guess, that is, time to live in cached keys so they auto expire.

Btw for people that don't know what Redis Virtual Memory is: with VM Redis is able to swap out rarely used keys in disk. This makes a lot of sense when using Redis as a DB. When using Redis as a cache, the way to go is EXPIRE: rarely used things in cache should simply _go away_ and be expired instead of being moved into disk.

EDIT: It would be very interesting to know where the Reddit performance problem is, but Redis Sorted Sets are a very good match to create social-news alike sites like HN or Reddit in a scalable distributed way, with a few workers processing recent news to update their score into the sorted set. The home page can be generated with ZREVRANGE without any computation.

It's a shame reddit is not sharing how this cache is used.

</comment></comment></comment></comment></comment><comment><USER7> I'm bothered by the need to run SW RAID on top of HW RAID. One would think that Amazon would sell faster EBS "disks" for a premium.

And slower disks for a discount? But, I guess that's what S3 is for.

<comment><USER8> I think it works like this:

Even if Amazon uses 'k' hdds for one EBS "disk", since you're sharing the real hdds with other users, you don't get 'k' hdds' performance, you only get a fraction.

By RAIDing over 'n' EBS "disks", you are effectively compensating for the reduced performance due to sharing.

<comment><USER7> I get what the stack looks like, but it seems really broken and likely quite inefficient. Thus far, Amazon has gone after greenfield applications which can be written within the constraints of their cloud platform. However, there are a ton of people hosting their own SQL database-based apps where a single DB is the bottleneck. Without significant refactoring, these apps can only scale vertically with the DB. So, while Amazon provides nice, big boxes to run SQLServer/MySQL/etc., disk performance is that of a desktop machine -- hardly a balanced system. How many more customers could they capture if they offered premium, high-performance storage options?

<comment><USER9> You hit the nail on the head as to why I'm looking into a physical DB server with RAIDed SSD's instead of hopping onto EC2. I would love to use Amazon and not have to deal with the potential headaches of managing physical machines, but the stories (maybe FUD) of having to raid EBS instances, spool up 20 instances to find the winners and kill the rest, etc etc really kills the appeal.

If they could promise me consistent database performance on par with a really nice physical machine, I would gladly fork over 500/month for it.

<comment><USER10> As someone who has spent the last year and a half running a 200-(persistent)node environment on EC2, including multiple m1.large and m1.xlarge DB pools, I can assure you those stories stem from FUD and unreasonable expectations.

Yes, EBS is not very fast, especially compared to local disk. You can work around this, however, by configuring multiple volumes in a RAID configuration (as you have mentioned), or by scaling out with additional nodes. The size and workload of your database will dictate which is more cost-effective.

Spooling up many nodes to find the "best" one is completely unnecessary. In my experience, EC2 nodes have been remarkably consistent in performance. I won't say I run a load test on every one, but I will say that over 100,000 node launches, I've never had to shut down a poorly-performing instance that couldn't be attributed to a hardware issue (rare, and for which Amazon sends notifications).

Don't listen to the naysayers. Come on in, the water's fine!

<comment><USER9> Thanks very much for the FUD-debunk, it's always great to get advice from someone who has thoroughly kicked the tires of something. I may start considering it once again.

Would you mind sharing what kind of small-block IO/sec numbers you've seen from the EBS's? My app tends to generate lots of IO with not a huge amount of cacheability, and it has a relatively small dataset, which is why I'm considering SSDs in the first place.

</comment></comment></comment></comment></comment></comment><comment><USER11> I really like 'behind the scenes' stories like this from big sites like Reddit, Facebook, Heroku etc. I work on a smaller scale of a few EC2 at a time, but I really enjoy the scaling info.

</comment><comment><USER12> One major reason not to hop on the cloud bandwagon just yet is issues like these. The more layers underneath that are not under your control the more layers you'll have to add to remedy that.

Systems with excessive complexity are hard to debug, especially when it comes to analyzing performance issues.

Given complete control of the hardware from the ground up it can already be quite hard to accurately pinpoint a bottle neck so you can solve it. Adding a lot of stuff between your code and the hardware is not going to make that any easier.

Typically a stack has 6 layers before you get to your application: drive, controller, driver, filesystem, database, app.

In a cloud environment anything under the filesystem layer is effectively out of your control and out of your ability to troubleshoot. The solution, to add another layer of complexity in order to combat the slowdown is really the opposite of what an ideal cloud environment would give you.

After all, the #1 selling point of the cloud is scalability and performance.

I think that it would be best if Amazon worked together with the OP to resolve the issue as a problem ticket rather than to try to solve it by adding a software raid.

Of course, that's just armchair reasoning, not being in the hot seat makes life easier.

<comment><USER13> Reddit went on the cloud bandwagon not because they thought it was superior to managed servers, but because Conde Nast's IT department sucked. With the ongoing growth, they were having trouble procuring the additional servers as needed, and moving Amazon solved that problem.

<comment><USER14> That's not entirely true. Yes, it is true that getting servers was hard, and that was definitely a factor.

But the bigger factor for me was that I was tired of having to build, image and rack all those servers. I liked the flexibility of EC2, and also not having to waste resources ordering a full rack's worth of hardware every time.

Cost was also an issue. Datacenter space in SF is expensive, but it had to be in SF, because that is where I was. EC2 proved to be much cheaper than physical servers.

I also like the fact that I don't have to run to the datacenter anymore when there is an issue. I just file a ticket with Amazon.

<comment><USER13> OK, thanks for the clarification. I'm trying to find the post I read that gave me that idea but can't find it. Was it in in your AMA?

<comment><USER14> Could have been. Or possibly something Spez said.

<comment><USER13> I thought it could have been a spez or kn0thing post but I went through all of them and couldn't find anything. I guess it could have been deleted, but I'm going to chalk this up to faulty memory on my part; you were there.

</comment></comment></comment></comment></comment></comment><comment><USER15> Does anyone know if reddit is doing anything special to create the RAID? Or is it just mdadm?

<comment><USER14> Just mdadm.

</comment></comment><comment><USER16> Reddit is down super-often for me. This very minute, I can't log in or use the site logged in, it just serves me 503 errors.

</comment><comment><USER17> sounds like a redefinition of 'in any way' to me...

So why am I singing the praises of Amazon and EC2? Mainly to dispel the opinion that the site getting slower since the move is in any way related to Amazon...(snipped)...Unfortunately, the single EBS volumes they were on could not handle these bursting writes.

<comment><USER18> This isn't an EC2 issue, this is a SAN issue. Wether it is EBS or an NFS drive, meh. This is an architecting issue and while it is a result of the underlying hardware, the underlying hardware is not the constraint.

<comment><USER17> agreed it's largely an architecture issue, however poor EBS performance is contributing factor and he seems to go out of his way to say that it's not...

<comment><USER19> He went out of his way because most reddit user keep blaming AWS for the recent issues, as jedberg (reddit IT guy) recently mentioned the problem is not with AWS scaling but with reddit software scaling.</comment></comment></comment></comment>


Ask HN: What do you use for contact|lead management / mini-CRM these days? - <AUTHOR>

The options I am aware of are: Salesforce, Highrise, BatchBook, vTiger, SugarCRM. Do you use any of these? Or are you using something else?<p>Thanks, I will appreciate all the comments, as I am trying to pick one. <comment><USER2> We decided not to go with Highrise because we can not import our categories/tags (they're more than 3k contacts). As of now we're analyzing Salesforce & Microsoft's Business Contact Manager

</comment><comment><USER3> I do most of the sales for my company and use Highrise. The major thing I like about it is simplicity and having an email dropbox that I can BCC.</comment>


Social Housing in the United States [pdf] - <AUTHOR> https://www.peoplespolicyproject.org/wp-content/uploads/2018/04/SocialHousing.pdf <comment><USER2> I'm sympathetic to all of these ideas, and I think we should really be talking more about housing on a national level, but there are a few main issues I see that all of the public funding proposals ignore:

a) Housing is, at the limit, a positional good.

b) Construction costs are crazy, e.g. [https://www.bizjournals.com/sanfrancisco/news/2018/04/26/con...](https://www.bizjournals.com/sanfrancisco/news/2018/04/26/construction- costs-killing-new-bay-area-housing.html) and not just in the bay area, I spent a bunch of time looking this up with a focus on NYC and they were in the 400k+ price per unit range there.

c) Construction costs go up as density increases, particularly once you need to install an elevator.

d) NIMBYs/zoning/permitting costs.

As I see it, the insane costs associated with building new housing is why we're only getting "luxury" apartments - you just can't make any money because of the high costs.

So where does that leave us? IMO it means we need better transit, but at least for the NYC subway construction costs are insane, and we need a way to build things more cheaply.

I have my own pet idea in modular housing being promising for bringing down construction costs, but fundamentally it is an operational, not policy problem.

And I don't think anyone really has a solution for NIMBYism besides overriding them at a state level, which has not been very effective so far.

<comment><AUTHOR> Land and not housing is a positional good, but socializing it can help reduce the effects.

Density only actually needs to be very high for a very, very tiny fraction of land. In SF, for instance, something like 80% of the land is zoned exclusively for single-family homes. You don't need elevators nor steel-frame construction to build 3-4 units where there previously was 1. A very substantial amount of inexpensive housing can be built where zoning currently disallows it. As you said though, transit becomes the next bottleneck.

<comment><USER2> > Land and not housing is a positional good

Yes, but the discussion about housing isn't "there is no affordable housing anywhere", but rather "there is no affordable housing near jobs and people have to commute very far", so I'm not sure there is a tonne of daylight between these two.

I feel you on the zoning issue, there is plenty of space that should be upzoned, but I don't think that this line is true: "A very substantial amount of inexpensive housing can be built where zoning currently disallows it."

Land costs are high, Permitting costs and fees are high, and construction costs themselves are very high atm, even if you're not putting in elevators or steel frame construction you're going to have very high costs that you can't recoup from low income renters.

Maybe if you introduced a land tax that made it expensive to have unimproved single family homes you could get somewhere, but as it is I don't think SF has the balance sheet to just spend its way out of this problem right now.

But even then, I think this is a problem that will take decades to resolve, since SF has gotten itself into a chicken & egg situation where everything is expensive because everything else is expensive.</comment></comment></comment>


Everything that you wanted to know about Google ARCore - <AUTHOR> https://medium.com/inborn-experience/google-arcore-a-detailed-sketch-up-5af431472d07 <comment><USER2> ARCore is meant to enable us to interact with digital content in a physical way</comment>


Ask HN: What is the best Laptop you have ever used for development? - <AUTHOR> Regardless of price, what is the best portable machine that you have ever done programming/development on?<p>I'm going to be looking into purchasing a new machine for development soon and I'm curious what other HNewsers think is best.  I've been looking at the Lenovo T4xx series and they seem promising so far. <comment><USER2> The best Laptop I ever used for development was one with a keyboard, monitor, trackpad, and internet connection.

I would VNC into my work machine (using a two-factor authentication), and do development on my work machine.

It had all of my work already saved on it, it could compile faster than any laptop of similar price, and if my laptop was stolen from me, I would not lose any of my work - and none of my intellectual property (trade secret, or otherwise) was compromised.

Every now and then, internet connectivity was an issue, and that sucked.

I can't imagine losing full control over my intellectual property, though, so that's a trade I was totally comfortable with.

It had a small SSD so it would boot quickly, because that's all it really needed to do.

</comment><comment><USER3> I'm on a Lenovo T420s, it's a pretty solid machine. This is my first ThinkPad and I really love the screen resolution and the feeling with the keyboard, the keys are just amazing and if you are a developer I think this is one of the most important features. I oned a MacBook (the white and cheap one) and an iBook, but the "physicity" of this laptop is really good. Moreover you have 2 USB 2.0 and 1 USB 3.0 that you cannot find on an Apple product.

I'm using it with Fedora 17, everything works pretty well but you need some tweaking to optimize the power consumption while on battery.

<comment><USER4> Thinkpads in general are pretty great for "get down to business" use. They're nothing flashy, they don't have to build to a consumer market that demands "thin, light, strong, cheap, beautiful". Lenovo/IBM seems to understand that when someone is using a Thinkpad, they're doing so because there's real, hard work going on. They might be boring to look at with a thickness and weight straight out of 2001, but they get the job done. Standardized hardware without the rush to adopt the latest and greatest flash really helps with the Linux compatibility. Dell Latitude is a close second in that market.

Best thing about every Thinkpad I've used at work is, the Insert/Home/PgUp

Delete/End/PgDn

Always in that order, always in that configuration. I don't want to have to use Fn keys to access things that a consumer might not use, but a power user needs constantly. Only complaint on my current T500 is the lack of a number pad.

<comment><USER5> They actually moved to double-sized Delete (and Escape) key on their more recent models. I love it, much easier to hit.

<http://www.zdnet.co.uk/i/z5/rv/2011/04/thinkpad_x220_2.jpg>

<comment><USER3> it's a pleasure to hit them! but they are moving to island-style keyboards: <http://www.wired.com/reviews/2012/06/lenovo-thinkpad-x230/>

(btw i binded caps lock to ESC with `xmodmap -e 'clear Lock' -e 'keycode 0x42 = Escape'`, much better for VIM)

<comment><USER5> I guess I can go either way on the chiclet keyboard. But why would they go back to the tiny delete key?

<comment><USER6> Switch to chicklet keys and I might as well get a MBP. The whole point of Thinkpads is that IBM/Lenovo & CO leave the design alone.

</comment></comment></comment></comment></comment></comment><comment><USER7> My current one -- a 2010 Lenovo ThinkPad T510. A high-end, rock-solid machine with an insanely durable battery (they claim up to 8 hours on a charge, realistically I can pull about 5 or 6). Compared to a MacBook, it looks like the Tumbler Batmobile from _Batman Begins_ , but it was about $1000 cheaper than a similarly specced Mac at the time of purchase; the keyboard is much better (not full travel, but good tactile action and nice concavities on the top that make them feel like real keys); and it runs Linux absolutely beautifully.

<comment><AUTHOR> Extremely tempted to pick up a T520 off of lenovo's outlet store. They're only $1100 for 1080p, 8gb ram, SSD, and a dedicated video card. Whoahhhh

<comment><USER8> You should do it! That is what I was given at work and will say it is better than any other laptop that I have ever used.

</comment></comment></comment><comment><USER9> I am quite partial to my current 2012 15" MacBook Pro. Only Apple-supplied upgrades are the 2.5GHz i7 and the high-res screen.

Replaced default hard drive with Corsair Force3 SSD, purchased from Amazon (iirc).

Removed optical drive & placed default hard drive in its place with aftermarket drive bay kit.

Ignored Apple's RAM upgrade & bought 16GB RAM from third party (Apple only sells 8GB, even though 16GB is supported). Love the RAM.

It is a dream. Development has never felt better.

<comment><USER10> I'm using the 2011 one, matte screen, Apple-installed 128gb SSD, and 8gb of RAM. It's the best laptop I've ever owned. I only wish I went for the 256gb SSD, despite the price.

</comment></comment><comment><USER11> I'm currently using a 13" MBA. It's a little bit tight on ram (only 4gig) but it runs plenty fast for rails development.

The real joy for me is that the size and sturdiness of it means I dont think twice about throwing it into my bag before I bike off . . . anywhere. It's always with me so it gets a lot more use than older chunkier laptops that I've owned in the past.

</comment><comment><USER12> Another vote for the 17" MacBook Pro (for mostly Windows development, no less), in particular, Sandy Bridge 17" with SSD (of course) and BTO matte display. For the home office, Apple's Thunderbolt "docking station"[1] is a convenient accessory.

[1] <http://www.apple.com/displays/specs.html>

</comment><comment><USER13> I'm on a ~5 year old macbook(black) running ubuntu 11.10/gnome3. With the exception of mine being one of the last 32-bit models they sold, I couldn't be much happier. Only other complaint is that it get SUPER hot, and the fan can be pretty loud.

</comment><comment><USER14> I'm absolutely in love with my 2011 11" MBA. 1.8Ghz i7, 4 GB RAM, 256 SSD. The screen size is very conducive to focusing on one task at a time, periodically I will connect to a Thunderbolt display for added screen real estate.

</comment><comment><USER15> I have a 13" 2.4ghz c2d MacBook Pro with 8GB of ram and a 256gb solid state and a 15" 2.2ghz quad core i7 with 16gb of ram, soon to have 256gb SSD and 500gb 7200rpm storage drive.

Best laptops I've ever owned and developed on.

</comment><comment><USER16> My 4 year old 15" MacBook Pro is still working great; though I can't deny I'm yearning for something with more power at this point. If the rumors are true then next week I'll be able to lust after a new model.

<comment><USER17> Yeah I am on the 17" MBP, the generation before the current one. I have 8GB of ram in it, and in the last year I have started to feel that it needs a little more. The virtuals I run are what is killing it. I am going to refresh with this update. It's been a good machine and I like it for development.

<comment><USER18> Same, but i can't seem to wait any longer! When is it coming out!?

</comment></comment></comment><comment><USER19> 2011 MacBook Pro 15" w/ Vertex3 SSD.

Runs Mac software

Runs Windows software

Only downside is the heat, which they may address with the update coming next week. Aside from that, it's a phenomenal machine.

</comment><comment><USER20> 2009 17" Macbook Pro would be the winner for me if not for the keyboard.

Second favorite is a 17" Dell XPS M1730. Great screen, decent keyboard but... Heavy as hell.

</comment><comment><USER21> Lenovo x220 is the best laptop I've developed on. My requirements were that it has to be very light yet solid.</comment>


Is sex a cryptographically secure random number generator? - <AUTHOR> How many bits of entropy are in my family tree? Which species produces the most entropy in the least amount of time? <comment><USER2> I think you could rephrase it as "Is reproduction a cryptographically secure RNG?". The stuff I was thinking about before reading the extra text you wrote in addition to the question is not what you were asking for ;)

</comment><comment><USER3> It's interesting how trying to formulate an answer to a left field question like this helps shine a light on areas where knowledge is lacking on both of those things.

</comment><comment><USER4> Guess you can narrow that question down to "Can an infinite DAG be used as a random number generator?" which, I guess kinda trivially is yes? Probably provable practically using something like the Linux git tree using hashes as indicators of what to do.</comment>


Hacker News iPhone Interface (needs work) - <AUTHOR> http://www.intersquash.com/feed/ec275ee7

<comment><USER2> It doesn't seem to work right now but is it going to be anything more than <http://www.icombinator.net/> ?

<comment><USER2> I'll take a crack at it :)

<http://mobilehackernews.appspot.com/>

EDIT: added links to discussion here.

</comment></comment><comment><USER3> I can't get past the initial screen. When clicking on an article I just get an extra grey bar at the top on the same screen. Tried it on a iPhone 3GS with 3.0.

<comment><USER4> Yes I noticed the same thing. But the title of the post says Interface and mentions needs work, so, I will give these guys a slack.

</comment></comment><comment><USER4> I know the title says (needs work), but I just wanted to point out that having points and posted time will be really useful.

</comment><comment><USER5> Good start! Reminds me of iUi

There's also the mobile view we did a while back at <http://yc.mobify.me/> \- back then pg said that the HN mobile strategy is in the works, so maybe we'll see something soon

</comment><comment><USER6> Well done. Looks cool.</comment>


Ask HN: Why has discussion of the Google Manifesto been censored? - <AUTHOR> <comment><USER2> This list of "Most active current discussions" is pretty useful for cases like those, I use it a lot (flagged ones are shown there too):

[https://news.ycombinator.com/active](https://news.ycombinator.com/active)

Discussions of "Google Manifesto" (two of them are still listed among "active"):

[https://news.ycombinator.com/item?id=14934581](https://news.ycombinator.com/item?id=14934581) (146 comments)

[https://news.ycombinator.com/item?id=14937778](https://news.ycombinator.com/item?id=14937778) (132 comments)

[https://news.ycombinator.com/item?id=14937895](https://news.ycombinator.com/item?id=14937895) (556 comments)

[https://news.ycombinator.com/item?id=14939636](https://news.ycombinator.com/item?id=14939636) (344 comments)

<comment><USER3> That's a really useful link. "Active" should be in the top bar.

</comment></comment><comment><USER4> I suspect that users are flagging stories about it. I suspect that the reason users flag it is the quality and temperature of the comments stories about it tend to elicit. Of course I could be wrong.

Good luck.

<comment><USER5> I think this is the correct answer. HN goes to extensive efforts to avoid flame wars in comments, and in the one post on the topic I saw reach the front page (before being removed), the comments were an absolute hellhole.

<comment><USER6> I didn't flag it, but when I last looked all the comments were of people about as well informed as the author and I filed under "trash fire, don't get involved".

<comment><USER7> Nearly all of the document's factual claims are squarely in the middle of academic consensus. If you find the arguments morally troubling, just say so, but don't contribute to the raving anti-scientific delusions of the blank- slate crowd.

<comment><USER6> I couldn't have caricatured the original posts better myself. Bravo.

</comment></comment></comment></comment></comment><comment><USER8> I don't know, and in media stories about it, it has required a significant amount of chasing to actually _read_ it. I don't agree with it, and it overly politicizes a social kind of argument - but I think it's important to drag these things into the light and debate them with clear facts and sources, not to let them linger in the darkness.

For all it's faults, it did have one good suggestion - that programming may be more attractive to a lot of folks if we make it more collaborative in nature. That's an area where some otherwise really talented engineers suffer, and if we expand the discipline I think it would be a meaningful improvement for all.

<comment><USER9> I think the value of debating it is overrated. This thread on Twitter summarizes why I don't think debate on this issue is valuable: [https://twitter.com/drnerdlove/status/894200932489146370](https://twitter.com/drnerdlove/status/894200932489146370)

I'd also add to that the notion of the Overton Window. There are many views we as a society decide are not debateable, and debating them would normalize those viewpoints.

<comment><USER10> He's essentially saying that debating people you disagree with about sensitive topics that have real world consequences is not worth the time because those people are wrong and they aren't going to be affected by the outcome one way or the other. So because he thinks the other side is wrong from the outset, and is quite certain they have no skin in the game, they aren't to be listened to. This is why people are leaving the left in droves.

</comment></comment></comment><comment><USER11> I would imagine the conversation around it would end up quite unconstructive. Many find this a deeply emotional issue, and I think it needs to be both supported and challenged in the logical realm. Julius Caesar's paraphrased defense of Catiline comes to mind here:

> Chosen fathers of the Senate, all men who decide on difficult issues ought > to free themselves from the influence of hatred, friendship, anger and pity. > For when these intervene the mind cannot readily judge the truth, and no one > has ever served his emotions and his best interests simultaneously. When you > set your mind to a task, it prevails; if passion holds sway, it consumes > you, and the mind can do nothing.

A rebuttal that says: I disagree, whomever supports this is {a pig} supports the author's ideas around suppression of discussion while doing nothing to dissuade less passionate readers. I call this "The Trump Problem": people should be able to present their opinions and discuss them toward perhaps a better conclusion. Right now, dissenters of the popular opinion seem to either choose to be silent or get "backed into a corner and strive to justify themselves" (As Dale Carnegie has mentioned). A deeper analysis of the Manifesto on junk-v-decent arguments would be useful for everyone, even if you think the entire document is crap.

</comment><comment><USER12> Do you mean on HN or elsewhere?

On HN, a story is scored both on the number of upvotes and on the number of comments. When a story has a lot of comments (in proportion to the number of votes), that story is punished based on the idea that it's probably only a few people talking to each other very agitatedly without producing many novel insights.

I have not followed the Google Manifesto discussion, but it's easy to imagine that this prediction holds true in that case.

<comment><USER13> _When a story has a lot of comments (in proportion to the number of votes), that story is punished based on the idea that it 's probably only a few people talking to each other very agitatedly without producing many novel insights._

Perhaps you're right, but a topic could spark an agitated _yet wholly positive_ discussion. Pushing it down the list _just_ because a few people are commenting a lot wouldn't make much sense in some discussions.

<comment><USER12> That's the problem with algorithms. Even if they're right 90% of the time, the 10% errors are so much more noticeable.

</comment></comment></comment><comment><USER14> Without specific links it's hard to tell, but there are some automatic rules that often kick in in cases like this. The penalty I notice most often is the comments-vs-points ratio. If people just keep adding comments without voting for the article itself, the link gets penalty and may lose quite a few positions.

Whether you want to call that censorship is up to you, but there are a few projects which attempted reverse engineering of the HN sort order and the features were primarily automatic. What I'm trying to say is: what influences the positions is usually the nature of the discussion rather than the content. Can't prove it for every case though.

</comment><comment><USER15> Beats me, but Yonotan Zunger's open letter in response is a much better focus, IMO.

<comment><USER16> it's as toxic of a response as the original manifesto, imo

<comment><USER9> I'm sorry, but it really feels like you just said this: [https://mobile.twitter.com/dril/status/473265809079693312?la...](https://mobile.twitter.com/dril/status/473265809079693312?lang=en)

</comment></comment></comment><comment><USER17> It would be interesting to see an anonymous agree/disagree poll. I bet it would be a Brexit/Trump type of outcome. Censorship only extends until polling booth. For now.

<comment><USER18> There's an active anonymous poll for it on the app Blind ([https://us.teamblind.com/](https://us.teamblind.com/)) with a thread titled "How do you feel about the Google diversity manifesto?"

(SPOILER: Poll answers and results copied below.)

Votes: 450

Answers in order from most disagreement to most agreement:

1\. 114 votes - "I disagree with it. It should be lit on fire."

2\. 142 votes - "I generally disagree with it, but it has some valid points that should be discussed."

3\. 100 votes - "I generally agree with it, but it's a little rough around the edges."

4\. 69 votes - "I agree with it. Author is a hero."

5\. 25 votes - "I don't care about these issues."

</comment></comment><comment><USER19> To answer the question, what good does discussing this do?

The issue with "Tech + Workplace + Women" is a discussion topic flameworthy of abortion, gun rights, and the like. To the opposition, you are evil. Nothing good came come of this.

There will be people who bulletpoint everything wrong. There'll be others that call for fallacious statements. There will be others that claim that they're not getting proper discussion because of being screamed out. There'll be others that just will be blatantly sexist (and removed/hellbanned).

What good does discussing this do? Ive seen various combinations of these same discussions, and devolve to a textural screaming match.

Tl;Dr. Boring, no answers, everyone's "wrong" some way and some how. How about nice mathematics or programming puzzles?

edit: seriously, modded down? I'd much prefer why you think I'm wrong. I've seen 300+ comment threads about "sexism in the tech workplace" more than a few times. They devolve to screaming matches and dry commentary nobody responds to.

<comment><USER20> The problem is that we're not talking about some aesthetic issue like tabs vs. spaces but rather large groups of peoples' ability to participate in this industry. Shrugging it off with "what good does it do?" is only possible if you aren't affected by that and it's not a neutral position since it's effectively saying that the reactionary position is okay with you.

It also ignores a lot of good which has come out of these discussions. I've seen a number of colleagues become far more thoughtful about interaction patterns, social structure, etc. in response to this discussion and they've uniformly reported that this has improved the quality of work, too.

That should not be surprising: after all, do problems in your applications go away if you don't monitor or discuss them? You may similarly have to deal with the guy who's really defensive to protect his perceived status but … he's not going to cause fewer problems if you don't.

<comment><USER19> > Shrugging it off with "what good does it do?" is only possible if you aren't > affected by that and it's not a neutral position since it's effectively > saying that the reactionary position is okay with you.

You know nothing about me.

I work in academia. We have one of the largest "Gender Studies" (Read womens' studies, men need not apply). Yet our IT in my group is 100% sausagefest.

I know of women who've applied. I'm not privy to the interviews at my time and tenure... but it's completely bullshit to say that every woman is not competent to do my job.

What can I do? I'm sure I could do an email campaign like this. But I'm 1 person, and I'm looking to work elsewhere due to managerial "issues". It's not __MY __problem to solve ineffectual and bad management. But my solution is to leave.

> It also ignores a lot of good which has come out of these discussions. I've > seen a number of colleagues become far more thoughtful about interaction > patterns, social structure, etc. in response to this discussion and they've > uniformly reported that this has improved the quality of work, too.

If one of the most "Liberal" universities can't get it right, why would I expect most anywhere to?

> That should not be surprising: after all, do problems in your applications > go away if you don't monitor or discuss them? You may similarly have to deal > with the guy who's really defensive to protect his perceived status but … > he's not going to cause fewer problems if you don't.

The nail that sticks out gets the hammer.

<comment><USER20> I'm not saying you're a bad person, only that the conversation is important to people who don't have the option of ignoring it. No, you can't change the world but that doesn't mean we should give up and not even talk about the problem.

Also, having spent a fair amount of time in academia, describing it as liberal utopia is simplistic to the point of being wrong. Right-wing media loves to describe it that way but it's not example hard to find examples of universities fighting against fair wages, unionization, etc. — just watch what happens if someone suggests grad students or adjuncts should have financial security — and there are no shortage of examples of men who might even make a pretense of being feminist while ignoring or even stymieing support for working mothers, fair hiring or promotional practices, etc.

The only thing I've seen make any of this improve is sunlight.

<comment><USER19> > I'm not saying you're a bad person, only that the conversation is important > to people who don't have the option of ignoring it. No, you can't change the > world but that doesn't mean we should give up and not even talk about the > problem.

Thank you. I do try the fight, when I see a potential gain. I also see a great deal of flailing around, just because. Maybe they're trying to find their area they can change things. Who knows.

I do know I'm a white guy. Tall one.I know Ive never bought into the victimhood culture of SJWs, but yes, bad shit does indeed happen to women and minorities. I've seen it.

> Also, having spent a fair amount of time in academia, describing it as > liberal utopia is simplistic to the point of being wrong. Right-wing media > loves to describe it that way but it's not example hard to find examples of > universities fighting against fair wages, unionization, etc. — just watch > what happens if someone suggests grad students or adjuncts should have > financial security — and there are no shortage of examples of men who might > even make a pretense of being feminist while ignoring or even stymieing > support for working mothers, fair hiring or promotional practices, etc.

Err, not quite. Yes, the University is still subject to capitalist forces. So they're against graduate student rights, uses a great deal of temp and "part timers" to skirt around full time employment benefits. I know there's a few profs in Labor Studies that rattle the Communism banner. But they can, because they __are __tenured.

Me? Since I'm IT/professional, I don't qualify for the union. So, no protections. That means anonymous commentary. Cause just like this (presumed) guy, I nor any of my co-workers can speak out.

Look at how upper management is already responding to this? "If he reported to me, I'd fire him myself"... Literally anyone who shares even partial agreement with his email is being blackballed.

Some of my friends called it the Liberal Circular Firing Squad. If we all don't get in line, exactly as others have, we're wrong. Blammo. The Republicans don't seem to do that, although they do have their spats.

<comment><USER21> >Look at how upper management is already responding to this? "If he reported to me, I'd fire him myself"... Literally anyone who shares even partial agreement with his email is being blackballed.

But his reasoning for that is pretty legit though. If someone is willing to call a third of your colleagues incompetent to their face, I'm not sure how they'll be able to work together in that team and hope to actually make things happen. It's hard to expect the women on his team to continue working with him after he calls their competence into question after they've proved themselves by climbing to the same position he holds.

I feel like the reasons for the firing were not that he had different views, it was that he did not have the tact to approach this problem properly, and handled it really badly. There are much better ways to have a discussion around this than this manifesto, and those are discussions worth having. But not this one, this is just inciting a flame war.</comment></comment></comment></comment></comment></comment>


Learning to Execute [pdf] - <AUTHOR> http://arxiv.org/pdf/1410.4615v1.pdf <comment><USER2> No big criticism implied, but some of us like to see the abstract, first. So here's the link to it:

[http://arxiv.org/abs/1410.4615](http://arxiv.org/abs/1410.4615)

</comment><comment><USER3> Interesting. For the uninitiated, what sorts of applications are LSTM RNNs looking promising for in the short to medium term?</comment>


Ask HN: Review my proof of concept for a translation website - <AUTHOR>

I'm a graduate (business) student working on my master thesis. I find it really fascinating how the web is changing so many aspects of our life. That's why I decided to write my thesis about the economics behind this evolution, but that's not the point of this post.
As a case study for my thesis, I wrote a website (more difficult than I imagined!) that serves as a proof of concept for an idea of mine. The website's url is:
http://www.translapolis.org
It's a community website for translations and grammatical corrections, primarily intended for language students to use, but it's really open to everyone.
Now, what I need is (100+) people who take the online tour offered on the website, and who fill in the survey which is located at the end of the tour. From start to end will take about 15 minutes.
Your combined input will allow me to make an estimation of the viability of the idea and about some more general hypotheses that I make in my paper.
If you leave your email address and mention 'hackernews' at the end of the survey, then you can also win a $20 Amazon gift card.
Thank you so much! <comment><AUTHOR> url of website: <http://www.translapolis.org>

direct link to the tour: <http://www.translapolis.org/tour></comment>


NodeJS + NowJS + Music = Synchronously listening to music together (Juke) - <AUTHOR> http://juke.chaoscollective.org/?r=HackerNews <comment><AUTHOR> admittedly a little tricky to see what's going on here with a single browser...

The idea is that you and your friends can choose to listen to music that is synched. If one of your friends changes the station, you hear it. Of course, you can change the station, too. :)

Oh, and it's super small and pushed to the upper left, so you can stick it in an iframe, embed it in another app/page, and forget about it.</comment>


Ask HN: Dilemma on raising the price of SAAS product later - <AUTHOR> We are a smart electricity meter company and planning to launch our SAAS platform. One of the strategies for increasing early adoption would be to have a lower subscription price. However, we are not sure if we could increase the price of subscription later? Although it is technically possible, is it practical? Or would it be better to have a higher price to begin with and reduce it later?
I would be glad to learn from the experiences of HN members. <comment><USER2> > Or would it be better to have a higher price to begin with and reduce it > later?

If you have to reduce price of a product without a new replacement product in the market then that is a sign of trouble with business growth rather than a strategy. It goes down hill from there. Only few companies have managed to do this successfully and that too if they rely on commodity BoM whose prices go down or if their service does not require frequent changes/upgrade once developed.

One trick I learnt from a presentation few years ago was to set appropriate price for a product such that you don't make a loss, but give(for a fixed duration) a 100%(or whatever you decide) discount on that price for early customers. That way the customers know what the actual price of that product is and they are also aware that the discount is a fixed time offer. Now you have three levers to play with: the actual product price, the discount and the duration of the offer.

Another trick is to set the correct price for the product, but give some freebies along with the product to get customers on board. The freebies are one-time or for limited period.

</comment><comment><USER3> The other way than charging old/new customers different prices for the same product(s) is to change the product 'bands' if that's possible. Rearrange the limits and features between bands to come up with a new set of offerings. This way the old pricing and new pricing can't be compared 1:1. Hopefully you can do this by offering better packages/bundles rather than shuffling only to change the prices.

This is a strategy used by auto makers for ages, the same model goes slightly upmarket so that even if you stick with the same model you pay more. Sometimes it a model will fall in price to make room for a new entry in-between. The other way thing that's done is renumbering models so that you're coerced into choosing the one slightly upmarket.

</comment><comment><USER4> Start with the price that you need to drive adoption and early usage. Later raise the price as necessary as you understand the business and the value proposition, but only for new customers. Keep all the original subscribers around on a "founding member" plan at the original price.

</comment><comment><USER5> Raising prices always results in some amount of pain and frustration for some set of users. You could just start with calling your low price as an introductory offer that will be available for a limited period. You could also give extended credits to paying users who refer others who become paying users. Have the introductory price locked in for life for those who get in early.

Bonus points if you can quantify what the limited period would be, instead of leaving it vague. This is how most of the good sellers do (be it a SaaS or some other content or service).

</comment><comment><USER6> You can raise prices for new customers at any time. Just keep the price the same for all old customers.

</comment><comment><USER7> Grandfather existing customers and raise price for new customers. do it often, as needed. Another strategy is to introduce "new plans" at higher cost.

</comment><comment><USER8> Can you not start lower then raise it later where people on the lower price keep the same price? Not sure what the issue is that way around.</comment>


Do facts exist? A philosophical perspective - <AUTHOR> https://medium.com/@achetibi/do-facts-really-exist-a-philosophical-perspective-7ba7a5701606 <comment><USER2> This article is very simplistic.

The question "What can we know?" is one of the central questions of philosophy. (see metaphysics.) Answers go back to Platos cave allegory (and even further) to discuss it without mentioning some great philosophers like Plato, Descartes and Kant (at least) is criminally neglegient. Similar goes for the question "What do we mean when we say words?". While to my understanding it has only become important in the 20th century, Nietzsche was neither the last nor the most famous. Not mentioning Wittgenstein or Derrida is similarly neglegient.

The whole blue-green color blindness experiment is very ill concieved: Assume you send a '1' (ascii character in some network endianness) to two computers one with big endian encoding, one with little endian encoding. Both correctly parse the character into an unsigned char. One into '10000000' and one into '00000001'. Does now one computer see the '1' as '128' if so which one? And what would the activation pattern of neurons which represent 1 mean to that computer? Perception means to translate an external simulus into an internal representation. Of course the internal representation might be different for different systems. So the only way we can compare those impressions is via the stimuli that they reference and the position we use to reason about them.

Consider two mathematical notations which are identical except they have exchanged the meaning of '0' and '1'.

One system would give as some of the axioms:

x * 0=0

x * 1=x

x+0 = x

The other would give :

x * 1 = 1

x * 0 = x

x+1 = x

because the axioms correspond we could show that the notations equivalent. Even if their representations of the neutral elements are vastly different.

Interesting there might be a way to use something similar for colors: It is known that colors influence the mood(red makes you agitated, blue calms down...). If this is inborn to humans and not learned, one could actually compare perceptions of colors. If you blue agitate you but calms me down and red calms you down but agitates me. It would not be wrong to say you percieve colors differntly. (Of course it would be equivalent to say "we percieve them the same way, but you react differntly to them").</comment>


This reusable beer bottle could change the way America drinks - <AUTHOR> https://www.fastcompany.com/90239092/this-reusable-beer-bottle-could-change-the-way-america-drinks <comment><USER2> I've not understood why we don't use standardized reusable packaging to reduce waste and greenhouse gas emissions. There was an economic freedom argument in the past, but the externalities are just proving too great to say that, you know, my company needs its beer or sweet drink or water in a special one-time- use, resource-intensive, air and ocean-polluting bottle. If every company has to comply, market competition will be left unhampered (or perhaps improved as firms would be pushed to compete more on product and less on brainwashing-- sorry I mean branding). I remember pleasantly gazing at the shape of a Perrier bottle as a child. Nice, but not nice enough to warrant so many tons of greenhouse gas emissions.

<comment><USER3> This is how it works in several countries in Europe, Nordics and Germany I think.

Each grocery store has to have bottle recycler that scans and accepts only the correct bottles and cans. Cans get crushed and bottles, including plastic ones, get washed and recycled. You get 5-15cents store credit per bottle which you then can buy things with or cash out. Most households recycle their bottles while going to the grocery store.

As a student, this was great when you hosted parties and next morning you would take the empties to the store and get like 15-40euros worth of credit.

</comment></comment><comment><USER4> In India I noticed a lot of coke & sprite bottles were incredibly worn. They were thicker and heavier than those in Australia (which were mostly plastic anyway). And the branding was incorporated into the glass itself, as opposed to a label on the outside.

Based on the wear, I imagine they'd been re-used many times. I thought it was pretty cool that you bought coke in a bottle that would be considered an antique in Australia.

Reusable items such as glass bottles give me a sense of quality & durability. Where as disposable is synonymous with garbage.

<comment><USER5> The same is the case in many other places, Mexico comes to mind. The disposable bottle seems a recent thing, only strengthened by semi-ignorant ideas of how recycling works popularized in the 80s. But even modern bottles can be reused many times as homebrewers know. Sam Addams specifically makes theirs sturdier with that im mind.

</comment></comment><comment><USER6> I could be mis-remembering, but I'm pretty sure my that the cases of beer my dad drank in the 1970's in Ohio came in recycled bottles. They were already scratched up when he bought them.

<comment><USER7> Very likely. Up until the past 10 years or so, you could pick up a case of returnables. Very handy for those brewing at home. Can't remember the last time I saw them available.

</comment></comment><comment><USER5> They are 5 years late. Growlers are replacing beer bottles here, and are reused 100s of times. Only the caps are disposed of, and even they could likely be sanitized.

The problems faced in the article could easily be remedied by having uniform mouth height and shoulder width, so bottling/washing machines can stay brand/style agnostic while allowing some distinction.

<comment><USER8> >Growlers are replacing beer bottles here

Growlers represent such a small portion of all beer sold in the US that they are hardly worth mentioning. They are used nearly exclusively by enthusiast consumers that are on the fringe of the beer drinking population, for purchase volumes that are practically a rounding error in terms of total beer sales in North America.

</comment></comment><comment><USER9> If you home brew, all beer bottles are recyclable</comment>


Ask HN: Does Reddit now also force you to use app? - <AUTHOR> I tried to visit /r/cpp just now via Firefox on mobile and get the following message on Reddit:<p>"This community is available in the app<p>To view posts in r/cpp you must continue in Reddit app or log in." <comment><USER2> Try: [https://old.reddit.com/r/cpp/](https://old.reddit.com/r/cpp/)

</comment><comment><USER3> i think,this is a/b testing. i see this often but not everytime.

</comment><comment><USER4> not seen that yet</comment>


High-definition audio cell phone system deployed in Moldova - <AUTHOR> http://www.forbes.com/forbes/2009/1116/technology-cellular-wireless-get-ready-for-hi-def.html <comment><USER2> 12 kilobits per second is high definition?

<comment><USER3> In the voice world, they call anything above an 8kHz sampling rate "HD audio." It's the next big thing in voice conferencing: 16kHz sampling rate! The comfort noise (noise played by a phone so you know it hasn't disconnected) never sounded so clear! Naturally, it's all patented and proprietary. Meanwhile there are open source systems capable of CD quality audio at speech latencies (<http://www.celt-codec.org/>), but why use that when you can pay for an AMR-WB license?

Actually, I set up an Asterisk PBX once for a demonstration of an HD voice system with a 48kHz/24-bit AEC system that was shown at Infocomm, and it does sound nice.

<comment><USER4> _CD quality audio at speech latencies_

Don't exaggerate so much. Celt is good, but it's not magic. It certainly won't even be as good as something like AAC-HE -- which of course is intentional, since Celt's target is ultra-low-latency situations, which inherently results in worse compression. It also has to be relatively loss-redundant without the use of forward error correction, which introduces even more constraints on inter-frame prediction.

And of course one may note from <http://www.celt-codec.org/comparison/> that it doesn't actually compete with AMR; it's easily 5-10 times lower latency (and higher bitrate as well). It's really just a totally different use-case.

 _proprietary_

However crappy it is, I'm pretty sure I recall AMR being an open 3GPP spec. There's even a free software implementation (under Apache v2).

<comment><USER5> The CELT developers themselves say _"CELT brings CD-quality sound to VoIP- style low-delay applications"_ but it would be easy to get into an argument about what "CD-quality" means.

On another note, as the other poster stated, AMR is patented. Not everyone includes that in their own personal definition of "proprietary", but the two words are synonyms.

<comment><USER4> If being covered by software patents made something proprietary, the entire world would be proprietary, nearly every single open source project included.

<comment><USER5> After I wrote that I recognised the ambiguity and I was going to go back and edit it to say something like "actively enforced patents to generate licence fees", but I thought it was obvious enough as it was, given the context.

<comment><USER4> I still don't like that definition, since it confuses the vast majority of multimedia formats with formats that are actually proprietary.

I prefer to reserve the word proprietary for formats where the specification is either secret or does not exist and any free implementations were reverse- engineered, e.g. RealVideo, Windows Media Audio, and so forth.

It doesn't make sense IMO to simply call 98% of everything proprietary; it sort of weakens the meaning of the word to overuse it as such.</comment></comment></comment></comment></comment></comment></comment>


Facebook's Engineering Director Is Headed to the White House - <AUTHOR> https://www.yahoo.com/tech/exclusive-facebook-engineering-director-is-headed-114060505054.html <comment><USER2> Poor guy is going to hate life so much. The number of times he's going to hear "we can't do that because some person at some important level - a person that probably started as a clerk and has been promoted to high level security doesn't understand it, so... no."

As someone who left federal government for private industry, I am shocked at just how much freedom I have to experiment. Thinking creatively is rewarded. I applaud the administration for attempting to get to this level... but they'll have to remove all the old tired government employees with the authority to say "no" before this plan will work.

<comment><USER3> As someone who's about to leave government (DoD) I'm looking forward to the opportunity to experiment. That being said, your description is pretty accurate. Simple things like designing a more efficient workflow becomes something that metastasizes into a "well, idk that seems to break the usual business rules" conversation. My sincere hope is that Recordon isn't afraid to get in trouble. Actually, my advice to him would be "get in trouble all the time" or "if you're not getting in trouble, you're doing something wrong".

<comment><USER4> This raises the issue that's plaguing government and big corporation (non- tech) organizations alike - inability to attract nor retain talent. DoD has been going through a bit of a contraction and the best developers I knew in DoD space have all turned their backs on their clearances and run very far away. At my current place, they're having an issue where we have some fairly interesting technical work but nobody with the skills to go do it because they're based in flyover country and people that can do it regularly get $160k+ base offers in the Bay Area or New York. The brain drain problem is exacerbating the problems in most of these places because the existing employees just don't feel like making a change or are benefiting from the current standard performance of abysmal and dysfunctional across most large organizations when it comes to anything innovative (as opposed to execution, which is what established businesses tend to think about mostly through extensive processes and risk avoidance).

<comment><USER5> Is it not the job of the contracting companies to find and retain the talent though? One major issue that I see with many of these government contracting companies is that they exist only to support the US government. They have no other clients, no products of their own and no non-government projects coming in. How many young developers want to join companies like that? How long until even more experienced developers move on to more interesting work? I just cannot fathom many of these companies being sustainable in the long run. As for the government, I believe it would be in their better interests to starting working more with companies outside of the beltway for a change.

<comment><USER4> It is certainly the responsibility of the contractors to retain talent. This is extremely difficult for the reasons you've mentioned, and the fundamental problems are simply that working with the government (or any enterprise) is insanely administrative-overhead prohibitive and tends to lock you into operating specifically for just the government. Most DoD contractors in the beltway besides the usual big ones are starving for contracts and those that have survived are now involved in commercial work for a lot of their business probably. Growing most of these contracting companies is similar to trying to grow boutique web design businesses only far, far more expensive.

From a talent pool perspective, for every person like Mikey Dickerson (US Digital Services, Healthcare.gov overhaul) you have now 10 people that are barely able to understand what DevOps even stands for as much as 100 acronyms and jargon only applicable to government systems and regulatory measures. Mikey doesn't even have to think about an SF-86 probably - who can you clear for a TS now that's considered top talent by Silicon Valley standards when these people would have these same companies trying to knock their door down?

It is currently against young developers' best interest IMO to join anything BUT the most interesting, high-talent seeking government contracting companies IF they have any thought of going into that line of work. They must also be prepared to have their work oftentimes be thrown away and be laid off repeatedly as these projects tend to be extremely tough to sponsor now in today's post-sequester era of contracting. It's heart-breaking to see the junior developers I saw across so many companies wasting away their talent on oftentimes rather stupid work due to completely inane reasons solely related to being government work.

You're on the right hunch to where the end-game is. The end-game state with the current trajectory is 2-3 huge defense contractors that mostly do non-tech contracts stuck with loads of useless retirement-age administration amid pockets of some competent ones all in charge of scores of kids that just couldn't get into GOOD software companies... and Google, Microsoft, Amazon supplying the majority of the underlying technology. All the "integrators" will have been absorbed into mid-tier companies probably and the various Pentagon incubator-ish programs considered failures for lack of innovation AND lack of projects successfully seeded.

Myself, almost all my ex-coworkers from DoD-centric companies, and a good number of people I've been interviewing are completely throwing away their DoD / government backgrounds in their careers for greener (we know for sure) pastures. There's just not enough funding for interesting work and DoD is contracting back toward its fundamentals of creating jobs for opportunities that are really, really boring that nobody talented or interested in being able to cite an interesting project in a job interview wants to spend time on.

US DoD's leaders are not completely stupid and have finally managed to get Amazon's GovCloud approved for certain uses. IBM sued of course, but how many people even use IBM's cloud again in industry? Getting stuck in the vendor wars of its time is something DoD definitely doesn't want to do, and this time around it sounds like someone actually might get slapped for buying IBM.

</comment></comment></comment></comment></comment><comment><USER6> The title reads as though he was the single Engineering Director of Facebook ("Facebook's Engineering Director"). But a quick look on LinkedIn shows there are dozens of Engineering Directors at Facebook, which the article confirms - "one of Facebook's engineering directors".

Might want to change the title to match the article's.

(Not to diminish in any way his achievements at Facebook or otherwise.)

</comment><comment><USER7> The new US Armed Forces motto:

Move Fast and Break Things

<comment><USER8> > Move Fast and Break Things

Funny, but it raises a concern: You can't take that approach to White House IT. If something breaks, the consequence isn't that users' feeds of vacation photos malfunction; instead people die, nuclear codes leak, etc.

<comment><USER9> Whitehouse IT isn't responsible for anything important like that. That kind of stuff resides in the dod. Whitehouse IT would be responsible for communicating the message of the President to the public, doing special projects websites to garner support for a bill the president is hot on, etc.

Nobody will die if these IT people screw up.

</comment></comment></comment><comment><USER10> Hate to rain on the parade, but the government should maybe deal with basic record retention before we look for it to enter the Information Age. We can't get at Lois Lerner's email, we can't get at the Secretary of State's? We're supposed to believe the White House didn't wonder why email to the Secretary of State wasn't going to a .gov address?

Information and the flow of information is power. So far I don't see much sign that this Administration is actually interested in handling that power in an accountable fashion.

Until we get that priority squared away, I'm not very interested in the bells and whistles.

<comment><USER11> " _We can 't get at Lois Lerner's email_"

That turned out to be a flat lie. Recently, when the appropriate investigators went to the people who maintain the backups, they found that no one had ever asked them for the emails, and they were available. Supposedly, a criminal investigation is underway.

</comment></comment><comment><USER12> Good for him. However this part of article bothers me: "As a longtime advocate of open source — an online model that allows free access to websites' source code — Recordon was awarded the Google-O'Reilly Open Source Award in 2007."

<comment><USER13> Would you mind explaining why that bothers you? It seems innocuous to me.

<comment><USER14> The word "website" is not correct in that statement.

<comment><USER15> In the context of Facebook it's not that inaccurate though (it doesn't say only the source code of websites).

</comment></comment></comment></comment><comment> at-fates-hands What are the odds the incoming administration (be it Democrat or Republican) will keep these high profile IT people around after Obama exits?

</comment><comment><USER16> why anyone works for a government which openly tortures is confusing to me. Where do people draw the line, is it at genocide?</comment>


Collected Notes: A note-taking blogging platform - <AUTHOR> https://collectednotes.com <comment><USER2> Looks good! This definitely fills a niche! I think markdown is a great choice. There is an alternate universe where people learned a small amount of markdown syntax instead of learning Microsoft Word (really would've had to be something like html/LaTex though given the time frames). We probably would've have been a more "web first" society. Thanks for sharing!

</comment><comment><USER3> I like the concept but not able to understand why I would like to write in markdown?! Markdown has a very steep learning curve imo. As a general user (note taker or blogger) you are asking me to learn something else in order to derive value from your solution.

Is it a note taking app or a blogging app?</comment>


Show HN: Tic Tac Toe Implemented in Elm - <AUTHOR> https://vishaltelangre.com/tic-tac-toe <comment><USER2> I did a few games with Elm but used the SVG route myself. It's usually a lot easier to work with and you don't really have to deal with CSS and the DOM update is still lazy.

Finally, I think there are a few red flags in your code. For example you have a hardcoded list of cell locations but you use a method to compute the number of rows which has a sqrt in it... might as well hardcode the number of rows :)

<comment><USER3> Is the code for these games available? I've never programmed a game before, I want to do it. Maybe doing it in Elm will be a good idea.

<comment><USER4> I don't mean to be a naysayer, but if you want to program a real game, Elm really isn't the language to do it in. Perhaps at some point in the future it'll be a language to watch, but there are far better options available right now, even if you want to stay functional.

</comment></comment></comment><comment><USER5> I'm slightly surprised that a simple tic-tac-toe game in high-level FP takes 400 lines of code.

<comment><USER6> Not sure how you reached that number. The Elm code, with blank lines removed, is less than 320 lines. Given the incredibly spacious style its written in, I'd definitely say 300 rather than 400.

But sure, that's still a lot. Part of it is that Elm lacks the proper generics support (which you can observe in the function names) and part is that the archotecture chosen by the creator may not be optimal in terms of maintainability. For example,

        type Cell = NotOwned CellLocation | OwnedBy CellLocation Player

and I think, why not

        type Cell = Cell Location (Maybe Player)

? Its isomorphic (carries the same information) and it removes the need for the complicated getters.

<comment><AUTHOR> Yes, there are lot places I think I can optimize it. It is an initial implementation to get something working. Thanks.

</comment></comment></comment><comment><AUTHOR> Source code is at [https://github.com/vishaltelangre/elm-tic-tac- toe](https://github.com/vishaltelangre/elm-tic-tac-toe).

</comment><comment><USER7> shameless self plug: a chutes and ladders game in elm on the client, python (flask) on the server. [https://github.com/guyromm/snakes-and- ladders](https://github.com/guyromm/snakes-and-ladders)

</comment><comment><USER8> That was fun</comment>


Fast Directory Listing on Linux - <AUTHOR> https://github.com/romkatv/gitstatus/blob/master/docs/listdir.md <comment><USER2> A lovely way to sort strings, especially strings that may have long shared prefixes, is a 3-way partition quicksort. This allows you to avoid walking the same prefix over and over the way that memcmp does.

Pick your pivot element and partition the strings into <, =, and > based on the first character only. Note this differs from classic quicksort in that we're maintaining three regions, not two. Now recurse for all three regions, except for the = region you look at the second character only. etc.

It's probably a loss for filenames which tend to be short, but for long strings this is a very easy to implement speedup. There's lots more optimizations possible with this technique, e.g. counting-sort style bucketing.

<comment><USER3> what about symbol trees ?

/a/b/c/d/e => {a,b,c,d,e} symbol table + [a,b,c,d,e]

and you accumulate into a tree/trie

<comment><USER4> Tries/trees have pointers which can be slow, so I'd measure before using something like this.

</comment></comment></comment><comment><USER5> You can get faster than memcmp by rolling your own SSE/AVX compare.

memcmp typically has a few branches and instruction cachelines of just trying to verify that it's running on aligned memory and checking how aligned (ie 8byte stride vs 64 byte stride). All that can be skipped with a for-loop of intrinsics if you the programmer know alignment characteristics the compiler cannot infer.

<comment><USER6> dont you want the compiler to do this for you, with ARCH flags? a bit of foresight and a little checking seems like enough.. excessive ASM is a mistake these days

      CXXFLAGS -march=sandybridge -mtune=sandybridge

<comment><USER4> The point is that the compiler does not have enough information to do this automatically.

<comment><USER6> .. meant to say, _after_ rewriting code to avoid (this,that) extra actions, _then_ let the compiler make the optimized code.. _not_ saying "just re-run the old code with CFLAGS thus" ..

</comment></comment></comment></comment><comment><USER7> A really important optimization when scanning directories is to avoid doing the _stat_ on each object just to get its type. On Linux, the _struct dirent_ has a _d_type_ (not specified by POSIX and not supported by all filesystems) which forward the type of the object from the inode to the directory entry. When portable programs that use _stat_ to get basic type information (like "is this a directory or a regular file") are converted to use _d_type_ , the speedup is dramatic.

<comment><AUTHOR> Yep, this is mentioned in the doc.

> [...] every element in entries has d_type at offset -1. This can be useful > to the callers that need to distinguish between regular files and > directories (gitstatusd, in fact, needs this). Note how ListDir() implements > this feature at zero cost, as a lucky accident of dirent64_t memory layout.

</comment></comment><comment><USER8> I think this is an awesome article and a really cool idea on how the author incremetally improved their code for performance. But is the API as easy to use for a programmer? I find a complex API into a function makes it much harder to understand even if its your own code months later. I also feel like the parent_fd parameter is sort of glossed over and is an exercise on how to pass that into the final versions of the function since it's just expected to be there in those versions.

<comment><AUTHOR> The real implementation of ListDir accepts the descriptor of the directory it needs to list (not parent_fd plus dirname like it's done in the article) and doesn't close it. This is fairly straightforward. You still have to pass Arena as an extra parameter though, which adds inconvenience, and d_type is still at -1 offset -- a rather unusual thing for an API.

The biggest downside from the API perspective is that directory listing and sorting are bundled in a single function. The insight of v5 in the article is that this bundling allows us to achieve higher performance than what we can get if we have a separate API for listing which we can compose with sorting.

So it's a far cry from the cleanest API you can imagine. Levels of abstractions often have to give way when maximum performance is the goal.

<comment><USER8> Since this is C++, what about using a thread_local Arena for the storage? Then you could simplify the API a bit and not re-allocate too!

I also agree, the parent_fd is trivial but it isn't as easy to use as no parameter.

</comment></comment></comment><comment><USER9> >As an added bonus, those casts will fend off the occasional frontend developer who accidentally wanders into the codebase.

Beautiful lol

</comment><comment><USER10>
      Every directory has entries "." and "..", which we aren't interested in. We filter them out with a helper function Dots().

      bool Dots(const char* s) { return s[0] == '.' && (!s[1] || (s[1] == '.' && !s[2])); }

why would you iterate over every single file entry? both . .. entries will land at one end of sorted list anyway.

<comment><AUTHOR> "." and ".." are filtered out before sorting. Sorting is O(N^2) in the common case (when there are fewer than 65 files in a directory), so it pays off to reduce the number of entries by 2 before we get there.

<comment><USER10> n log n? and arent . .. entries always at the beginning of the list? could just skip first 2 elements (or stop comparing after filtering . ..). What about scandir?

<comment><USER11> > n log n?

From the article: _Digging into the source code of std::sort() we can see that it uses Insertion Sort for short collections. Our 32-element vector falls under the threshold. Insertion Sort makes O(N^2) comparisons_

> arent . .. entries always at the beginning of the list?

No.

</comment></comment></comment></comment><comment><USER12> If you're not hitting the caches then there's a lot more to gain by optimizing IO patterns, either by traversing multiple directories in parallel (to fill SSD command queues) or by performing readaheads on the directories (to be friendly to HDD elevators). Sadly the latter is somewhere between difficult and impossible .

<comment><AUTHOR> gitstatusd calls ListDir in parallel from multiple threads. At least with a fast SSD it's CPU bound. I don't have an HDD to test on.

<comment><USER12> have you dropped disk caches before each bench iteration?

<comment><AUTHOR> No, I did the opposite. I made sure the disk caches are warm before each benchmark. Since all versions of ListDir are identical in terms of IO demands, warming up caches is an effective way to reduce benchmark variability and to make performance differences of different code versions easier to detect without changing their order on the performance ladder.

<comment><USER12> That's reasonable when optimizing the average case, but not for the worst case.

<comment><AUTHOR> I would agree with this sentence if "optimizing" were replaced with "making marketing claims". Optimization is the process of finding the fastest implementation. In the case of ListDir each successive version is faster than the last on a benchmark with warm IO caches, therefore it'll be faster on the same benchmark with cold IO caches (this is not a general claim; I'm talking specifically about ListDir). Benchmarking with warm IO caches is easier (invalidating caches is generally very difficult) and yields more reliable and more actionable results, hence it's better to benchmark with hot caches. It has nothing to do with the average vs worst case.

</comment></comment></comment></comment></comment></comment><comment><USER13> In my experience, another important component of fast directory listings is a cron job that does "ls -R" every half hour. Because you can't control the eagerness of fs metadata caches even if your fileserver has plenty of free mem.

<comment><USER14> You can actually tune some VFS parameters to make it less likely to evict the VFS caches (vfs_cache_pressure), however, it's not well documented which settings work the best other than to set it to '1' for 'mostly don't' which mostly works well only if you have way more RAM than you need and will tend to go quite badly if that is not the case. I think the only way to determine that well would be to benchmark it for your specific use case. But it may help you over a recurring "ls -R"

</comment></comment><comment><USER15> > returning vector<string> is an unaffordable convenience.

Not anymore since C++11.

Reusing vector storage is good, but you can still use move on parameter and not the reference.

Although, in this case, reference is probably easier to write.

<comment><USER16> I think he was concerned about the cost of allocating separate strings that go into the vector.

<comment><AUTHOR> Yep, every string is potentially an allocation (unless it's short and std::string implements Small String Optimization) plus O(log N) allocations by the vector itself.

C++11 didn't make returning the vector in this function faster because it's written in a way to take advantage of RVO. It did make growing the vector faster though -- individual strings now get moved instead of copied.

</comment></comment></comment><comment><USER17> I wonder how this compares to filesystem traversal APIs like fts/ftw?

<comment><AUTHOR> fts and ftw are glibc wrappers over glibc wrappers that I had to bypass for better performance. They are made for convenience, not for speed.

<comment><USER7> Also: last time I looked at _fts_ in the context of glibc, it did not support 64 bit file offset builds (-D_FILE_OFFSET_BITS=64).

I was looking at _fts_ because there exists a BSD licensed implementation of _nftw_ in terms of _fts_ ; I was researching the possibility of creating a semantically extended/enriched version of _nftw_ , without coding it entirely from scratch. So I plonked that implementation into my program and, lo and behold, error message from glibc's _fts_ header file about not supporting 64 bit file offsets.

</comment></comment></comment><comment><USER18> What about using nftw directly instead of opendir/readdir

<comment><AUTHOR> nftw is a wrapper over opendir/readdir, not the other way around.

</comment></comment><comment><USER19> But why? Why create a tool that does `git status` 10x faster?

<comment><AUTHOR> The job of gitstatusd is to put Git status in your shell prompt. See screenshot at the top of [https://github.com/romkatv/gitstatus](https://github.com/romkatv/gitstatus). This is an amazingly convenient tool.

When you are working on chromium, on every command you type gitstatusd needs to list the contents of 25,000 directories. Low level optimizations like the ones described here are what makes gitstatusd 10 times faster than `git status`, which in turn makes prompt responsive when otherwise it would be sluggish.

<comment><USER20> Isn't inotify meant for exactly this kind of thing, though? You are already introducing a hard dependency on Linux syscalls in "v4" of the optimisations, so it would seem advantageous to make use of that to avoid the full directory traversal for most of the time.

<comment><USER21> inotify requires you to hold open fds for all the dirs and files you're watching iirc, so in repos that large, you'll be crushed by the file- descriptor-per-process limit.

<comment><USER22> It doesn't, you might need to tweak its limits via /proc/sys/fs/inotify/max_* on such repositories, but those limits are not the same as the much lower open FD limits (as in ulimit -n ...).

<comment><AUTHOR> I've posted some details explaining why gitstatusd doesn't use inotify in [https://github.com/romkatv/gitstatus/commit/050aaaa04b652e15...](https://github.com/romkatv/gitstatus/commit/050aaaa04b652e15ab4c28b669f1ed753f9d0519). The short version is that the default max_user_watches limit is much too low to be useful for gitstatusd and I cannot ask or expect users to change their system settings.

</comment></comment></comment></comment></comment></comment><comment><USER23> > As an added bonus, those casts will fend off the occasional frontend > developer who accidentally wanders into the codebase.

[https://blog.aurynn.com/2015/12/16-contempt- culture](https://blog.aurynn.com/2015/12/16-contempt-culture)

Code that intentionally celebrates its unapproachability is not a badge of honor or pride, even as a joke. It might occasionally be an unavoidable necessity, in which case it needs enough documentation that the next person who has to deal with it has the best chance possible.

<comment><USER24> I mean, I think that was a bit of a joke. It's ironic that you rail against this dude for "code that's hard to understand" in reply to a long-form prose article about understanding the code and how it got there..

We'll probably have to agree to disagree.. but that blog post doesn't really resonate for me... especially the end where it talks about keep it to your "own language." I've never had patience for identity politics especially in the case of a god-damn programming language.

<comment><USER23> > It's ironic that you rail against this dude for "code that's hard to > understand"

I'm sure that it _was_ a joke, and that doesn't make it better. I'm not suggesting that this code _was_ hard to understand, and I enjoyed the article. I'm calling out this _particular_ point, and suggesting that even as a joke, mocking "frontend developers" is very much from the same territory that promotes "Real Programming" and mocks people for their choice of programming language or technology.

<comment><USER24> I mean it is pretty true that most frontend developers do not have the inclination to go trodding into a C++ code base making syscalls without a wrapper. Even taken _uncharitably_ seriously, that is _all_ the comment was insinuating. Everything else is added by you the reader.

And anyway I'm fine with exclusively frontend devs staying out of systems stuff. Anyone that wants to read OS kernel and compiler source code has tons of choices. Most I've talked to find it dry and boring. They don't belong there... that's fine.</comment></comment></comment></comment>


All the sizes of iOS app icons - <AUTHOR> http://mrgan.tumblr.com/post/708404794/ios-app-icon-sizes <comment><USER2> This icon size fragmentation will doom the iPhone platform!

More seriously, could someone just resize the big one a few times so we can compare and see what actual benefit is being provided here?

This pixel obsession seems like a useless hangover of the 72ppi desktop days, just like the "programmer" fonts and pixel-art games that mean so much to people of a certain vintage but baffle younger folks.

Yes it made a difference then, but every increase in pixel density and resolution has made it a less and less useful way to spend your time.

Making pixel perfect icons for a platform advertised as having pixels too small to see seems particularly odd.

<comment><USER3> I've done some quick rescaling examples. Rescaled are to the right on the iOS ones, above for the OSx ones.

<http://img96.imageshack.us/img96/8020/iosicons.png>

<http://img404.imageshack.us/img404/6851/osxicons.png>

The iOS ones aren't the best example - it's not a complex icon - but you can still see the hand crafted ones are better, e.g. some of the lines on the rescaled items are not the desired 1 or 2 px widths and so look blurry (e.g. the ipad icon); you don't have the texture; and you lose the corner line definition (e.g. see ipad settings).

The OSx ones are better examples as it's more complex. The scaled icons look rubbish.

We're not there yet. You still need to tweak icons so they look good at various sizes - subtle things like 1px lines or highlights still need to manual tweaking. Pixels too small to see doesn't make the problem go away, you still want to optimise for resolution so you match the pixel grid for sharp definition. Some people don't have that attention to detail (and those devs can just rescale them) but many do - and personally I think it's worth it. And I appreciate having the opportunity to hand craft rather than have the OS just scale it for me.

<comment><USER2> Nice work. For the iOS ones the only one I can really see any meaningful difference for is the iPad one, and for that one I prefer the scaled version as it seems more "blueprinty" to me. As with text, sticking to the pixel grid can cause things to become unexpectedly bold or thin as you change scale. Similar happens to the smallest size icon too, though it's not as big a difference.

Tried it on my iPhone too, but wasn't sure how to ensure 1-to-1 pixel scale, default in Photo viewer seemed like it might be that though.

</comment></comment></comment><comment><USER4> Does Apple actually have some plan here, or do they just do whatever they need to to make their apps look good, and all the 3rd party devs just suffer?

<comment><USER5> It's Apple, they're going to do whatever makes their product look as good as it can possibly look. If it means that the 3rd party devs have to create another icon size (gasp!), then so be it. You're not really required to, though. You can just resize your iPhone icon to the iPad, iPhone 4, etc sizes and be done with it. It will not look so good, though.

<comment><USER6> Icon design, as well as logo design, deal with this normally. This is exactly why people charge you hundreds or thousands for icons and logos... things you don't really get at 99designs.

</comment></comment></comment><comment><USER7> What a mess.

<comment><USER8> I get the feeling some pixel-wranglers might enjoy creating these optimized versions if it weren't for the uncertainty around their size/use.</comment></comment>


Firefox 4 with lots of speed improvements and inline SVG - <AUTHOR> http://ajaxian.com/archives/firefox-4-with-lots-of-speed-improvements-and-inline-svg?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+ajaxian+%28Ajaxian+Blog%29 <comment><USER2> Just installed the Beta on OSX. It's Fast. I mean: Chrome fast.

<comment><USER3> Keep in mind the Jaegermonkey project, which will greatly improve javascript performance is still under heavy work. So as of today, the javascript performance is still significantly behind chrome. (<http://arewefastyet.com/>)

That being said, javascript performance currently has little impact on user- perceived speed, and the "Reducing I/O from the main thread", GPU accelerated rendering, and startup/shutdown perf improvements are already causing incredibly noticeable perf gains.

<comment><USER2> I didn't mean Javascript. Although it is better than 3.6.x — I meant the application. It loads fast, it's light and robust. It feels incredible

</comment></comment></comment><comment><USER4> My current install of Firefox (3.6.4) supports inline SVG -- there's a demo on Mozilla.org at < [https://developer.mozilla.org/presentations/xtech2005/svg- ca...](https://developer.mozilla.org/presentations/xtech2005/svg- canvas/SVGDemo.xml) >. The URL suggests this demo was published in 2005.

What's special about inline SVG in Firefox 4? Is it hardware-accelerated?

e: and this inline SVG demo < [https://developer.mozilla.org/samples/svg/swarm-of- motes.xht...](https://developer.mozilla.org/samples/svg/swarm-of-motes.xhtml) > says it works in Firefox 1.5!

<comment><USER5> The first link you give is to an SVG document, the second is SVG in namespaced XHTML.

SVG (and MathML) is now part of HTML5 so you can put it in HTML documents. Firefox just replace their HTML parser with a new one which is faster, runs on its own thread, understands HTML5 properly and supports SVG inline in HTML as a feature too. This blog post goes into some details:

[http://hacks.mozilla.org/2010/05/firefox-4-the- html5-parser-...](http://hacks.mozilla.org/2010/05/firefox-4-the-html5-parser- inline-svg-speed-and-more/)

</comment></comment><comment><USER6> What an absolute blast of new technology for the browser! I've got to believe it's going to open a whole slew of new attack vectors though.

</comment><comment><USER7> I don't have very high hopes for Firefox. They promised V8-like speed with 3.5, 3.6, and now they're promising it with 4.0, but they're still more than twice as slow, and have been every single time I have tried them.

The only reason I use Firefox anymore is Firebug. All of my normal browsing occurs in Chrome. Even if they eventually get Firefox's VMs as fast as V8 or SquirrelFish Extreme, the interface is clunky and old and much, much slower than Chrome, and really that's what makes it feel so much faster; Chrome starts immediately, I can move tabs quickly, there's no needless address bar/search bar segregation, and so on. I think I am a permanent Chrome user.

Firefox has had years to catch up to Chrome by this point and their results have been pretty bad, imo. Unless they can get it together, I think that Fx is destined to decline permanently soon.</comment>


E.U. Leaders Bolster Internet Access Protections - <AUTHOR> http://www.nytimes.com/2009/11/06/technology/internet/06net.html

<comment><AUTHOR> The most important quote:

 _Under the compromise, any decision to sever Internet access, an approach championed by several E.U. countries seeking to clamp down on digital copying of music and movies, must be subject to a legal review._</comment>