Chrome Dev Tools are unusably slow. FF is much better, is it just me? - <AUTHOR> Has anyone else noticed that Chrome Dev Tools have gotten almost unusably slow for source-mapped debugging? Reached a breaking point (no pun intended) today where the console wouldn't start printing till several seconds after the page loaded.
Hitting a breakpoint takes several seconds before the page even let's you know it's hit breakpoint, then several more before the location loads in dev tools.
Switched to Firefox today, and damn Firefox feels like butter, clicking everything feels faster. Breakpoints load up pretty much instantly. <comment><AUTHOR> Also, on chrome if you reload when you're on a breakpoint, you have to crash the tab and create a new one or it will never load. Being able to re-load in the middle of debugging on Firefox and not re-create my whole tab is such a relief.

</comment><comment><USER2> I switched to FF when Quantum came out and have not looked back. Chrome is bloatware. Plus using it is just encouraging its mission to obliterate any semblance of browser standards.</comment>


I Left Red Hat - <AUTHOR> https://hackernoon.com/why-i-left-red-hat-jde824ff <comment><USER2> The actual title at the page in question is "Why I Left Red Hat", and details the work the author is doing to help set up the AI Infrastructure Foundation and the Practical AI Ethics Foundation.

<comment><AUTHOR> Ya, HN strips the "Why" part out of titles automatically.</comment></comment>


Sony: The Company That Kicked the Hornet's Nest - <AUTHOR> http://www.businessweek.com/magazine/content/11_21/b4229035889849.htm <comment><USER2> When Sony started their assault on GeoHot I sold everything in my house that had a Sony logo on it. Not only have they had the info of PSN players compromised, they are now a company with a reputation of going after hackers. The best way to deal with people modifying your hardware is to embrace it the way Microsoft has, or at least understand it will happen and focus on your product the way apple does. Instead, Sony's arrogance threatens to destroy it. The times are changing and if Sony can't accept that, maybe they should go back to rice cookers.

<comment><USER3> We've got a 52" Bravia, Sony 5.1 system, PS3 with 15 games or so and will absolutely _NEVER_ knowingly give Sony another penny.

As soon as the PSN is up and I'm able to delete the PSN account (which they're saying will only be possible from your original PS3) we're going to pawn the PS3 and games.

I don't want Microsoft to win the living room and so won't be supporting them either. I guess unless Wii2 has beautiful graphics we'll be an exclusive PC gaming house.

The whole situation is disgusting. I don't get to play much but it really pisses me off that Sony has essentially killed one of the only great activities that I've kept from child to adulthood.

<comment><USER4> > I don't want Microsoft to win the living room and so won't be supporting > them either. I guess unless Wii2 has beautiful graphics we'll be an > exclusive PC gaming house.

On which PC operating system?

<comment><USER3> Steam on a Mac Pro.

<comment><USER5> I hope you enjoy both the games :)

<comment><USER3> Wait there's two!?

</comment></comment></comment></comment></comment></comment><comment><USER6> The real question is, for all companies that try to control access to even single user software via online authorization systems, how wise does this look now?

I'm still playing Atari 2600 games, decades later, because they still work. Tying down use to a single-point-of-failure-authorization-system guarantees that your investment in creative works has a short shelf life. But most gamers know at least what the original Super Mario Bros theme song sounds like as coming from an NES.

<comment><USER7> _guarantees that your investment in creative works has a short shelf life_

Talk to Thomas if you want actual numbers, but the overwhelming majority of AAA games have fairly predictable sales curves with a peak window measured in weeks or, in some cases, days. See also books, movies, music, etc.

Evergreen content is highly anomalous in creative industries.

<comment><USER8> AMA video game researcher (Computer Science). I can confirm the truth of this, but I don't have any hard sources right now.

If a AAA title doesn't move 1 million copies in opening week, the studio is going to be in trouble either directly financially, or with the publisher (see: Mirror's Edge).

Everyone is fully aware of the ridiculousness of where the market is right now.

<comment><USER9> I bet game developers hate this effect, years of development time to effectively try and market a game into peoples hands in the first couple of weeks whether they like it or not.

This I much prefer the path many MMO's have taken or a game like TF2, continue to add over time to keep a solid value proposition for years to come rather than the 2 weeks after it comes out.

<comment><USER6> I think this is sort of what I'm getting at. The Game industry is moving rapidly to copy the Movie industry. Years of work, tens of millions of dollars, splashy and expensive ad campaign all culminating in a couple weeks' worth of sales and the bargain bin/used game box/forgotten 3 months later. The vast majority of which barely break even with production costs.

Old game mags used to have a metric called "replayability". Games with poor re-playability were dinged by the gaming press as offering low-value for the dollar to the gamer. I'm just wondering if the Movie style approach offers similar low-value for the dollar for the game makers in terms of the amount of money required to advertise to gamers for every AAA title that comes out the door, only to throw all that work away next month. It's almost like the industry is pumping out Mandalas, then sweeping them away.

Heck Mega Man (Rock Man) has had 7 or 8 games with virtually the same artwork (the most expensive part of game production). A modern developer might look at this and say "we'll just release a MegaMan game and every year release more enemies with more stages, weapons and bosses that just figure into the main release."

(I'm thinking Mega Man of course because I'm in the process of replaying through the series again and Capcom is losing millions from the PSN nonsense).

I guess what I'm rambling about is that there has to be a better way for the studios and the gamers to find better value in terms of longevity on both the development costs and the purchase price of the games -- and tying the games to a transient online auth system isn't going to do it.

<comment><USER9> One issue is perception of value. It's a lot easier to monetise a brand new game over one which is being updated or added to.

To everyone except hardcore gamers the current release method is probably very tiring, as in I might pick up a new game and play it for a few months at the rate I play games. In that time so many of these big titles would have come out.

It also means once these releases drop off best seller lists they quickly become unloved. I've seen big bugs and game mechanics issue that just never get fixed I guess because most of the sales have already happened.

</comment></comment></comment></comment></comment></comment><comment><USER10> I keep on pointing this out. Compare the two groups:

        - Sony a big company with big company HR bureaucracy
        - The worldwide interest group re: Hacking

Sony might have one or several groups within the company involved with a given project. The population interested in hacking a popular Sony project is not only very large, but constitutes a _frictionless global meritocracy_ interacting via the Internet.

Conclusion? When it comes to big companies vs. the hacker communities, it's asymmetrical warfare, and _the big companies are the underdogs_. Big companies are outnumbered and outclassed.

However, instead of behaving like the outclassed guerillas they are, they keep acting like they're the empire, and keep getting bloodied in losing fights. All it takes is a few minutes of thought to realize that DRM is the _worst possible_ tactical position they could possibly take. Companies that do this are deluded.

But here's the real kicker: It is possible for companies to use the principles of asymmetrical warfare and win fights. You have to pick your battles based on sound economic principles. You have to pick your battles, such that the huge numerical and training advantages of the adversary are moot.

I know how to do this.

EDIT: Here's a hint. Take a look at your bug tracker. Imagine that it only has reports where the bugs are hard or impossible to reproduce. Imagine that the consequences of the bug are separated by several weeks time from the probable causes. Imagine that there are tens of thousands of such reports. Imagine that the reports only constitute a small fraction of actual occurrences.

It is quite possible to put parties trying to crack your system in exactly this position. If you make it easy to "crack" your program, and instead put all of your effort towards clandestine detection, then there is no incentive for people to fully crack your system, such that they can find the detection mechanisms. Separate the consequences of detection from the actual detection by a time span of several weeks. Use detection to protect value-add and up- sell revenue which is inherently dependent on server-side implementation.

Use honeypots. Your "easily cracked" version 1 becomes a kind of honeypot for detection, which protects your real revenue stream. Present a hack-y feeling loophole that lets people acquire your value-add content for a sizable discount from full-price.

Remember, you're fighting an asymmetrical conflict. Be sneaky. Don't even let your opponent know she's even in a contest if you can help it. Fool them into thinking they've "won."

<comment><USER11> HBGary?

<comment><USER10> Savvy fighters of asymmetrical conflict don't announce their location to their enemies. Savvy fighters are prepared ahead of time and have security in place before they open hostilities. Savvy fighters of asymmetrical conflict compartmentalize their assets, so losing one doesn't entail the loss of others. Savvy fighters of asymmetrical conflict have contingency plans.

None of the above applies to HBGary.

</comment></comment></comment><comment><USER12> This seems like complete speculation.

Is there any evidence that Sony's data breach is in any way related to a hacker backlash? The closest thing the article provided was a file left on Sony's servers referencing Anonymous. That's pretty week.

<comment><USER8> Well, it will be until anyone is apprehended.

I think it is fair to say that Sony did "kick the hornet's nest." Is that what caused them to become a target for black hats? Unlikely. Whoever did this was likely looking for a big score, likely to try and sell the data to organized crime, and thus an ideological attack doesn't make a lot of sense.

However, it seems very plausible that some gray hats like Anonymous started kicking the tires of their security systems, and shared information that indicated things were looking lax, and that's what brought the black hats in.

If you're gonna be dumb, you gotta be tough. And Sony obviously wasn't.

</comment></comment><comment><USER13> The media is largely conflating two very different definitions of "hacker" here. There's a big difference between the people who jailbreak hardware and the people who steal credit card data. The former is arguably legal and moral, the latter is neither.

The type of hacker that brought down PSN and stole credit card data needs no motive other than the millions of dollars of credit fraud that will follow. They need only opportunity.

<comment><USER14> Motivation aside, there's pretty strong parallels between breaking into the PSN, and breaking into the PS3 hypervisor. Obviously the hypervisor was a much harder nut to crack and GeoHot is likely far more skilled than the PSN people, but he's basically a grey hat systems cracker.

</comment></comment><comment><USER15> Actually Sony brought this unto themselves longer than that, starting with the Sony-BMG rootkit. I've actively avoided buying Sony products since.

</comment><comment><USER16> The attack on Sony was not against the company, it was against its customers. I'm sure this will damage Sony in a huge way, but I have 0 respect for the people who did this.

