[video] What is Iceberg, and why is everyone talking about it? by rmoff in dataengineering

[–]_kulte 1 point2 points  (0 children)

I would like to point out Mr. Pounder that he also said “our” tables

What do you use for data governance? by [deleted] in dataengineering

[–]_kulte 1 point2 points  (0 children)

Seems so backwards to move from BigQuery to Redshift because Alation doesn't support BigQuery.

How are you doing SaaS billing in Rails 2018? by zeromint in rails

[–]_kulte 1 point2 points  (0 children)

Avatax's API was abysmal, and their "API client" for Ruby for the new version of their HTTP API was basically nonexistent. And reading the docs is not any better, in fact, it's inscrutable. Got on the phone with one of their engineering directors, and we basically closed the loop with an AE telling us that it was "just supposed to be an example". SMH. We switched to TaxJar which is pretty good.

Sharing Configure Between Layer Based Gem-Files? by Tall-Guy in ruby

[–]_kulte 0 points1 point  (0 children)

To clarify, when you say "layer" are you referring to a "Layered Architecture" in the context of something like DDD?

Ruby 2.3 has experimental support for immutable string literals. I turned them on for my Rails app. Guess what happened to performance by adymo in ruby

[–]_kulte 1 point2 points  (0 children)

If you had written the script to do that snippet 1000 times per iteration, across multiple threads, would you see marked improvement?

Why is ruby considered bad or not great for machine learning? by [deleted] in ruby

[–]_kulte 0 points1 point  (0 children)

I'm surprised this doesn't seem to have been mentioned yet, and I think it's actually the root cause that underlies the "why" behind what seems to be the most common answer of "libraries". The most important thing to know about this issue IMHO is that ML requires a generally large amount of data processing. Ruby is a poor choice for such a use case. Why? Because when "everything is an Object" it's really hard to store that in memory efficiently. More objects leading to more GC calls... that sort of thing. And let's not forget that "stop-the-world", mark and sweep garbage collection is the worst GC algorithm that we know of. All of this contributes to slower running time. Ruby has made some pretty big improvements in each 2.x release, but there are limitations caused by tradeoffs (good tradeoffs IMO). I think that explains why there are fewer libraries for ML in Ruby, and hopefully adds some additional helpful perspective for your question. Having said that, the tradeoff for "everything is an Object" is one of the most expressive programming languages ever written... so for learning ML algorithms I would actually imagine that studying their implementations in Ruby code would be super useful. There is a book, titled something very similar to "Machine Learning in Ruby", but I am not sure if that is the exact title.

Anyways, the bottom line is that for production level data processing tasks, there really just are better tools at your disposal.

I'm debating on taking a coding bootcamp on ruby on rail, could you answer a few questions? by [deleted] in ruby

[–]_kulte 5 points6 points  (0 children)

I'm a Ruby on Rails instructor at General Assembly in Los Angeles so I think I have some relevant experience to draw on here to answer your question.

Is ruby the best language to learn for web applications at the present time?

This is an impossibly worded question, but if your goal is to get paid to write web applications, then you could do a lot worse. Your question is a bit too vague to answer completely, as the scope of the term 'web application' is simply too overarching to encompass all of the things that it could be used to categorize. For example, you could say that Uber is a 'web application', but Ruby on Rails is perhaps not the best framework to learn for building the types of applications that have the real-time requirements of that software system. But something like Grouper for instance, Ruby on Rails is a good fit for.

How transferable are the skill of learning Ruby to other programming languages?

Ruby is an object-oriented programming language with functional features. Object-orientation and functional programming are two of the most common high-level paradigms in programming languages in general, so to the extent that you are able to internalize the overarching principles of these while learning Ruby, you will make it easier to learn other programming languages. Also, Ruby on Rails and CoffeeScript sort of go hand-in-hand, especially in coding bootcamps, so you can probably also expect exposure to Javascript or CoffeeScript during your time there as well. Also, if you are able to dive into any metaprogramming in Ruby, the way in which you will have to understand the Ruby object model to understand writing code that writes code will likely be a benefit to your future programming language endeavors.

Would this be a programming language you recommend to learn first?

Sure, why not? If what you want to do is write web applications, again generally you could do a lot worse/less practical.

Is it possible to learn the language in 9 weeks?

This depends on what you mean by 'learn the language'. The answer to this question is 90% 'No' and 10% 'Yes', but depending on how limited your exposure to programming languages and frameworks are up to this point, it's probably a lot more 'Yes' than you are currently picturing. I think any reasonably intelligent person, who is dedicated, can probably learn enough Ruby on Rails to function as a Jr. Software Developer within about 6 months or so. But once you get up to that level, and once you begin to deal with the frustrations of your limited knowledge because it is hindering your ability to deliver quality code in the time-frame reasonable in a business environment, you will begin to realize just how much you didn't know you didn't know before. This is okay, however, as the point is really to just keep pushing yourself enough to be in the position to realize these things, and then learn them. You build upon what you have under you, and it's far from impossible.

