HNHacker News
TopNewBestAskShowJobs

ryeguy

785 karma · joined January 21, 2011

submissionscomments
ryeguy··on Languages on BEAM, the Erlang virtual machine
There is no performance overhead, Elixir is equivalent to Erlang in that they both compile down to beam overhead.
ryeguy··on Languages on BEAM, the Erlang virtual machine
What? No, not at all. Typing errors are programmer errors and are not recoverable. A supervisor is useful for restarting processes that have intermittent failure, and type-based errors are not an example of that.
ryeguy··on The Ruby+OMR JIT
This is an odd stance. Backends are where static typing shine, and where those who like static typing sing its praises. Maybe you just don't like static typing?

I really don't find static typing to be more "work". You still have to think about types in dynamically typed languages, you just get to skip specifying them.

ryeguy··on Sccache, Mozilla’s distributed compiler cache, now written in Rust
It's worth noting this convention is only for unit tests. Integration tests traditionally have their own test directory and files. Because of this, the file-inlined test code you see is normally relatively simple and shouldn't have a ton of extra helper functions and setup and such. The majority of the code should just be test cases themselves, which are clearly marked with #[test].
ryeguy··on SQL style guide
I don't think so, what differences are there? Could this be a database specific thing? In PG it seems equivalent.
ryeguy··on SQL style guide
One advantage of using user_id on both the pk of users as well as the fk side is you can do:

    INNER JOIN comments USING (user_id)
instead of:

    INNER JOIN comments ON comments.user_id = user.user_id
ryeguy··on SQL style guide
I just think it looks visually ugly. I've heard others think that too, so it's not just me. I don't feel like the problem it solves is really that big of a deal. I can always just clone the second line up since order normally doesn't matter.
ryeguy··on RethinkDB needs a new home
Cassandra is also dead and not used by any notable companies.
ryeguy··on Machine Learning and Ketosis
The satiation thing is a valid point (as others have pointed out). I just don't like the super high level view he took of it. I'd prefer something more controlled like eating calorically equal foods and then ranking them by how long they satisfied his hunger.

Fasting is a very effective tool for losing weight. By itself it doesn't really cause any magic (meaning, it doesn't increase the rate of fat loss on its own or anything like that). It's a great tool for diet adherence because your body eventually gets used to its eating hours. If you only eat in an 8 hour window each day, you're fuller during that 8 hour window and generally less hungry in the 16 hour foodless window. You can read more here - http://www.leangains.com/2010/10/top-ten-fasting-myths-debun....

The whole site is dedicating to intermittent fasting and is a good resource.

ryeguy··on Machine Learning and Ketosis
See, studies like these are the problem. They aren't calorie matched making them fully, completely invalid for debunking the point I'm trying to make.

The first study says "[the low carb diet] involves limiting carbohydrate intake without restricting consumption of fat and protein", which means calories aren't controlled for at all. Only carbs are counted. The second study has the same problem, read the methodology section.

Please, link me to "dozens of studies" that refute the link I provided above that: 1) have calories controlled in both groups 2) account for the non-permanent water weight in low carb diets and 3) find statistically significant differences in weight loss vs a regular calorie-restricted diet. You won't find a significant amount, if any.

Your second argument is a really common one and I have never understood it. Agreeing that calorie management is all that is needed for weightloss DOES NOT imply that calories are equal. Calories being equal is not a requirement for counting calories. I understand the concept of TEF and that there are several other factors that can impact what the "effective" calorie amount of foods are. I understand that the human body is incredibly complex and there is no formula for accurately determining an individual's calories.'

But none of these things realistically matter for counting calories as a tool of weight loss. You estimate your calorie intake using one of several googlable methods, then you adjust your intake over time to hit your desired weight loss rate. Any personal variances your body has or any dietary habits you have just get accounted for in the amount as you adjust it.

ryeguy··on Machine Learning and Ketosis
This is delightfully nerdy and overly analytical, but I can't believe someone would go to the extent of creating this yet never think to look for counterarguments against their dieting regimen. Doing this would have given him the answer much sooner.

