News for hackers. Stuff that matters.

pashields

Re:Stages of learning Go, with code examples on Wednesday February 25, 2015 @12:11PM (#9107899)
Idiomatic means "using expressions that are natural to a native speaker." It's very possible, but not idiomatic, to write functional Java (pre-8). It's often more verbose and difficult to follow because there is no real notion of higher level functions or composition, let alone immutable data structures. The guava wiki has a good example of this: https://code.google.com/p/guava-libraries/wiki/FunctionalExp....

That doesn't mean that idiomatic practices are always virtuous, but non-idiomatic code is only virtuous because it overcomes an inherent mismatch between what the user wants and what the language provides. With many languages (certainly js, java, c++) we see non-idiomatic practices guide changes to the language and then be replaced. Java gained functions to avoid the abuse of anonymous inner classes. ES6 is stealing from transpiled javascript languages left and right.

Making idiomatic code virtuous is the goal of creators and maintainers. Writing idiomatic code means that you have chosen languages, frameworks, and libraries that are closely aligned with the code you need to write and the style you want to write it in.

Re:The Redis criticism thread on Tuesday December 10, 2013 @07:54AM (#6880412)
Re:The Redis criticism thread on Monday December 09, 2013 @10:33PM (#6878822)
Just to be clear, the criticism is of Redis Cluster, which has been redesigned because the first design was so lax it was effectively unusable. The real issue, is that as of right now I have no idea what the exact semantics and failure conditions of Redis cluster are. I'm not clear that anyone really knows. Salvatore thinks he knows, but we can't be sure that he does.

With all this talk of practicality, what really makes distributed systems practical is when someone can do a formal analysis of them and conclude what possible states can occur in the system. This is not work that database users should do, it is work that database implementors should do. The failure to use a known consensus system is a failure to deliver a database I can understand.

I find this all a bit disappointing since I've been a huge fan of Redis since the early days. It's an amazing tool that I still have in production, but I get the feeling that it's utility will never expand to suit some of my larger needs. Bummer.

Re:Amazon ElastiCache - Now With a Dash of Redis on Wednesday September 04, 2013 @01:17PM (#6328958)
They handle automatic failover, which redis does not currently do out of the box. That part is pretty cool. Maybe not worth the price, but definitely useful.
Re:Ask HN: Who is hiring? (September 2013) on Monday September 02, 2013 @12:00PM (#6315711)
Adzerk - Durham, NC 12 person (and growing fast) ad platform. Real customers (Reddit, Stack Overflow, and more), real revenue.

We have open positions in sales, devops, and developer roles. More info on the positions here: http://www.adzerk.com/job-openings/

Re:Ask HN: Who is hiring? (August 2013) on Thursday August 01, 2013 @03:40PM (#6142922)
Adzerk - Durham, NC - Full-time, permanent - (http://www.adzerk.com)

We're looking for a devops engineer and both junior and senior developers. More info on our jobs page (http://www.adzerk.com/job-openings/)

Adzerk is focused on helping publishers make more money from their ad inventory by building a revolutionary ad serving platform. We believe that making advertising a viable business model for publishers ensures the future of a free and healthy internet. We love nothing more than helping a great publisher be rewarded for their hard work and help them continue to create awesome content.

Re:Ask HN: Who is hiring? (July 2013) on Monday July 01, 2013 @10:49AM (#5971003)
Adzerk - http://www.adzerk.com/job-openings/ - Durham, NC

We're looking for software engineers, both senior and junior. Our needs are all over the place, from UI to data warehousing, so there is a lot of skills you can bring to the table and many areas to play around in. We've got 10 people on the team right now and we are planning to grow!

Adzerk is a Durham, NC startup that’s helping content publishers make more money from their ad inventory by building a revolutionary ad serving platform. We serve ads for reddit, stackoverflow, and other sites you've probably heard of.

Re:Courtney Love does the math (2000) on Sunday March 10, 2013 @11:59AM (#5352338)
The pre-internet version of this is Steve Albini's "The problem with music" which shows how major labels can end up costing bands quite a bit of money. Originally printed in Maximum Rock 'N Roll in 1993, but reproduced here on Negativland's site: http://www.negativland.com/news/?page_id=17

It's worth the read if only for the amazing end line: "Some of your friends are probably already this fucked."

Apparently, he'll be updating it for the digital age soon based this article from January: http://www.mhpbooks.com/steve-albini-to-update-the-problem-w...

Re:Matlab, R, and Julia: Languages for data analysis on Tuesday October 16, 2012 @02:19PM (#4661121)
Not after a small function change. See Wes' remarks in comments: http://wesmckinney.com/blog/?p=475#comment-521757980
Re:It's not a talent shortage, it's a hiring problem on Sunday March 11, 2012 @09:52AM (#3690348)
People who would work out perfectly in the R&D division of SAS Institute are not necessarily great first hires at consumer web start-ups (forgetting the potential skill impedance mismatches). There are lots of implicit ideas about "how things get done" that are part of any group. These ideas are the culture.

e.g. Does the team practice TDD? Do they focus on unit tests or integration tests? How is work assigned? Does the team prototype ideas or discuss them in the abstract? If someone says something you think is wrong in a meeting, do you confront them publicly or privately? 12-hour days? Do you pick tools that are cutting edge or proven? Duct tape together two open source libs for one feature or write your own? And of course, the classic: Is it better to a) ship early with known non-critical bugs, b) ship on time with no known bugs, but inadequate testing, or c) when all/most stakeholders feel confident the project is bug-free?

These questions aren't nearly as binary as I've presented them (and there are many more). If you and your potential new team don't agree on these issues that's a poor cultural fit. Like a poor technical fit, it doesn't necessarily mean you shouldn't be hired, but it does merit significant consideration.

Re:First Language's Don't Matter on Saturday March 10, 2012 @02:17PM (#3688459)
I can't agree with this. It's true that many languages work well as starters, but there are certainly some that don't. I think java is a classicly bad first language. There is a lot of ceremony which will take you a considerable amount of time to understand (public static void main) and it's also heavy handed on object orientation. Whether these things are useful in long run is debatable, but it's an amazing amount of conceptual overhead. Worse, unlike the overhead of low-level language like C, the pain in a language like Java comes from complex abstractions. Understanding pointers is difficult for many people, but it's mostly based on whether you understand how in memory storage works. There's a more straight forward path to that than to understanding the how/why of OO.
Re:Python’s Valentines Day Gift to Clojure on Tuesday February 14, 2012 @02:48PM (#3591469)
Some (potential) context to this is that at Clojure Conj there was a discussion of the potential for clojure expressions to become a standard data serialization format. The idea is that clojure data is significantly more rich than something like JSON.

In fact, as I understand it, some of the changes to the reader in 1.4 are aimed at working on this goal. You can read a little about this at http://dev.clojure.org/pages/viewpage.action?pageId=950382

Re:Path uploads your entire iPhone address book to its servers on Tuesday February 07, 2012 @02:47PM (#3563370)
I'm at a loss as to how this is surprising anyone. How did people think that these apps found other users you know? This is built to support: A) finding existing people on the service and B) so they can (theoretically) send you notifications if a friend joins. If you want those features (and it seems that users do), this is the only way to do it. Admittedly, most apps are more explicit about it with a "find friends from address book," but if you want to lower the friction as much as possible, this is the way to do it.
The author hints at, but doesn't push the issue that the cost is all really in the customization. If you were to build an app using only standard apple components, the cost would be significantly less (at least 2x). Those custom components take a lot of effort, particularly when you end up hacking Quartz.

A quick example, I implemented a very good looking custom badge system for an app. The result looked just liked design, could be generated programmatically, and worked like a charm. It also took me a couple of days to implement the whole thing in quartz. If I were doing this as consulting, that's a $2-3000 feature. These things add up very quickly, particularly if someone wants to "try a few out."

Re:Path(v2) fly out menu already recreated and open sourced. on Thursday December 01, 2011 @04:13PM (#3301408)
I just posted a demo video on youtube. http://www.youtube.com/watch?v=vddaYMtETjo

Done using iOS 5 simulator on iphone 4. I'm going to send a pull request to the author to include it in the README.

Re:Clojure Conj Slides on Saturday November 12, 2011 @12:20PM (#3228242)
No slides. It was just a live demo with color commentary.
Re:Clojure Conj Slides on Saturday November 12, 2011 @08:59AM (#3227819)
I really hope Byrd and Friedman's talk from thursday night was taped. Highlight of the conference so far for me.
Re:CoffeeScript Means Giving Up on JavaScript on Sunday November 06, 2011 @10:59AM (#3202942)
I like having things like list comprehensions. I like having a sane scoping system (as opposed to jsl and "best practices"). I'm also pretty fond of the syntactic sugar being offered (the existential operator in particular).

Coffeescript just gives syntax to common patterns being used in js. For the most part, it feels like a bunch of really nice macros that encapsulate those patterns, making them less error-prone, easier to read, and easier to maintain. I'm not really sure what the concern here is, since most of the post seems to assert that people who use coffeescript don't know js, or that these shortcomings could be addressed equally as well by a large framework system. I can't imagine anyone actually believes the former, and while the latter may be true I don't know why that framework will be so much easier to learn, use, and maintain than the equivalent coffeescript.

We've only experimented with converting over to AF, but the experience has been fairly pleasant. In particular, Mattt has been very receptive to talking a few things out with me and even sent me a follow up this morning when one of my complaints was fixed. Interacting with the community is important for this sort of project, and Mattt has a good start on that.
Re:Cringely predicts the second coming of Java on Wednesday October 12, 2011 @02:51PM (#3103986)
This doesn't make any sense. It's relatively easy to horizontally scale web servers. Perhaps at huge scale this would an issue, but I would imagine it's relatively easy for most developers to line up servers/instances behind a load balancer and have at it. The database is always going to be harder to scale because it holds state.
Re:A better introduction to Objective-C on Tuesday September 27, 2011 @08:41AM (#3042969)
Can you expand on this, as the resistance to this style has always confused me. The concern you are presenting is that a subclass could implement the setFoo method, and do so in a way that: 1) does not call [super setFoo:], and 2) does not follow the convention of handling memory management appropriately?

My problem with this argument is that the user could botch release just as well. Maybe they are slightly more likely to botch the setter, but either way they are botching it.

Re:Ask HN: Development on a 13" air? on Sunday September 25, 2011 @12:28PM (#3036064)
Battery doesn't last nearly as long (only about 3 hours of real work). It also runs hotter, but that hasn't been a problem.
Re:Ask HN: Development on a 13" air? on Friday September 23, 2011 @12:40PM (#3030601)
When I travel or feel like hacking somewhere besides my desk, I work on an 11" air with an i7. The screen size is tight if you spend a lot of time in IDEs (for me, eclipse and xcode). When I'm able to work in emacs, I have more than enough room.

The only other thing really worth considering is RAM. If you are a web developer I suspect this isn't too much of an issue. I find that running xcode and eclipse together produces some swapping.

Surprisingly, I noticed a ton of airs at strange loop earlier this week, so they seem to be doing ok with hacker crowd.

Older »