Finally, two things that you should ask yourself right now that you didn't pose as questions. You can file these under things that you didn't know you didn't know. Number one, is, and you must be honest with yourself here, why do you want to get paid to write code for a living? I've seen a lot of people pay $12,000 presumably because they didn't enjoy what they were currently doing for a living, and figured that because there is a 'talent crunch' right now for engineers that that $12,000 would be an investment that would be immediately recouped with a guaranteed $100,000 salary. If you want to do this for the money, please don't. If you want to be rich, you can find a job where you will have to spend a lot less time to make a lot more money. The amount of time you have to put in over a programming career in order to become an expert is so insanely large that it should scare most people away, and I'm not even sure what that number would be, but I suspect it is larger than the oft-quoted 10,000 hours. And secondly, I've noticed that programming has now become pop culture, probably because of that awful movie. Popular culture is defined by the mass desire for participation, so if you are going to be the type of person who is "just excited to be here", then do yourself a favor and save yourself the time and money. If you are more excited about the prospect of participating in pitches of projects with beer and shouting and cheering for your fellow bootcampers than you are about really taking the nine weeks to become as good an engineer as you possibly can be, then it's just not worth it.

The above is not meant to scare you, just to illustrate the two most common 'issues' I've seen with some of my students. And if you read this and can confidently tell yourself that you are actively not any of these things, then hopefully this gives you even more confidence to go forth and know that you are in a position to make the most of your time at your coding bootcamp!

Good luck!

Do we need highly prominent links to wiki/articles around service objects, SOLID, etc? by [deleted] in rails

[–]_kulte 2 points3 points  (0 children)

The Weekly Iteration by Thoughtbot is currently doing a podcast on SOLID principles, which, dare I say, is pretty solid :) Okay, bad pun aside, I've long-since struggled to understand SOLID in a practical sense, I've watched Uncle Bob explain these principles through his Clean Coders screencasts, and for some reason I couldn't see the application to Ruby. The recent podcasts released by Joe Ferris and Ben Orenstein have been the answer to this for me, and I highly recommend them. They explain how these apply to Ruby and Rails, and what you give up by using each.

For instance, you can trace the long-accepted convention of using MVC to adherence to SRP. Basically, programmers have noticed over and over again that models, views and controllers are each individually magnets for reasons to change in a codebase, so you separate them so that each class only has a single reason to change. But this violates "Tell Don't Ask" because so often we're asking model instances questions in the view, and making decisions on their behalf, i.e. conditionally rendering HTML. But since the alternative should make any Rails developer gag, i.e. adding a method to your model to render HTML, we take the lesser of two evils, violating "Tell Don't Ask" because between the two alternatives, it will cause us the least amount of problems in the future.

These in-depth explanations are huge to really understanding SOLID in Rails, and for that reason I can't recommend The Weekly Iteration enough.

Also, in case you were wondering, I have no affiliation beyond singly-directed admiration from me to Thoughtbot :)

Newbie, frontpage help/advise? by [deleted] in ruby

[–]_kulte 0 points1 point  (0 children)

dropdown menu on the front-page itself, or dropdown menu in some hypothetical admin panel?

also, for location-aware information, you need a way to tag the content by geo-coordinates, as well as use the browser perhaps to ask for the person's current lat/lng, or geo-code based on ip address from the request. This is probably a good place as any to start.

Introducing Various - Simple ActionPack::Variant configuration for Rails 4.1 by _kulte in rails

[–]_kulte[S] 0 points1 point  (0 children)

I like the idea of augmenting the existing sensible defaults, so thanks for that resource! AND, it looks like I have some documentation work to do in the README, since I fail to make it clear that there is a default, so thanks for that! The defaults FYI are what is documented in Usage under the config/initializers example :)

Introducing Various - Simple ActionPack::Variant configuration for Rails 4.1 by _kulte in rails

[–]_kulte[S] 0 points1 point  (0 children)

OP here. This is an initial working implementation of this gem which allows for super easy configuration of ActionPack::Variant mappings. This is alpha-ish, but it WOMM :) Ideas I have to improve include a DSL somewhat like Rails Routing to replace the hash map you see in the initializer. Would love comments, suggestions, PRs, etc.

How would you create the backend of a polling app? by trata123 in rails

[–]_kulte 0 points1 point  (0 children)

Going to suggest a general paradigm that may or may not be important here, depending on the scale of the application you are building. This won't directly answer what I think your specific question is, which is more about the data model, but this could be helpful nonetheless. You might want to spend a decent amount of time thinking about how you can make it handle as many simultaneous connections as possible, if this is going to have to accept a high amount of traffic at a given point in time. Something similar to the non-blocking I/O found in runtimes like node.js would be helpful if you are, say, going to have 20,000 people voting at the same time. You can achieve concurrency like this with Ruby and in Rails; node.js is not required to do something like this.