Trying to figure out how the consumption of certain foods correlates with weight gain/loss is a waste of time because it's simply the caloric content, not the macronutritional content (eg protein vs carbs vs fats). There are dozens of studies showing that only calories matter for weight loss, including vs low-carb, low-fat, and more[1].

The author is acting like each food has arbitrary properties that make them food or bad for weight loss. It's a good reason to play with ML, but it's easier to just count calories. I hate seeing people go down the "good food/bad food" path of thinking because they end up overanalyzing the shit out of everything they eat and for no good reason.

The glycemic index doesn't realistically matter either for a ton of reasons. It hasn't been taken seriously as a useful marker when chosing foods for quite some time now. It's not a reliable indicator of anything. I posted a summary a few years back that debunks all the insulin/GI spike voodoo[2].

Low carb diets work, but they only work because they're a trick to get you to reduce calories. Look at what you're eating and remove all the carb foods. Notice how much your calorie intake dropped. It's a simple way of losing weight without counting calories, but that's it. The weight loss on keto, atkins, etc have nothing to do with carbs, and everything to do with calorie restriction.

It's worth noting that low carb diets have great health benefits, however [3].

[1]: http://examine.com/nutrition/what-should-i-eat-for-weight-lo...

[2]: https://reddit.com/r/Fitness/comments/j853z/insulin_an_undes...

[3]: http://examine.com/nutrition/are-there-health-benefits-of-a-...

ryeguy··on Destroy All Ifs – A Perspective from Functional Programming
I don't agree here at all. The methods you show operate on an Optional, and it's incredibly common to perform those kinds of comparisons so it makes sense that they have convenience methods. This is not at all comparable to something like if_weekday.

This has not "taken over" rust. Result is another type that does this, but this makes sense for the same reasons.

ryeguy··on Microservices Ending Up as a Distributed Monolith
What does the custom message bus offer over rabbitmq? RMQ seems pretty fully featured already.
ryeguy··on Show HN: Compile-time typechecked Akka actors
Why would you name it this? A feature by this name already exists as part of akka. That's confusing and hard to find via google.
ryeguy··on Rust Lifetimes
What makes you think you can't create and return an object? This is how every constructor function in rust works.
ryeguy··on ElixirConf 2015 Keynote by José Valim [video]
ETS still gives you a copy of the data when you retrieve it, so it doesn't really help there.
ryeguy··on Elixir v1.1.0 Released
Honest question, and not meant to be inflammatory at all. I'm asking because I'm starting a project where an actor model may be a good fit.

Why would one choose erlang/elixir over akka[0]? Akka seems to implement a lot of common patterns for you. It has actor persistance, cross-node failover, advanced mailbox and routing logic, and is basically a superset of OTP.

The JVM is generally more efficient, has better tooling (ide support), has better libraries, and so on.

The only point I can give to erlang is the pre-emptive scheduling, which is useful for consistently low latency.

[0] http://doc.akka.io/docs/akka/2.4.0-RC3/java.html

ryeguy··on ScyllaDB: Drop-in replacement for Cassandra that claims to be 10x faster
You are placing way too much weight in microbenchmarks. You simply can't use them to make a sweeping statement like you just did. Writing code that is identical to one another from language to language is not idiomatic and is not representative of how you would write each in a large scale project such as cassandra.

Java has a ton of overhead that C++ doesn't. Each object has metadata which results in more "cold data" in the cache. Each object is a heap allocation (unless you're lucky enough to hit the escape analysis optimization), which again leads to less cache locality because things are distributed around memory. Then there's the garbage collector. Then bounds checking.

ryeguy··on Things Rust shipped without
No, this feature has existed a long time. Here's a post from 2012 showing it's use: http://pcwalton.github.io/blog/2012/08/08/a-gentle-introduct...
ryeguy··on AWS Lambda as a back end for a single-page app
Since lamba is already handling the backend api calls, couldn't you just host the html and js in s3/cloudfront and not have to host anything?
ryeguy··on Why Tech Startups Should Look at Go
Essentially all of the quoted usecases switched from a slow dynamically typed language to Go. Of course that's an improvement.