<comment><USER17> I'm sure it was against the company too, but I agree the people who actually did the break-in are not getting enough flak.

</comment></comment><comment><USER18> I just finished watching Sony's PSN Relaunch Announcement. It kept on making me think: Why not just hire Geohotz?

Let's just say Geohotz accepts the offer and works in PSN. I think the general public will be convinced that PSN is now secured by the top elite hacker in the world who pointed out Sony's security flaws. Furthermore, Sony will appeal to consumers that they're humbly admitting their mistake and are dedicated to improve their security.

Yes, I know the root key and identity theft are completely different. Also, whether Geohotz actually does anything to Sony is irrelevant.

I'm strictly talking within PR scope.

<comment><USER19> Do you think he'd accept? Would you?

<comment><USER20> Do you honestly think they would ask him? Why would they? Is he an expert on server side security even? The security vulnerabilities that were exploited for the PSN hack have almost nothing to do with his realm of knowledge. What will actually happen is this: Sony, MS, Nintendo, EA, Activision, and virtually every other IP holder will lobby very, very, very hard to change the DMCA to be far stricter, and people that do anything even remotely close to what Geohotz did will find themselves in a Federal prison, regardless of whether or not what they did was truly unethical.

<comment><USER19> >Do you honestly think they would ask him? Why would they?

Yes. Because he is quite clearly a talented hacker. Do you think it would make more sense to hire somebody who may not have experience with sony's technology?

</comment></comment></comment></comment><comment><USER20> "The Hotz incident was followed in February by a German police raid on the apartment of Alexander Egorenkov, another hacker who had distributed software that let PlayStation consoles run homemade games. Other technology companies have found ways to channel hackers' energy without resorting to lawsuits. Microsoft (MSFT), for instance, permits hackers to unlock its Kinect gaming device and invites some of them to its conferences. Google (GOOG) pays white- hat hackers who help identify bugs. Sony is far more uncompromising, says Robert Vamosi, a senior analyst at security firm Mocana. "Hardware manufacturers like Sony just aren't very good about listening when a security researcher presents them with a flaw," Vamosi says. "

That paragraph I just quoted up there is some of the sloppiest journalism I've ever seen. The analogy being drawn is completely without merit. Microsoft is "hacker" friendly because they allow people to fool around with the Kinect? And Sony is hacker unfriendly because they removed a feature (the Linux install option) that they feared would lead to massive piracy? And Google is just great because they offer bounties for security flaws? In what way are any of those facts similar? None of them are even referring to the same sort of "hacking." If Google made a game system that made its money based on licensing fees from software sales, it would do everything within its power to prevent piracy. Microsoft already does this. Running homebrew was not what Sony was trying to stop.

What I'm about to say will probably be very unpopular here. Anyway, the "hacker" (I hate their usage here... they should say cracker) excuse that they are just trying to enable homebrew software is utterly laughable as well. As soon as Geohotz was successful, numerous other companies capitalized on it and went to that next (tiny, tiny, tiny) step to enable running pirated games. Should Sony have sued Geohotz? Probably not. But what did Geohotz honestly think people were going to do with his developments? Does he want people to keep making games for the PS3? Did he honestly think that people wouldn't immediately turn around and use his progress to pirate games? The ethics of this supposed "hacker" community leave a lot to be desired, and I truly wish we could return to the old usage of the term, and stop applying it to people that are really just safe crackers and thieves.

Our laws are completely inadequate for addressing this kind of abuse now, and I dread to see what sort of draconian measures will be put in place in response to this sort of shortsighted, unethical, and lame "hacking." If you don't want a closed system, then don't buy it. This is what will give us more open systems in the future, not enabling pirates.

<comment><USER19> The reason what you're saying is unpopular here is because it is fundamentally incorrect.

What difference do you see between hacking your PS3 and hacking your kinect? How is hacking your ps3 "cracking"? In my opinion, and I suspect that the vast majority of technologically literate people would agree with me, what happened with the PS3 fits the classic definition of hacking perfectly.

<comment><USER20> The Kinect hacks consisted of using the Kinect device for reasons other than originally intended. No laws were broken. The intent is basically pure. The hackers (because they are real hackers) just asked themselves "what else can we do with this hardware?" They broke no laws. They did no economic harm to MS, and if anything, helped them.

On the other hand, the PS3 hack will _primarily_ be used to enable piracy. That's it really. Did it initially enable homebrew games? Yes, but is that what the vast majority of people will use it for? You're deluded if you think otherwise.

The problem I have with non-ethical non-consequentialist crackers like Geohotz is that they are not solving a legitimate problem in the first place. If you want to make open systems, then stop providing monetary support to closed systems in the first place.

<comment><USER21> Console hacking in the past has contributed to new industry growth. When the original Xbox was hacked, one of the outcomes was Xbox Media Center (XBMC).

XBMC led to incentives to accelerate the development of home media center components like audio/video decoders. This obviously helps everyone in the growing media center industry.

XBMC also is directly responsible for the birth of at least two startups in the media center space, Boxee and Plex.

So while some companies in an established and profitable industry lost some revenue from piracy, a new industry got a big boost from people being able to experiment with and innovate on top of a console.

<comment><USER20> And what positive outcomes have come of Geohotz' work? Geohotz worked _exclusively_ to enable piracy! Sorry, but it's true! Sony removed the Other OS install option _because_ of Gehotz' work towards enabling piracy! Read his wikipedia entry (<http://en.wikipedia.org/wiki/George_Hotz>) if you don't believe me.

The PS3 was a freer console for the masses before his work. His work enabled piracy, theft, and constitutes extortion. What part of his initial explanation of the PS3 root key divulgence don't you understand? Here it is:

" ~geohot

props to fail0verflow for the asymmetric half no donate link, just use this info wisely i do not condone piracy

if you want your next console to be secure, get in touch with me. any of you 3. it'd be fun to be on the other side.

...and this is a real self, hello world although it's not NPDRM, so please wait to run... shouts to the guys who did PSL1GHT without you, I couldn't release this

first piece of homebrew you can run put in service mode, put on usb stick, boot"

"i do not condone piracy" = I don't think you should use this for piracy

"if you want your next console to be secure, get in touch with me. any of you 3." = I know this shit I did will be used for piracy, that's why you 3 (Nintendo, MS, Sony) may want to consult me to avoid the massive piracy that will surely result due to my hacks in the future

Is this not, in a sense, extortion? Is he not willfully and knowingly enabling theft?

My point is that the PS3 was a more open platform before Geohotz arrived on the scene. It would be more open today if it weren't for his efforts, which are almost entirely in aid of piracy and theft. Please, name one thing that he has enabled that wasn't previously possible with an Other OS install that is not essentially just stealing. Please. Go for it. Tell me I'm wrong.

I'm just a guy that makes a living making software, Geohotz is a guy that is making a living by robbing the companies that pay me. Why should we grant him the glorified title of hacker? RMS is a hacker. Linus is a hacker. PG is a hacker. Carmack is a hacker.

Geohotz is a cracker.

<comment><USER22> The one major thing I know of that has come of this is that I can put linux on my ps3 again. I'm happy about that. I'd like to think he willfully and knowingly unlocked a piece of hardware for the masses knowing it would primarily be used for piracy plus lots of other cool things too.</comment></comment></comment></comment></comment></comment>


7 Years Of YouTube Scalability Lessons In 30 Minutes  - <AUTHOR> http://highscalability.com/blog/2012/3/26/7-years-of-youtube-scalability-lessons-in-30-minutes.html <comment><USER2> Most of this is relatively straightforward and unsurprising. But the one part that grabbed me is about "jittering". They insert random delays into timed events (the example given is cache expiration) to prevent a thundering herd problem when all the parts of the distributed system see the event at the same time (and for popular content, presumably repopulate the cache from the backend simulteously).

This is simple enough when described, but is not a technique I've seen applied much in practice or discussed in the community. I'm wondering if it's something that gets reinvented for all the projects that need it or if it's secret sauce known only in youtube. Regardless, I thought it was pretty insightful.

<comment><USER3> The Adblock Plus blog details the thundering herd problems they faced. Their ad blocking lists checked for updates every 5 days. Eventually, many users' update schedules would converge on Mondays because office computers did not run over the weekend. Updates that had been scheduled for Saturday or Sunday would spill over to Monday.