But I still don't see why you would choose Go over Java (or Scala) for serious backend development. Java has more libraries, is faster, has generics (for the love of god), has better IDE support, and has a larger hiring pool. In summary, the ecosystem is more mature.

Java's checked exceptions are less painful then Go's C-style error handling. They could have gone with something sane like Rust/Haskell style error handling (using the type system), but they instead regressed to return value checking.

The complaints about Java's overwhelming verbosity are mostly dated both on the language-level and the ecosystem-level. Java 8 has lambdas, streams, and more. Spring Boot and Dropwizard are 2 modern, lightweight frameworks that do away with the XML configuration nonsense.

I'm actually genuinely asking why anyone would choose Go over Java and not trying to start a flame war. An API I'm working on is due for a rewrite and it's currently written in PHP. I'd like to give Go a chance but it just seems like a poor choice compared to Java.

ryeguy··on Stalin: a global optimizing compiler for Scheme
This is 8 years old.
ryeguy··on The greatest bug I never fixed (2010)
it looks like it actually transforms the message too, not just adds "..hic"
ryeguy··on Fleep
IRC does not solve half of the problems all of these products do. Persistence, for starters.
ryeguy··on Common Lisp in the 21st Century
One of the annoyances of CL is the absolutely nonsense function names. Just looking at these examples, I have no idea what princ (something to do with print, i assume), getf, or elt (element?) mean.
ryeguy··on More functional C#
Yes, but that's a bit pointless since you can do the same thing in both languages, it's just F#'s syntax is cleaner.
ryeguy··on More functional C#
Because you're already using C# and it can?
ryeguy··on Nimrod: A new approach to metaprogramming
I think the slides are saying you have the ability to pass that option to the runtime. You can specify an upper bound for gc time, see here: http://nimrod-lang.org/gc.html
ryeguy··on Dogescript
More to the point: http://www.reddit.com/r/supershibe
ryeguy··on Ask HN: Who is hiring? (November 2013)
North American Bancard

Company Overview:

North American Bancard is a privately held multifaceted payment solutions provider. Our team of 750+ employees within NAB and affiliate entities facilitate the processing of electronic payments for over 180,000 merchants nationwide. The launch of our mobile POS solution, Pay Anywhere, has enabled us to remain on the forefront of technology and meet the evolving needs of our customers.

This position offers a competitive salary, based on experience, medical, dental and optical insurance and 401K. NAB has been selected as a Best & Brightest Wellness Champion, as we offer healthy vending options and reimbursements for race participation. We also receive discounts on cell phone plans, online retailers, vacations, entertainment tickets and much more!

About us:

    - We practice agile development using scrum.  
    - Flexible work hours.  
    - Laid back environment (casual dress, open floor plan, lan parties, etc)  
    - Headquartered in Troy, MI.  
    - We just moved into a new space with a pretty cool design, check it out:
      http://i.imgur.com/mft0wbR.jpg  
Technology stack:

    - PHP 5.3+
    - Symfony 2 and Doctrine 2 for most new projects
    - Postgres
    - RabbitMQ
    - Git and SVN (SVN is on its way out here)
Technical goals:

    - Move to a service oriented architecture, using RESTful web services for our
      internal systems.
    - Rewrite and rework some of our older systems, improving user experience and
      code modularity.
You should:

    - Have experience writing PHP applications in MVC style.
    - Have experience working with large enterprise-level codebases. 
    - Follow excellent object oriented design principles.
    - Have experience with unit/integration testing, or at least be familar with it.
    - Believe that refactoring is an integral part of development.
    - Be able to write complex SQL queries as well as understand ORMs.
    - Be able to work on-site in Troy, MI.
Other beneficial skills:

    - Experience working in a PCI-DSS compliant environment
    - Experience with service-oriented architecture
Positions:

    - Sr. PHP Developer
    - Web Services Developer
Email your resume or questions to rlepidi@nabancard.com
← PreviousPage 4 of 6Next →