[https://adblockplus.org/blog/downloading-a-file-regularly- ho...](https://adblockplus.org/blog/downloading-a-file-regularly-how-hard-can- it-be)

<comment><USER4> Windows does much the same thing w.r.t. policy refresh (which sucks down files from domain controllers) and update of "occasionally updated" metadata like last logon timestamp.

</comment></comment></comment><comment><USER5> What's this? Python? Apache? MySQL? But I thought you had to be running beta- release key value stores, esoteric web servers, and experimental programming languages if you wanted to scale!

/s

<comment><USER6> Got your experimental programming language:

 _> Vitess - a new project released by YouTube, written in Go, it's a frontend to MySQL. It does a lot of optimization on the fly, it rewrites queries and acts as a proxy. Currently it serves every YouTube database request. It's RPC based._

<comment><USER7> Ah yes, but it's using a ~30 year old technology (RPC).

<comment><USER8> Is RPC an actual technology? I thought it was more of a protocol design pattern.

<comment><USER2> Remote Procedure Call is a design paradigm for synchronous call-and-response network communication. The Sun RPC protocol is an actual technology defined in RFC1057: <http://www.ietf.org/rfc/rfc1057.txt>

It's not insane, though not terribly relevant in the modern world. The only common technology still using it is NFS.

<comment><USER9> If you look at the original RPC work by Bruce Nelson [1], it's pretty clear that there's no strict definition of it. I think most would argue that SOAP would be included, which is still pretty common.

1: [http://nd.edu/~dthain/courses/cse598z/fall2004/papers/birrel...](http://nd.edu/~dthain/courses/cse598z/fall2004/papers/birrell- rpc.pdf)

<comment><USER2> No, that's the ambiguity I was addressing. RPC means two things. The _protocol_ is used, for the most part, only by NFS. The _concept_ is pervasive.

</comment></comment></comment></comment></comment></comment></comment><comment><USER10> The first 10 minutes are about monetization from one of the Youtube dev advocates. Skip to 9:45 to get to the "good stuff".

As an aside, this fellow is probably one of the best presenters I've seen from the pycon videos for this year. Confident, smooth, not reading from a computer screen or sheet of paper, clearly smart and in firm command of the subject matter.

I'd love to see more talks from him.

<comment><USER11> Wadsworth to the rescue! [http://www.youtube.com/watch?v=G-lGCC4KKok&wadsworth=1](http://www.youtube.com/watch?v=G-lGCC4KKok&wadsworth=1)

</comment></comment><comment><USER12> "They wrote their own BSON implementation which is 10-15 times faster than the one you can download."

Curious to hear more about that one. If true, I hope they open source it, because that could potentially make MongoDB a lot faster for everyone.

EDIT: It's apparently in their vitess code. Relevant code: [http://code.google.com/p/vitess/source/browse/#hg%2Fgo%2Fbso...](http://code.google.com/p/vitess/source/browse/#hg%2Fgo%2Fbson)

<comment><USER13> fwiw I've done some python benchmarking; it happens that I'm actually genuinely needing a faster protocol right now: [http://stackoverflow.com/questions/9884080/fastest- packing-o...](http://stackoverflow.com/questions/9884080/fastest-packing-of- data-in-python-and-java)

</comment></comment><comment><USER14> I fully agree with Youtube faking data. However, I reckon they are faking a bit too much. Many times I would see 2000 likes and the video having 1700 views (Viral videos that is).

I knew the view counter wasn't propagated but the likes were and I was like: "Damn this is Youtube, kinda disappointing..."

I guess if both were propagated at the same time I wouldn't mind.

<comment><USER15> I honestly don't understand why they simply don't use out of sync data. You could have nodes periodically send aggregates of likes & views, and then add those in to the total ever N heartbeats. Why bother fudging the in-between.

<comment><USER16> They're probably propagating the likes and views independently. Which still doesn't explain why they allow counter-intuitive gaps like that instead of fixing them up on the client-side in javascript.

</comment></comment></comment><comment><USER17> Youtube started off as a dating website?

This has to go down in history as one of the best pivot decisions ever made.

<comment><USER18> Originally ebay started out as "auction web" hosted on the same site that Pierre Omidyar used for hosting information about the ebola virus.

</comment></comment><comment><USER19> "Dummer code is easier to grep for and easier to maintain.

The more magical the code is the harder is to figure out how it works."

A nice formulation of the kind of advice I keep reading here in HN.

<comment><USER20> "Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it." -- Brian Kernighan

</comment></comment><comment><USER21> At 11:28 he says, "at last count, there was over a million lines of python running this thing"

Having never worked with code-bases larger than ~50kloc, I have a lot of trouble understanding what 1 million lines of code is needed for, especially considering that python is such a high-level language.

Does anyone have any idea why there would be this much code?

<comment><USER22> > Does anyone have any idea why there would be this much code?

It's the world's 3rd biggest website with hundreds of billions of views and dozens of millions of users, so maybe that's why.

I think it's a credit to Python that a website that does that and has grown in a fairly haphazard fashion only has about 1000k SLOCs.

<comment><USER21> Oh, it wasn't meant to be snarky or a slam -- I'm honestly just curious what kinds of things require so much code? E.g., is it one or two things that dominate usually in codebases this size, or is it just a LOT of components, each of which is tens of thousands of lines long? Do these kind of counts usually include auto-generated code?

</comment></comment></comment><comment><USER23> I love the part on faking data. I take the viewpoint that only software testers care that the comment count is exactly correct in the majority of system. Users don't care.

<comment><USER24> LOL users care and they notice a LOT..Probably something like 5% of videos have a comment about how the view count is inaccurate.

<comment><USER25> does it stop them from watching videos or in any way hinder their enjoyment of the content?

<comment><USER26> If they feel strongly enough about it to leave a comment then I think it's safe to say it does hinder their enjoyment - in the same way that obviously broken things distract and displeasure in any medium.

</comment></comment></comment></comment><comment><USER27> My biggest gripe with youtube: why are comment almost always repeated? Yea i realize that most you tube comments are relatively worthless but I do tend to speed through them to get a feel for what the response is to a particular video. Inevitably I get through 20 comments and then the same 20 are repeated over again, often they are repeated several times. Perhaps they are trying to give the illusion of lots of comments or assuming the comments don't matter. Personally I find it extremely annoying, I'd rather them block to load more than repeat.

</comment><comment><USER28> <http://www.youtube.com/watch?v=G-lGCC4KKok> Video to the article from pycon 2012. Talk starts around 10 minutes.

</comment><comment><USER29> What about this:

> The number of videos has gone up 9 orders of magnitude and the number of > developers has only gone up two orders of magnitude.

2 orders of magnitude means at the very least, going from 9 to 100 developers, which is a huge increase, but it could mean way more. I wonder how big the team really is, and what the changing team dynamics are like on that scale at that pace.

</comment><comment><USER30> I'm sure many of us are disappointed that YouTube doesn't see consistent presentation of user comments as mission critical.

<comment><USER31> I am not. From what I have seen of YouTube, comments are vile, and mostly there are two strangers posting pointless arguments about something equally pointless.

For me, YouTube is good for watching videos. If I want to discuss it, I post it on FB.

</comment></comment><comment><USER32> I wonder how much speedup they could get from PyPy

</comment><comment><USER33> The part about "Faking Data" is quite worrisome.

</comment><comment><USER34> Uh, cheating?

"Cheating - Know How to Fake Data

Awesome technique. The fastest function call is the one that doesn't happen. When you have a monotonically increasing counter, like movie view counts or profile view counts, you could do a transaction every update. Or you could do a transaction every once in awhile and update by a random amount and as long as it changes from odd to even people would probably believe it's real. Know how to fake data."

So all those people who buy views are kinda screwed now :-) I suspect this is a bad example. I HOPE this is a bad example, if only for the KONY2012 campaign :P

<comment><USER35> No no, the correct amount of views will be recorded for a specific video, it's just that each webserver doesn't know the exact number all the time. You make each webserver fetch the correct value perhaps every hour, and fake it inbetween. You'll get an ok approximation, users can't tell the difference, and you don't have to fetch the actual number every single pageview.

<comment><USER34> Sir, thank you :-) I appreciate you clarifying this!

</comment></comment></comment><comment><USER36> Thumbs up if you're the 311th viewer</comment>


Good to great to gone - <AUTHOR> http://www.economist.com/businessfinance/displayStory.cfm?story_id=13980976

<comment><USER2> First you write a book about how these selected companies are really great. A few years later you write a book about how they took their eyes off the ball and now they are in the tank. Case in point the once wonderful Circuit City. Never wonderful in my book. I always found high prices, poor service, and poor selection. Maybe I should have interviewed the executives to see how great they were for myself.

But I did like stage four: the charismatic new boss, the new new direction, the silver bullet.

</comment><comment><USER3> _Mr Collins identifies five stages in the process of decline. Stage one is hubris born of success (possibly brought on by reading the case study of the firm in one of Mr Collins's earlier books)._

Snark alert (with bonus frown on apostrophe style).

 _"Our research shows that if you've been practising the principles of greatness all the way along, you should get down on your knees and pray for severe turbulence, for that's when you can pull even further ahead of those who lack your relentless intensity." Amen._

Damn it, now that we're imagining there's no religion, we get religion in business (the "relentless intensity", not the knees bit), religion in the environment, religion in food, health, computers ... it would be simpler to just use the real thing.

(Paging G.K.Chesterton and Pierre Boule to the white courtesy phone.)

<comment><USER4> > with bonus frown on apostrophe style

It appears to be correct with The Economist's own standards, since Mr Collins is singular. ([http://www.economist.com/research/styleGuide/index.cfm?page=...](http://www.economist.com/research/styleGuide/index.cfm?page=841359) )

I think I agree with you though, it looks awkward.</comment></comment>


Understanding client-side JavaScript frameworks – MDN - <AUTHOR> https://developer.mozilla.org/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks <comment><USER2> Long-time fan of MDN's quality content. This article has a different flavor than the more reference-oriented material, maybe necessarily due to the subject, discussing userland frameworks rather than standards and specs.

It's an introduction and overview of client-side frameworks, with groups of tutorials for React, Ember, Vue. As with other content on MDN, the writing is concise, approachable, patiently explaining the core concepts.

This would be helpful information to recommend to people who are getting started in the churning, chaotic but fertile landscape of JS frameworks.

It sounds like writers at MDN are working on more content like this. I like that they're bringing clarity and understanding, with open-source educational material. The web is better for it.</comment>


Humans evolving to escape from bacterial iron piracy - <AUTHOR> http://arstechnica.com/science/2014/12/yarr-humans-evolving-to-escape-from-bacterial-iron-piracy/

<comment><USER2> It annoys me when people try to look intelligent by inserting literary references without actually knowing what they are talking about, either by not remembering nor bothering to look it up, or never having read it in the first place, simply guessing and make stuff up. Any one of them are by themselves indicators of poor journalistic practice. What else did the article's author not check or simply make up?

> _Alice Liddell first encounters the Red Queen in Chapter 2 of Through the > Looking Glass. Alice tries to catch her, but although they each run faster > and faster, neither of them ever gets anywhere._

Although the writer of the article specifically references chapter 2, they obviously did not read it, nor even glance at the illustrations.

1\. The character in the book is only ever named as "Alice". The real person which the author knew, and on which the character "Alice" is based, was indeed named "Alice Liddell", but they are not one and the same.

2\. Alice does _not_ try to "catch" the Red Queen. In fact, Alice and the Queen are running _hand in hand_ , and it is the Red Queen which urges Alice to go " _Faster! Faster!_ ". The accompanying illustration shows the Red Queen running and holding Alice's hand, dragging her behind her since Alice has trouble keeping up.

<comment><USER3> > _It annoys me when people try to look intelligent by inserting literary > references_

Besides the old middlebrow dismissal question you should be asking yourself before posting ("is that the _most_ interesting thing one can say about this article?"[1]), let me ask you this: is the distinction you're making here at all material to the article?

Did you consider the possibility that the author hasn't read _Through the Looking-Glass_ in a while (a "Ph.D. in Cell Biology and Genetics" means you have to put off a good bit of recreational reading for a number of years) and thought that the explanation was close enough as background information about why a 40-year-old, fairly famous evolutionary theory is named the way it was?

And again I'll ask: do either of the author's two mortal sins you've pointed out in any way change the aptness of the metaphor or give the audience an incorrect impression of why it was named the way it was? Because I'm pretty sure they don't.

Sorry if I'm a little heated, but you might say it annoys me when people try to look intelligent by dismissing interesting things by nitpicking irrelevant details. Or maybe we shouldn't assume people's motives ("try to look intelligent"? seriously?), grant a little principle of charity, leave a correction for the author, and then engage in actually interesting conversation.

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

<comment><USER4> A more technical error is in

> [...] _that transferrin has undergone positive evolutionary selection in a > manner often seen in molecular arms races between mammals and viruses._

but all the discussion is about bacteria. Bacteria and virus are very different, so the strategies against them are very different too. (I'm not a biologist, but this strategy to sequester iron while in transit looks like unuseful against virus, because the virus is only active inside the infected cells. IANAB.)

<comment><USER5> I took it that the point was that evolutionary races might leave similar evolutionary histories whether they races against bacteria or viruses, not that the same iron mechanism had anything to do with viruses.

</comment></comment></comment></comment><comment><USER6> Sounds like TbpA would make an excellent target for an antibiotic.

<comment><USER7> Not necessarily.

The one bit of actual research I was able to do (in the late '70s) was in a lab that had serendipitously discovered a new iron scavenging mechanism in _E. Coli_. If you put it in a sufficiently iron poor environment (e.g. all the glassware was treated with HCL and then bathed for days in deionized water) it would synthesize a previously unknown iron binding protein and grab what it could.

So we shouldn't assume this is the only way many bacteria can get iron, but it's perhaps worth checking out. And a focus on iron in general might be a fruitful approach.</comment></comment>


Should computers have morals? - <AUTHOR> http://www.google.com/buzz/amichail/RJhTtzmYqRb/Should-computers-have-morals-And-should-people-be <comment><USER2> Should brains store local time or UTC in their hardware clock?

When you try to use humanistic words to describe a computer, it's hard to say anything of substance.

</comment><comment><USER3> The question doesn't even make sense. You're basically asking about a business rules engine, and calling it morals.

</comment><comment><USER4> Anyone else annoyed by questions that are designed to be provocative but come out making no sense at all?

<comment><AUTHOR> A computer with good morals might prevent you from cheating on an assignment, spamming a forum, etc.

And there would be social pressure to buy a computer with good morals -- as they would reflect on you.

Think of a computer as a friend.

<comment><USER4> What are "good morals"? Morality is completely subjective. I would say, to humor the inquirer, that computers already have morals: the morals of their users.

They already make content filter software. What the question seems to be asked is "can we make smarter content filters" which is probably true though it's not as interesting to ask it that way.

<comment><AUTHOR> You could specify the sorts of morals you would like pre-programmed into your computer when you buy it.

There would be social pressure to pick morals that reflect well on you.

<comment><USER5> Your calling this morals; but really all your talking about is decisional logic. Any morals are just your own by proxy.</comment></comment></comment></comment></comment>


Working From Home Again: 2 Years Later - <AUTHOR> http://jeff.io/posts/working-from-home-again-2-years-later

<comment><USER2> Very much enjoyed your story.

I also moved to BC and started working from home. I did it for a few years and although I didn't have kids I also found reasons to go back to an office. I did this and within 6 months I realized I needed to be back working from home and managing my time so I could be more productive and spend the rest of my time on other things.

So here I am, week one of being back at home trying to get all my routines in order so I can be productive at the level I enjoy. Its taking a little time to get my routine back in order but I very much love being able to skip lunch to take my dogs for a quick walk with my wife who also works from home. It's very much the type of distraction I expect and enjoy.

I think working remotely is the way of the future, and I'm not sure I'll ever be able to properly work in an office environment again to be honest. I feel like taking little breaks where ever you work is important, but when you work from home it's so important to time box those breaks and really implement discipline or you'll just be stressed out about not getting things done, which is the exact opposite of the goal in mind.

<comment><AUTHOR> I hear ya taking little breaks. I'm all for taking advantage of the benefits of working from home. It's just when they get out of hand is where it gets dangerous.

I hope this time around it works out well for you. Thanks for the note.</comment></comment>


Show HN: CloudClip - Cross-platform Clipboard Synchronization - <AUTHOR> http://www.getcloudclip.com

<comment><AUTHOR> Just wanted to show off the little 4-day project I have been working on.

I use a combination of OSX and Windows, mainly for coding and cross-platform CSS/HTML work and always wanted an easy way to copy something on one machine and have it immediately available on another.

There are a few different options out there, but many limit the clipboard sharing to an internal network or are feature-overkill.

This is my take on something small and simple that stays out of the way.

Feedback much appreciated.</comment>


Finally: Gmail Introduces Rich Text Signatures - <AUTHOR> http://mashable.com/2010/07/09/gmail-rich-text-signatures/

<comment><USER2> " _Finally_?"

" _Finally_ ," Gmail introduces rich text signatures?

Not, "Finally, America Gets Out of Debt" or, "Finally, a Global Inter-Cultural Renaissance" or hell, even "Finally, a Fast T-Mobile Android Phone With an Effing Slide-Out Keyboard," but, " _Finally_... Gmail Introduces _Rich Text Signatures_?" _This_ is what we were waiting for, with bated breath and Cheetoh-dust-encrusted fingertips?

I'm not angry, internet. I'm just disappointed.

<comment><USER3> Finally only means that someone has been waiting for the mentioned stuff for a long time. It doesn't imply that it was the most important thing for the person.

<comment><USER2> You're absolutely correct; I just couldn't resist anyway.

</comment></comment></comment><comment><USER4> Finally! We can now all use colors! And perky styles! And images!

Excellent! I am seriously considering just dropping all HTML email. Want your email to be received and read? Use the god damn plain text. You now, just _write_ the email.

<comment><USER5> Yeah, great idea. Formatting _never_ adds information to plain text.

<comment><USER6> I wouldn't say _never_. But pretty close.

<comment><USER7> Hey, you expressed emphasis in plain text without using formatting!

<comment><USER8> No, just markup. Much easier to parse...

</comment></comment></comment></comment></comment><comment><USER9> Rage, rage against HTML emails like it's 1999.

But since GMail already supports rich text emails, this seems like a pretty obvious feature to add.

</comment><comment><USER10> To all those who rail against HTML emails ...

Yes, I agree that almost all email can and should be plain text. And yes, I agree that most people who use colors and fonts and formatting should be prevented from doing so, because so many of them do it in a way that detracts from clarity.

However, some of us deal with real people as opposed to those who are interesting in and competent at technology. I often deal with people who can't fill in web forms because they can't click in a box to give it focus. I deal with people who can't email me if I use an anti-spammed email address such as my_name(at)domain(dot)com. I deal with people who can't find the underscore ("_") and don't know the difference between square and round brackets. I deal with people who sometimes put a space after a period, and sometimes don't.

I deal with _normal_ people for whom computers are a mysterious tool that does inexplicable things unless they stick to the very few things they've been shown.

Trust me - they don't know how to tell their email client _not_ to use HTML.

And "normal" people want colors, and fonts, and formatting, and bullets. They won't use plain text, even if they could.

ADDED IN EDIT: I've noticed that this comment has had a down-vote, but no reply. That's a shame. I'd really like to hear a considered and well-argued counter. Please, if was you who down-voted this, or if you simply disagree with it, let us know your thoughts. Thanks.

<comment><USER11> Normal people may want to things, but I don't want them nor do I want to see it in the emails I get.

</comment></comment><comment><USER12> Besides the rich text editing capability is the option to have a different signature for every email address associated with your account.

This will further increase the usability of Gmail for me, especially in combination with the recently added feature that allows to send emails with a different email address directly from Gmail.

<comment><USER13> Recently? I've used that feature for years, and just recently disabled it because of the mess it inevitably causes when you reply from email@example.com to a message sent to firstname.lastname@example.com - or, in this case, when someone replies to a portion of your message conspicuously missing from sent-mail.

<comment><USER12> There was always the possibility to add other addresses but when sending emails with those as a sender it displayed something like "sent on behalf of firstname.lastname@example.com". With a recent addition it has become possible to use your email providers SMTP server [1] so you can avoid this.

You can also set that you always answer from the address the email was sent to.

[1] [http://mail.google.com/support/bin/answer.py?hl=en&ctx=m...](http://mail.google.com/support/bin/answer.py?hl=en&ctx=mail&answer=22370)

</comment></comment></comment><comment><USER14> Now if I could only configure it to bottom-post by default I'd be happy.

<comment><USER15> What I'd really like is for a mail client to find a way to make inline responses simple and intuitive, to the point that your average user would think to do it.

<comment><USER16> Am I the only one that doesn't like inline responses? Most of the time they feel awkward to me. I do use them when responding email from a couple of co- workers that are inlining fans; and when I need to add a point-by-point reply to some technical email.

The rest of the time, however, I top-post proudly. Feels like the closest thing to writing a reply letter.

</comment></comment></comment><comment><USER17> E-mails are plain text. "Rich text" has no business there.

<comment><USER15> Luddite.

<comment><USER18> There's a difference between resisting progress and promoting simplicity.

<comment><USER15> Simplicity for whom?

I agree that on high traffic lists email should be kept to plain text, but for your daily business/social use it's far simple to format an email with html or rich text than it is to rely on ascii decorations for text markup, footnotes or any kind of table/diagram.

</comment></comment></comment></comment><comment><USER19> I used to be one of those who argued email should be plain text. I gave up because it was clear we lost. After I thought about it a while I realized we lost because we were wrong.

Imagine an alternate reality, very similar to our current reality. It has computers and computer networks, but for some reason, it never occurred to anyone to invent email. Networks are used for file transfers and web browsing and stuff like that.

Finally, someone gets the idea for email. Are they going to make it plain text? Of course not. They are going to want email to be an online alternative to regular postal mail, and so are going to try to match the features of postal mail.

Postal mail is often generated by composing in a word processor, printing the result, and mailing it. It is not limited to plain text. It can have bold and italic and colors and different typefaces and sizes. It can have embedded photos and graphics. It can have attachments (other printed itms, or a CD can be dropped in the envelope).

Email is going to have to support all that to be a viable alternative to postal mail. And thus email in this alternate reality would very likely start off as HTML email (or perhaps as .doc email).

Now back to our reality. In our reality, email was invented early in the computer age, when the technology simply didn't exist to match the graphical and formatting capabilities of postal mail. Hence, it was plain text--as that is all the technology could reasonably handle.

Well, we've got better technology now. Saying we should stick with the limitations that were imposed by 40+ year old technology is about as dumb as saying that we should limit thumb drives to 80 kilobytes because that was the capacity of floppies 40+ years ago.

</comment><comment><USER20> How about they add some useful features, like support for sending time-delayed emails? I've been waiting for that for years, and have instead been doing it using a desktop client.

</comment><comment><USER21> At long last!

I will be able to close all my Gmails with my (handwritten) signature and a corporate logo!

(I've worked for people who do this.)

</comment><comment><USER22> Disappointed this doesn't seem to work for Google Apps (yet), as my work account is where I'd benefit most from including working links in the signature.

<comment><USER23> The earlier story said it was only live in the desktop client for now. Mobile and web users have to wait.

</comment></comment><comment><USER24> I don't see this feature yet, is it perhaps enabled for a select number of accounts?

</comment><comment><USER25> Prepare for the Papyrus-storm.

</comment><comment><USER26> alt.fan.warlord would be very upset.

(Oh my, Usenet references. I surely date myself.)

</comment><comment><USER27> Yay Google, can you hear me clapping all the way back in the nineties ?</comment>


Automated Machine Learning vs. Automated Data Science - <AUTHOR> https://www.kdnuggets.com/2018/07/automated-machine-learning-vs-automated-data-science.html <comment><AUTHOR> Fully agree with this statement:

"When you read news about tools that automate Data Science and Data Science competitions, people with no industry experience may be confused and think that Data Science is only modeling and can be fully automated." \--Sandro Saitta</comment>


Vikram and the Vampire (1870) - <AUTHOR> http://www.gutenberg.org/files/48511/48511-h/48511-h.htm <comment><USER3> This series is well-known to Indians under the Sanskrit name Vetala- Panchavimshati - which means "ghoul('s) N" which is short for "N (stories of the) ghoul [1]".

Pancha means 5, I forget or don't know what vimshati means - could be that the whole number part (panchavimshati) means 25.

So the whole name of the series means 25 stories of the ghoul (vetala) - <USER2> told to king Vikramaditya, a famous king of ancient times, on whose back a ghoul somehow landed, and who then had to carry the ghoul on his back from somewhere to the cemetery 25 times.

Each time, while going there, the ghoul told him a different story ending in a puzzle or question.

Vikram was renowned as a good and fair judge.

The ghoul would tell him each time, that if he answered the question right (which involved judging the protagonists of the story, and saying who of them was right or wrong), he (the ghoul) would get off his (Vikram's) shoulders and let him go. But, if by the 25th time, Vikram still did not get the question right, the ghoul would kill him.

Entertaining stories we heard or read as kids. Often with some moral. Typical of Indian legends / folk tales.

[1] [https://en.wikipedia.org/wiki/Ghoul](https://en.wikipedia.org/wiki/Ghoul)

Edited for better wording / typos.

<comment><USER3> Sorry:

s/cemetery/burning ground

since Hindus cremate, they don't bury.

<comment><USER4> The Bhils in interior Sindh bury. Some sadhus bury as well.

<comment><USER5> So do lingayats in Karnataka iirc.

<comment><USER4> Yes, I had forgotten about them too

</comment></comment></comment></comment></comment><comment><AUTHOR> Happy Easter Sundy HN! Bit of counter-programming for those indulging in too much Kyregma and Jelly Belly's ;)

Slipping into Burton's prose is like mounting a white elephant for a long stroll into humid, tiger-ravaged jungles.

Native folktales provide the antidote to _Myth of a Thousand Faces_ Ur-texts. They're stochastic. Endless. Authorless. Abundant with seemingly coincidental frissons. "Pearls with a thread draw through" indeed!

</comment><comment><USER6> Can't access the link from Germany. Apparently Project Gutenberg is blocking German IPs because of a court ruling.

<comment><USER7> Gutenberg blocked in Germany.. Irony</comment></comment>


Why Television Still Shines in a World of Screens - <AUTHOR> http://www.nytimes.com/2009/02/08/business/media/08digi.html <comment><USER2> Such a strange article considering that nearly all of the web is text. The vast majority of internet time is spent reading.

<comment><USER3> _vast majority of internet time is spent reading_

Under a certain age, that may not be true anymore.

<comment><USER4> This should be the subject of a study.

(Not being sarcastic.)

I for one read much more and much more widely on the Internet than I ever did offline, but am I the future or am I a sport? It's an important question.

<comment><USER5> I agree with you. I certainly feel that I read a lot online now, but so much of it is in small bursts. I find it hard now to maintain decent concentration while trying to read long documents/books offline.</comment></comment></comment></comment>


Confessions of a tech journalist: my advice to startups pitching the media - <AUTHOR> http://seanblanda.com/blog/feature/confessions-of-a-tech-journalist-my-advice-to-startups-pitching-the-media/ <comment><USER2> From my perspective as a former tech journalist, Sean nails the key points. Keep it short, sweet and remember that journalists see dozens of pitches per day -- your startup doesn't deserve press because it's your baby. It needs to stand on its own merits.

I have one additional thing to add, and this is important: build relationships with journalists BEFORE you need them. Build a friendship, ask for their advice, meet them for coffee, comment on their work. When the time comes and you're pitching your startup...you're going to be in a far better position and be far more likely to get covered.

The other alternative: have somebody the journalist knows well introduce you.

<comment><USER3> I'd say journalists are just like investors. They have a lot of people who want their time, and it's difficult to discriminate when you don't have filters. Social proof is one kind of filter... intros are another.

AngelList could really act as a really great filter too, if they built up the site to support journalists. _hint hint Nivi and Naval._

</comment></comment><comment><USER4> This guy seems kinda full of himself. Although I suppose that comes with the territory when hundreds of people are constantly begging him to give them a bit of attention.

But I also think that the importance of the "tech press" is often overemphasized by startups. I was involved in a company a bit ago that spent a great deal of energy chasing after the TechCrunch coverage, when in fact its target customers were middle-aged middle-america types, who don't read TechCrunch.

Granted, the tech media may help just about any company get funding. But then, I imagine having plenty of customers is going to look better to investors than TechCrunch coverage.

<comment><USER5> As a current tech journalist AND entrepreneur, I can definitely see your point regarding TechCrunch. Our mentions in "buzzier" publications got us a huge strike in interest with about zilch market fit. This writer's suggestions, however, really apply well to trade and niche press journalists, too.

The right mention in the right publication is worth tens of thousands or hundreds of thousands of dollars, and it's much more about whether they reach your market rather than whether you've heard about them.

And yes, it's literally hundreds: I get about 300 pitches a day (a lot of them are "robopitches" that go out only semi-personalized), and his advice is key for making your story standout.

</comment></comment><comment><USER6> You can skip the whole thing and simply jump to the last part "Questions you should be prepared to answer".

Journalists think a little bit too much of themselves and startups think a bit too much of their product. My advise is have a simple two three line pitch and below your signature copy and answer the question he has given. If the journalist is interested in your pitch they can read the additional info below. Second advise is keep at it. If you email a journalist and they do not respond, email again when you have made changes to your product, acquired more customers etc... In the end they will give in and give you a chance.

</comment><comment><USER7> As someone who has been doing PR for a startup for over 2 years, this article was spot on. The only point I'd bring up is that the author is speaking from the perspective of a local tech beat. Getting the attention of national reporters is much more difficult and takes a lot of effort before you have any news at all. PR is a lot of work...which most startups don't realize.

<comment><USER8> One more point -- just a little one -- is "don't pitch a journalist and then refer him/her to a story recently published by a competitor publication for the details."

</comment></comment><comment><USER9> Is it me or the choice of font in this website makes terribly hard to read the article. I m using google chrome btw.(I think it's <http://www.google.com/webfonts/specimen/Oswald>)

<comment><USER10> Was very hard for me to read, too. The text looked pixellated, like it had chunks missing. It was fine after I zoomed in. (Also Chrome)

</comment></comment><comment><USER11> I like the choice of colors.. And the code is well done imo.</comment>


Show HN: Flexbox.io – a free video series on learning CSS Flexbox - <AUTHOR> http://flexbox.io/ <comment><USER2> Awesome stuff.

I can't wait for Flexbox wide-spread adoption - especially in popular frameworks. It's too bad so many people are forced to not be able to use it because of IE9's total lack of support [1]. TBH, I'm not even sure if there's a good polyfill for it.

Dimitar Stojanov (@justd100) wrote a super kick-ass write-up on scotch.io covering basically everything there is on Flexbox [2]. It's probably much quicker than 20 videos, has an amazing interactive demo, been shared over 2.4k times, and is probably the best write-up on Flexbox I've read (I'm obviously biased though).

[1] [http://caniuse.com/#feat=flexbox](http://caniuse.com/#feat=flexbox)

[2] [https://scotch.io/tutorials/a-visual-guide-to- css3-flexbox-p...](https://scotch.io/tutorials/a-visual-guide-to-css3-flexbox- properties)

<comment><USER3> I recently open-sourced a pattern-library/framework that uses mainly FlexBox to arrange/layout items: [http://bowlingx.github.io/flexcss/](http://bowlingx.github.io/flexcss/). FlexBox for me was especially useful for big forms while using less markup.

<comment><USER4> Thanks for releasing this! Very helpful, and the code is a pleasure to read.

<comment><USER3> thanks :) you're welcome, I will extend FlexCss in the next month and add more documentation!

</comment></comment></comment></comment><comment><USER5> I really do appreciate the effort you put into these videos, and I definitely understand you want something out of this as well but the user experience of having to go through your site instead of a link to a youtube playlist does put me off quite a bit.

Either way, the first few videos I've watched so far are great, thanks.

<comment><USER6> I'm not sure how much views get lost, but I wonder is it worth it? There is a short video as introduction which doesn't tell much, I'd much prefer a random video from the series.

Now by making these private, no one will find this from youtube, other sites won't link it and there is no playlist so I will have to click each url every 5 minutes or so, which is not the end of the world, but not fun.

He could have asked for my email for the project files(videos and project files get sent to your email currently as I understand it), and gave videos for free. Anyone actually interested in this would definitely give their email for the files. If he wants my email to teach me something else later -- or sell me something, I think someone who entered their mail while watching the series will be more interested in what he could use the emails for, and now he won't be able to reach these kinds of people from random views, in exchange for the initial email count.

I don't think this is a nice deal, but I have no data, so just an opinion. Maybe something to consider.

<comment><AUTHOR> Valid points but having an email is much better to stay in touch in the future. If you don't like that - use mailinator- totally understandable

I'll publish the playlist in a week but for now I'm doing it only on the site.

</comment></comment></comment><comment><USER7> Are there any examples around of combining Bootstrap and Flexbox; i.e. relying on Flexbox for layout and NOT using Bootstrap's grid, but using Bootstrap's other components... is that practical without a significant rewrite of Bootstrap (i.e. do the component styles make lots of assumptions about being sited within the Bootstrap grid).

<comment><USER8> I added flexbox in certain areas of a bootstrap site to cleanly show varying size thumbnails in a grid. (Probably uglier than necessary.)

      .row-flex {
        display: -webkit-box;
        display: -moz-box;
        display: -ms-flexbox;
        display: -webkit-flex;
        display: flex;
        -webkit-flex-flow: row wrap;
        -moz-flex-flow: row wrap;
        -ms-flex-wrap: wrap;
        flex-flow: row wrap;
        align-content: flex-start;
        -ms-flex: 0;
        flex: 0;
      }

        ...

</comment></comment><comment><USER9> Flexbox makes web development bearable. I use it for all my new work. Telling clients they must have IE11, Chrome, or Firefox ceased to be an issue many moons ago. It means you can also drop bloated frameworks like Bootstrap (and JQuery for that matter).

</comment><comment><USER10> Why he did not give a simple link to youtube playlist?

Why I need to give him my email? Spam? Ads? Gonna sell them? If not, then it's only an inconvenience for him and for us.

</comment><comment><USER11> 20 seems like too many....

<comment><USER12> It really does. The most helpful resource I found for Flexbox is a cheatsheet from css-tricks.com.

[https://css-tricks.com/snippets/css/a-guide-to-flexbox/](https://css- tricks.com/snippets/css/a-guide-to-flexbox/)

<comment><USER13> That was helpful for me too. I also found Flexy Boxes to be useful: [http://the-echoplex.net/flexyboxes/](http://the-echoplex.net/flexyboxes/)

<comment><USER14> This one from Philip Walton is quite handy too: [https://philipwalton.github.io/solved-by- flexbox/](https://philipwalton.github.io/solved-by-flexbox/) (The six examples in the showcase are all very common problems, and well-solved with Flexbox.)

</comment></comment></comment></comment><comment><USER15> Constructive criticism. You don't mention in the video what a flexbox is :)

Granted, googling flexbox is easy but I'd add a quick blurb in 10-20 seconds telling those who don't know me<\--- what they are first.

BTW: I will definitely check out the videos!

</comment><comment><USER16> This is great! Ever since our company quit supporting IE9, I've had the joy of working with flexbox. What once took 10-20 lines of Sass hackery now takes only a few, and the code makes sense.

</comment><comment><USER17> Hey, I'm unable to sign up using an email in the form of: email@example.com

I get a message after submitting saying check your inbox, but I haven't received any messages (checked All mail and Spam folders).

Is this an intentional decision or shortcoming based on some email service?

<comment><AUTHOR> Not intentional at all - most sign ups do this.

Most are getting the email but I am getting hammered.

Shoot me an email? email@example.com

<comment><USER17> Hey, just saw your response a few minutes ago, and shortly thereafter I received a message from your service.

Thanks!!

</comment></comment></comment><comment><USER18> Things have changed since I was doing frontend dev (
), and I want to brush up on modern CSS techniques. Could someone answer the following for me?

1\. Is flexbox the way to go (i.e. the new standard?)

2\. Is there a css primer to help with all this? I tried centering a div with CSS once, it didn't end well!

<comment><USER19> it looks like it'll become the next standard yes. but support isn't there yet.

[http://caniuse.com/#feat=flexbox](http://caniuse.com/#feat=flexbox)

[http://howtocenterincss.com/](http://howtocenterincss.com/)

<comment><USER4> 93.99% is more than "support isn't there yet", in my opinion. Enough for many projects at least. Obviously if you develop sites with a big IE8/9 audience you should think twice.

</comment></comment></comment><comment><USER20> I learned flexboxes from flexboxin5.com and use it wherever I can now. I love it! my only gripe is safari needing the vendor prefixes. I don't know what IE does - but i only care about real browsers anyway.

</comment><comment><USER21> Simple suggestion: add subtitles. For non-native viewers it is a really nice addition.

</comment><comment><USER22> Is there a way to see these videos without getting spam?

</comment><comment><USER23> I have subscribed with my email address but got no link to the videos as described in the site. Am I the only one?

</comment><comment><USER24> bookmarked, will be going through these tutorial, especially since CSS has never been a strong point for me as I've always focused on the backend. It always filled me with envy when people seem to have the entire CSS memorized and can create sexy UI out of thin air.

now is flexbox supported widely or is this still ongoing thing?

<comment><AUTHOR> The only gotcha is IE9 - but most people are either on IE8 or IE11 - so not really an issue anymore. In 6 months to a year, support will be wide spread - so now it's time to start learning!

That and React Native is using Flexbox to layout their apps too!

</comment></comment><comment><USER25> Thanks but no thanks to any and all instructional videos.

<comment><USER26> Especially when there are pages like this: [https://developer.mozilla.org/en- US/docs/Web/Guide/CSS/Flexi...](https://developer.mozilla.org/en- US/docs/Web/Guide/CSS/Flexible_boxes)

</comment></comment><comment><USER27> They should rename it to "a simple 20 video course on how to slow your computer down to a halt" /irony</comment>


Y Combinator related websites - <AUTHOR> https://www.cybrhome.com/topic/y-combinator <comment><AUTHOR> I found this list of websites related to Y Combinator. Is something missing here?</comment>


Rust for Python Programmers - <AUTHOR> http://lucumr.pocoo.org/2015/5/27/rust-for-pythonistas/ <comment><USER2> Nice writeup! One thing though, I believe Rust's BTreeMap [1] is a B-Tree (not a binary tree, as suggested), i.e. it's a tree whose branch factor is generally greater than 2.

The docs say that if you don't give a branch factor, a sensible choice is made for you, probably to get nodes to fit neatly into cache lines, so seeing as we are storing 35 unsigned 64 bit integers, this would be around 16 or 32 elements in a single node, and a depth of about 2. This means that, because the current implementation of BTreeMap does linear searches at insertion, for this _particular_ use case, the BTreeMap isn't doing much better than a plain old array, that you are insertion sorting.

TL;DR: Storing the results in a vector and then in-placing sorting it could be faster, but not noticeably. I know this isn't the point of the article, but it was just an observation I had :)

[1]: [https://doc.rust- lang.org/std/collections/struct.BTreeMap.ht...](https://doc.rust- lang.org/std/collections/struct.BTreeMap.html)

<comment><USER3> _> sensible choice is made for you_

At the moment, it's chosen to be 6: [https://doc.rust- lang.org/src/collections/btree/map.rs.html#...](https://doc.rust- lang.org/src/collections/btree/map.rs.html#156) (note the FIXME though).

</comment></comment><comment><USER4> Armin's Flask was probably best experience I've ever had with a piece of software. Clean, modular, pragmatic and very well documented. I only stopped using because "websockets, Go, SPA", though I never really finished a side project with those yet.

I can't think of a single WTF moment I had with it. Several "OMG this guy thought about this too" moments.

<comment><USER5> Since I'm in the same boat as you, what about Falcon? Are the extra performance and customisability worth switching?

[http://falconframework.org/](http://falconframework.org/)

edit: Thank you for your reply - by the way yes, I am indeed only building a REST API.

<comment><USER6> I used Falcon for a relatively large project and enjoyed using it. It is noticeably faster than Flask and I can write code faster as well. It is very much still growing and features are being added. They call Flask "Batteries not included" but Falcon takes that to another level. There are also not very many extensions in comparison to Flask. If you are writing an API exclusively, I would choose Falcon. However, if you have any HTML/CSS/JS, Falcon is probably not suited for the project.

EDIT: Both are very good.

</comment></comment></comment><comment><USER7> I honestly respect the power and rapid development of Rust but I think that Nim ([http://nim-lang.org](http://nim-lang.org)) is a much better alternative to Python than Rust, as its syntax and "feeling" is much closer to Python, and also the productivity level. In Nim I get things done much faster than in Rust. Nim is easy to learn but Rust requires a certain amount of knowledge and experience for good productivity.

I consider Nim the "better Python", and Rust the "better C++".

<comment><USER8> Expanding on that, I'd say that Nim is a "better" [1] Python [2], Rust is a better C, and D is a better C++.

[1] For some purposes. As a long-time Pythonista, I've looked at Nim, and I have no desire to replace Python with Nim in my daily use. But my uses for Python aren't the same as everyone else's, and Nim looks like it could be a fun language to play around with and learn, at least.

[2] Even more accurate, Nim is a better Object Pascal.

<comment><USER9> Rust is a better C++ more than a better C, it has similar goals to C++ of advanced zero-cost (at runtime) abstractions, not so much of being a portable assembly. Like C++ it can be an alternative to C in some contexts.

D intended to be a better C++, but that hasn't panned out well in practice for various reasons (one of them being the use of a GC and much of the standard library depending on it, though IIRC they're trying to fix that).

</comment></comment></comment><comment><USER10> That was a really interesting introduction. I hadn't looked at Rust before and that gave me a good feel for it. Thanks for putting it together, Armin.

A minor peeve of mine is examples between languages that differ in ways that are unimportant (though maybe it can just justified as "idiomatic code"). It adds bias to the demonstration.

We could have written the python one like the following to wrap the lock up with the results structure (and get the automatic sorting behaviour, too):

        import queue
        from threading import Thread

        def fib(num):
            return 1 if num < 2 else fib(num - 2) + fib(num - 1)

        def thread_prog(results, i):
            rv = fib(i)
            results.put((i, rv))

        def main():
            results = queue.PriorityQueue()
            threads = [Thread(target=thread_prog, args=(results, i)) for i in range(35)]
            [t.start() for t in threads]
            [t.join() for t in threads]
            while not results.empty():
                i, rv = results.get()
                print("fib({}) = {}".format(i, rv))

Though, I've also taken other liberties to make it shorter. I normally stay away from threading in python because the GIL makes it a bit of a waste of time in most cases, and who needs the complexity in their lives?

Again, thanks for the overview, I enjoyed it.

<comment><USER11> Consider that such examples are often not about _convincing_ , but _teaching_. That is, they often not trying to convince the reader, "Language X is better than language Y." Rather, the intent is more, "You already know language X, so here's some code in X. Now here's how you would do the same thing in Y." It's a pedagogical tool, rather than an argument tactic.

<comment><USER12> According to some people all mentions of PLs have to be evangelical and confrontational. :-)

</comment></comment></comment><comment><USER13> > In Python a function can fail with any error and there is nothing you can do > about that.

To be fair, the adorable `except:` black magic exists there to be used in such a case. Of course its use is extremely dangerous for obvious reasons (it even catches the `SystemExit` exception!), so I can understand why the author didn't mention this.

> This is a big change in how you think about programs but you will get used > to it.

Possibly! But I have a feeling that the ownership model would be the biggest blocker to newcomers, as well as the largest innovation Rust brought to the mainstream languages. I can already hear the crowd saying Rust's just a giant mess, after struggling with the borrow checker. This may impact the success of the language. Now that Rust is post-1.0, we will see.

> the constant encoding and decoding you have to deal with in Python just to > support O(1) string indexing.

Strictly speaking, Python also doesn't support a complete character indexing, because it works on code point basis. O(1) string indexing is largely a myth.[1] But I'm sure that the author definitely knows about this, considering his previous rants on Python's Unicode handling. ;)

Regarding Unicode handling, I think Swift's `String` type is arguably more complete than Rust or Python. Its internal representation is UTF-16, possibly due to the interoperability concerns with `NSString`, so it can't compete with Rust on the performance aspect. However, it indexes a string by grapheme cluster (so Swift's `Character` type is actually a slice, not an integer) and compares the characters by their normalized forms, which eliminates many mistakes that can be made by careless programmers, including me. Of course the same thing can be done in other languages using external libraries, but the official support residing in the built-in string type is very nice to have.

[1] [https://hamstergene.github.io/post/wchar-is- useless/](https://hamstergene.github.io/post/wchar-is-useless/)

<comment><USER14> >To be fair, the adorable `except:` black magic exists there to be used in such a case. Of course its use is extremely dangerous for obvious reasons (it even catches the `SystemExit` exception!), so I can understand why the author didn't mention this.

This is why you use "except Exception:" which doesn't catch system exceptions.

<comment><USER15> "except Exception:" is rarely what you want IMO. It also catches SyntaxError, which is almost always a design error -- one you'd typically prefer would halt the system.

Unfortunately there's no common parent to EnvironmentError/SystemError/RuntimeError/etc that excludes SyntaxError.

<comment><USER16> I can't seem to repro that, SyntaxError seems to happen before the code runs the first time. (2.7 Ubuntu)

<comment><USER15> SyntaxError can happen as a consequence of loading a module (hitting an import statement, etc). But for a simpler example, replace SyntaxError with NameError and it's still almost always a design error that you probably have no sane way to handle in an exception handler (other than to mask the problem).

Python's a very dynamic language and so of course you could come up with examples to the contrary (ones where the user input could trigger SyntaxError or NameError).

<comment><USER17> But the only universally good reason I know of where you should be wrapping imports in try except is 2/3 compatibility or other module/library import fallback. For these you need to be catching syntaxerror and other system errors.

</comment></comment></comment></comment></comment></comment><comment><USER18> A quick question from a Rust noob: if I knew Python, why should I try Rust? What is in there that would make my life better? At first glance I see a lot of unimportant syntactic sugar or concepts I am not sure would make my life any easier (ownership tracking vs garbage collection).

<comment><USER19> As a current python & rust user, I can say that I picked up rust because I liked the idea of a systems language that could give me c-like performance, without having to use C. Rust seems, to me, like a combination of the best parts of python (traits as pseudo-duck-typing), haskell (type inference, functional concepts), and C(++) (speed, no GC).

As @mitsuhiko says in the article, it is very easy to export symbols from a Rust library so that they can be used via CFFI, so the possibility of "dropping down to Rust" instead of "dropping down to C" is very attractive to me.

<comment><USER20> I have my eyes on Rust, mainly for no GC and its ownership system, and Nim for its clean, Python-like syntax but with C performance.

I also have Julia in my mind for my next scientific computing (image processing, DSP) project.

<comment><USER19> I keep on messing around with Julia, but I never stick with it. I have nothing in particular against the language, but I don't do a lot of scientific computing, so my motivations to use it are not that great.

<comment><USER21> Why can't it be used for general computing?

<comment><USER22> It can. However, Julia made a very strong push to target the scientific computing niche (very strong array support, ease of writing tight loops in native code, etc) - and such it has a very quickly growing ecosystem of high quality scientific packages.

In comparison, Julia has relatively few web frameworks, GUI toolkits, etc..

</comment></comment></comment></comment></comment></comment><comment><USER23> A great writeup! A lot of the Rust community seems to have come from the Ruby side of things (with writings such as "Rust for Rubyists" by Steve Klabnik), although I feel that Rust and Python share many ideas that Ruby does not concern itself with.

I particularly like the section about string handling. There is a reason that Rust strings are hard, and I will make sure to point to that section whenever mentioned.

<comment><USER24> > A lot of the Rust community seems to have come from the Ruby side of things

People say that about Elixir too. No doubt about other languages as well.

I think the truism is: "(ex-)Ruby users are more vocal about what they use"

It'd be fascinating to do a study on personality types/traits and programming language use.

<comment><USER23> Yeah, the Ruby community is very blog-centric, and I have thought of that before, so you are most probably right.

I too would like to see a study, but I would have no idea how to conduct it!

Maybe the Ruby community is just reaching out everywhere trying to find a better language (just a jab from a python dev ;P )

</comment></comment></comment><comment><USER25> Between Rust and Go (for Pythonistas) I still prefer Rust.

One thing that bothers me in Go is that, like Ruby, when you import something you don't know exactly what's being injected in the context. So it's quite bad to understand from where some things came from. I like more the Python / Rust approach for that.

<comment><USER26> Maybe it's just because Go has Google backing it, but I seem to hear way more about Go than I do about Rust. I have my doubts about whether Rust will have a viable ecosystem in 4-5 years. It's a shame because Rust seems like a more interesting language to me.

<comment><USER27> Rust is currently backed by Mozilla, Samsung, and an expanding coalition of startups. There are other large companies experimenting with Rust at the moment, but I'd rather wait for them to come out with their own announcements. The community is hugely active and growing at an increasing rate. There are four Rust books in the publishing pipeline and Rust's first conference will be held this year, with at least two conferences already planning for next year. I wouldn't worry about the state of Rust's ecosystem in five years. :)

<comment><USER28> Rust conferences? I've seemed to have missed this. Any links/info?

<comment><USER29> We announced [http://rustcamp.com/](http://rustcamp.com/) today.

<comment><USER28> Ah cool. I thought that might have been one of them. Was just interested if others have been announced too :)

</comment></comment></comment></comment></comment></comment><comment><USER30> I only do data analysis but cython [0] is pretty much the fastest way for me to produce fast code. I tried to do some things in Rust but my productivity fell, and I could not figure out how to fix some error messages. [0] [https://honnibal.wordpress.com/2014/10/21/writing-c-in- cytho...](https://honnibal.wordpress.com/2014/10/21/writing-c-in-cython/)

<comment><USER31> Here is a simple example I just threw together of calling a Rust function from within Cython: [https://github.com/synapticarbors/rust-cython- test](https://github.com/synapticarbors/rust-cython-test)

I use cython extensively in my work and it's super productive for me as well, but I could see maybe toying with Rust more in the future for some really specialized things.

</comment></comment><comment><USER32> Does anyone know what author meant to say?

            3) have a very similar Unicode model which is to map
         Unicode data against arrays of characters where a
         character[sic]. In Rust however...

It seems a part is missing.

Don't get me wrong, not criticizing author here, happened to me lots of times.

<comment><USER33> It makes sense if you remove "where a character"... Or change it to "where a character is a Unicode codepoint".

This is basically saying Python uses a fixed-length encoding (UTF-32) where each codepoint takes constant storage, as opposed to UTF-8 where the storage of a character depends on where it is in the Unicode plane. A useful analog, if you know C, is that Python always uses wchar_t[] where each element is a character, while rust uses char[] and then the elements are not characters but UTF-8 bytes.

There are obvious up- and downsides to both approaches.

EDIT: As suggested by two children, with Python 3.3+, the fixed-length encoding Python uses depends on the highest codepoint in the string and is often not UTF-32. With earlier versions there are "narrow" and "wide" builds which use UTF-16 and UTF-32 respectively.

<comment><USER34> On Python 2.2 through 3.2, CPython could be compiled with "narrow" or "wide" Unicode strings. On a "narrow" build, Unicode strings internally were represented using two-byte characters and surrogate pairs. On a "wide" build, Unicode strings were represented internally using four-byte characters.

On Python 3.3+, the distinction is gone, and Python uses either latin-1, UCS-2 or UCS-4 depending on the highest codepoint in the string (i.e., a string containing only codepoints in latin-1 will be stored internally as latin-1; a string containing at least one codepoint outside the BMP will be stored internally as UCS-4, etc.).

<comment><USER9> It's still fixed-length codepoint encoding, even if the specific encoding depends on content.

</comment></comment></comment></comment><comment><USER35> We have several similar headlines on HN lately.

Go/Rust/Erlang/Elixir/Node/Nim/Julia for Python programmers

Is there a trend away from Python2/3 or Ruby to language X?

<comment><USER36> I think it's more that many language designers and/or fans don't really understand why Python is so popular, and therefore think the Python ecosystem is an easy ecosystem to draw developers from.

<comment><USER12> I haven't had the impression that language geeks[1] complain a lot about Python. They certainly complain more about other dynamic languages.

[1] I don't know if I've seen enough _designers_ ' opinions about it to say anything.

</comment></comment></comment><comment><USER37> For the mutex example, the explanation says:

"So here is how the code works: we count to 20 like in Python"

That's a typo, right? Both examples count to 35, not 20 (I'm not crazy, right...?)

</comment><comment><USER38> As someone with experience only in Python, is Rust a decent place for me to learn lower-level concepts or should I go with C/C++?

<comment><USER29> This is a very common question, and there's two camps:

1\. Learn C, then learn some C++. You won't appreciate Rust until you've felt the pain that it solves.

2\. Learn Rust. Why bother going through all that trouble on your own when you can have the compiler help guide you.

and a third position:

3\. Rust is still new enough that you'll find way more information with C, so you should just learn that even if Rust is better in a vacuum. Learning is easier with copious help and tutorials.

I personally fall in camp 2, and sometimes 3.

<comment><USER13> This is a nice summary! FWIW I'm more likely 1, as I've seen many people coming from dynamic languages being frustrated about the "Rust way". Not only the ownership model, but also compiling, optimization, etc.

3 is certainly a problem, but personally I found enough materials to learn Rust even for now. However more "friendly" resources would be definitely welcome.

<comment><USER39> While I'm new to rust, and have just been dabbling in C -- as another comment mentions here: you really have to deal with the borrowing in C as well (and the compiling/optimization). If you _don 't_ deal with in C (without any real language support) -- you'll get bugs. If you're very lucky, and made a great effort in turning on warnings[1] -- you'll be aware of those bugs. Most likely you won't.

[1] See eg: [https://github.com/incrediblesound/Graph- Reply/commit/929e57...](https://github.com/incrediblesound/Graph- Reply/commit/929e5733caf02ff1873e59add4b4834555dcfbfa) for a little bit about C and warnings.

</comment></comment></comment></comment><comment><USER40> By the way, about Rust error handling. I like the concept that any error is being returned as a function result, but there's is a huge practical problem I don't understand how to solve with this approach. Exceptions (kind of) solve it automatically.

What if the information that "computation failed" is not enough? Say, I wrote a `getItem(User) -> itemId` function, which does a lot of calls and can fail for multiple reasons. Later I will have to admit that my API is not perfect: user isn't quite ok with the fact that operation failed, he wants to know _why_ it failed: maybe there's no items to get at the time, maybe he isn't permitted to get them, maybe that permission is computed in real-time based on how many clicks he made today or anything else. What do I do now?

If getItem was throwing exceptions, I can fix it right away. It's not my favorite solution of that problem, but it works: I catch all exceptions separately at the caller and do something. I can provide user-friendly message as the text, that the exception will carry.

But if I was using something like Maybe monad for the error mechanism, I'm pretty much fucked. Now I have to go through huge getItem function and refactor it using some custom container-type as a return value, which will carry the reason the call failed, as well as the data itself.

From what I understood, Rust's error handling is exactly such Maybe monad with a different name. Is there built-in, idiomatic way to solve that problem?

<comment><USER3> The `Option` type (what Rust calls Maybe) is rarely used for error handling. As the article describes, Result is normally used, which allows attaching arbitrary data to the error case: [http://doc.rust- lang.org/std/result/](http://doc.rust-lang.org/std/result/)

For example, the io library generally returns [http://doc.rust- lang.org/std/io/struct.Error.html](http://doc.rust- lang.org/std/io/struct.Error.html) as the information when errors occur, which includes all sorts of possibilities for what went wrong: [http://doc.rust- lang.org/std/io/enum.ErrorKind.html](http://doc.rust- lang.org/std/io/enum.ErrorKind.html)

<comment><USER39> In addition to what dbaupp mentions, you might want to look at:

[http://blog.burntsushi.net/rust-error- handling/](http://blog.burntsushi.net/rust-error-handling/)

(which was posted to hn a while back)

</comment></comment></comment><comment><USER41> Can you write python modules in rust?

I would like to write small parts of my project as separate high performance modules, and I don't want to do it in C, it makes me sad.

<comment><USER42> TL;DR Write it in Rust, export via FFI, bind from Python via cffi.

The long version is: go watch this video from PyCon that will answer this question and probably others [https://www.youtube.com/watch?v=3CwJ0MH-4MA](https://www.youtube.com/watch?v=3CwJ0MH-4MA)

<comment><USER29> That video and a similar talk I've given at Ruby conferences inspired me to make a chapter for the book: [http://doc.rust-lang.org/stable/book/rust- inside-other-langu...](http://doc.rust-lang.org/stable/book/rust-inside-other- languages.html)

</comment></comment></comment><comment><USER43> I like the way the error handling works; it's a pattern I try and use in Python by creating custom exceptions that basically pass up whatever specific exception is caught.

</comment><comment><USER44> The more popular version of Python (2) does not enforce conversion of Unicode to UCS-32. The criticisms in the article mostly apply to Python3.

<comment><USER42> Python 2 will store Unicode as either UCS-16 or UCS-32, depending on how it was compiled. The horrible monstrosity that is the default "string" (those are scare quotes; I know how the formatting on here works) in Python 2 is not Unicode, so it obviously doesn't use UCS-16 or UCS-32.

<comment><USER45> UCS-4 is UTF-32 (or, to be pedantic, a superset), whereas UCS-2 is the fixed- width predecessor of UTF-16.

There's no such thing as UCS-16 or UCS-32.

</comment></comment></comment><comment><USER4> Do Rust newbies also complain about the lack of exceptions like in Goland (myself included even understanding their reasons..) ?

<comment><USER46> No because Rust offers a more natural way to deal with them, instead of ifs everywhere.

Also known as railway programming in FP circles.

<comment><USER47> > railway programming in F# circles

FTFY

<comment><USER48> Pretty sure pjmlp meant Functional Programming.

<comment><USER47> "Railway Oriented Programming" is a term coined by Scott Wlaschin, a prominent F# practitioner who popularized the term with helpful blog posts, slides, and speaking events.

Outside of the F# community (i.e. those that have not seen Wlaschin's materials) however, the term is rarely used. The larger FP community has more more general terms they use instead for the whole class of patterns surrounding this.

<comment><USER46> You are correct. I just thought the term was more widely known outside the F# world.

<comment><USER47> well it could be, I certainly don't speak for everyone; just haven't seen it personally myself yet.

</comment></comment></comment></comment></comment></comment></comment><comment><USER49> Is that site down for anyone else?

</comment><comment><USER50> Dude, give the code some space. It can't breathe cramped like this.</comment>


Thousands of login request in few days - hackers? - <AUTHOR>

It seems someone wrote an application to generate many thousands of authentication request from authentication service we created. They used some phone numbers to verify account that seems temporary (acquired from voip service). This seems a little wired. Why someone would do that? He managed to make the system spend some small amount for making the calls but that is probably what they spent to receive the phone calls. <comment><USER2> Sometimes crackers do this to obtain accounts to your service or to reverse engineer some of their already stolen accounts. Not much can be said since you haven't specified the service in question.

You could implement CAPTCHA to your system and see if the bots struggle on it. Next step from it would be to make a CSRF protection, which is not visible in DOM. Something like this is used on Instagram.

<comment><AUTHOR> Thanks. CAPTCHA/CSRF is not an option since it is meant to be an API called from applications. As a precaution make a phone call to verify the user. That guy went through all the things and theoretically we can actually track him down(costly though). I have blacklisted the phone- question is how many phone numbers do he have :). Added a per day free call limit to stop this for future attempts.</comment></comment>


Math Inspector: A visual programming environment for the scipy stack - <AUTHOR> https://www.youtube.com/watch?v=IQAhv8JM0Jo <comment><AUTHOR> Project author here. I have been working on Math Inspector for the past year and decided to finally make the first video to get the word out about it. One of my youtube comments was featured by Mathologer as the basis for his latest episode from yesterday[1], so I decided to finally make this video and to release it in an alpha-state. Will be getting the website up in a few days hopefully, and depending on how much interest there is may do a closed-alpha and open-beta release before releasing the full product for free.

It's very important to to me that this is free, there are already other tools out there that cost a lot of money, and the math software problem won't go away until there is a free tool on the market. My hope is that Math Inspector will be that tool.

[1] [https://www.youtube.com/watch?v=DjI1NICfjOk](https://www.youtube.com/watch?v=DjI1NICfjOk)</comment>