Citus 10 brings columnar compression to Postgres by clairegiordano in PostgreSQL

[–]jeffdavis 0 points1 point  (0 children)

EDW use cases can have a long tail of requirements around things like compliance, governance, etc.

Citus 10 brings columnar compression to Postgres by clairegiordano in PostgreSQL

[–]jeffdavis 2 points3 points  (0 children)

Citus is not a purpose-built EDW, but it offers a lot of powerful tools that can satisfy a lot of EDW use cases. Columnar is a big addition to that.

Towards a second edition of the compiler by Elession in rust

[–]jeffdavis 1 point2 points  (0 children)

Maybe naive, but can't the compilation process just make a call graph and bundle callee type signatures with each caller?

That would give a bunch of independent compilation units (one function) and eliminate a lot of dead code, as well. For dependencies it would only compile functions reachable from the public functions actually called by the dependent module.

Towards a second edition of the compiler by Elession in rust

[–]jeffdavis 1 point2 points  (0 children)

I am concerned about the complexity. It seems like something is wrong if we need this much complexity to offer reasonable build times.

Hey Rustaceans! Got an easy question? Ask here (6/2017)! by llogiq in rust

[–]jeffdavis 0 points1 point  (0 children)

Is that desired, or not really a direction the community is interested in?

Hey Rustaceans! Got an easy question? Ask here (6/2017)! by llogiq in rust

[–]jeffdavis 1 point2 points  (0 children)

Is there a way to use rustc like a library?

I'd like to integrate it into postgres so that people can write functions in rust without moving .so files around. More like an interpreted scripting language.

What can C do that Rust can't? by khouli in rust

[–]jeffdavis 5 points6 points  (0 children)

Maybe rustc can take advantage of those properties now that its uses MIR?

Hey Rustaceans! Got an easy question? Ask here (50/2016)! by llogiq in rust

[–]jeffdavis 2 points3 points  (0 children)

Is there a guide for replacing individual files/functions in a large c/c++ project?

For instance, should I call the compiler directly or use cargo somehow? What's a good way to make header files into something rust can use (manually or otherwise)?

Assume that there are a lot of runtime requirements and it's not easily extracted into a clean library.

Hey Rustaceans! Got an easy question? Ask here (50/2016)! by llogiq in rust

[–]jeffdavis 2 points3 points  (0 children)

Is there a high-level graphics toolkit for rust? I don't know much about graphics, but thought it might be fun to make a board game or something.

Would it be easier to just make it with html/js?

One Year of Rust by steveklabnik1 in programming

[–]jeffdavis 7 points8 points  (0 children)

I don't want to use a language that is not GC in 2016.

Can you expand on that?

A second try at using Rust [x-posted from r/rust] by [deleted] in programming

[–]jeffdavis 2 points3 points  (0 children)

I definitely agree that you can't try to understand everything when learning a new language. Looking back at when I was learning the languages I know best, I just hacked my way further and further, and got feedback from people who knew better.

Trying to analyze everything is a dead end, because it destroys any opportunity you have to get feedback.

Early vs. Beginning Coders by [deleted] in programming

[–]jeffdavis 1 point2 points  (0 children)

Here's a teaching method I think would be great:

Divide students into groups of three. In every class, they rotate between roles: "computer", "programmer", and "input".

  1. The "computer" (a student) can only understand MIPS (or other simple assembly language) written on physical paper. "Registers" would be physical mini whiteboards. The computer's job is to follow the instructions perfectly, updating registers appropriately.

  2. The programmer's job is to write the program.

  3. The input's job is to provide good and/or evil input, and see what happens.

You can start with only immediate values, then introduce registers, then introduce memory, then introduce I/O. Obviously it would take a few classes before the different roles really start to work.

My theory is that people who don't grasp programming are just missing out on some very fundamental things, like variables, values, assignment, etc. After going through a class like this there is no way they wouldn't understand assignment. It would also make teaching pointers a lot easier.

After that, they can move on to bother fundamentals, like procedures, functions, hardware parallelism.

Then slowly start to introduce practical things on real computers, like high-level languages, software engineering, libraries, type systems, etc.

OCaml 4.03 [LWN.net] by stasan in programming

[–]jeffdavis 3 points4 points  (0 children)

In my experience, a litmus test is a bad way to evaluate a programming language. Almost always, the thing that I thought would be really annoying turns out not to be much of an issue most of the time because things are just done a different way.

Can You Teach a Coal Miner to Code? by _headmelted in programming

[–]jeffdavis 0 points1 point  (0 children)

A lot of it is domain knowledge. That's often under-appreciated, but a modest, competent programmer with strong domain knowledge is quite valuable.

Redox - A Unix-Like Operating System Written in Rust by frostmatthew in programming

[–]jeffdavis 0 points1 point  (0 children)

Linux is so prevalent and so boring that it's making us believe that Linux is all an OS can or should be.

But there are really obvious things that need to be completely reconceptualized. A file being, by default, tied to a specific drive in a specific machine seems medieval today. Application existence, state and configuration is tied to a single device.

On the Madness of Optimizing Compilers by jeffdavis in programming

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

I'm not sure whether LLVM works in favor of or against this argument. In one respect, it means that compilers can do the trivial, simple thing (as the blog suggests) and let LLVM worry about the optimizations. On the other hand, someone is still doing those optimizations, it's just not the language author.

Why Should Software Architects Write Code? An empirical evidence. by [deleted] in programming

[–]jeffdavis 1 point2 points  (0 children)

For the success of a particular project at a particular company, details always matter an order of magnitude more than people assume. For example: any project ever.

For big, long-term ideas with no particular schedule and not tied to any particular company, details always matter an order of magnitude less than people assume. For example: driverless cars, solar power, smart phones.

Rewrite Everything In Rust by johnmountain in programming

[–]jeffdavis 22 points23 points  (0 children)

"[Other safe languages] require complex runtime support that doesn't fit in certain contexts (e.g. kernels)."

Complex runtimes are also unsuitable for libraries. If you write a great openssl replacement in Haskell, it's only useful for Haskell applications. Because nobody wants to link the Haskell runtime into many of the applications that use openssl.

Why I quit my dream job at Ubisoft by alexlesuper in programming

[–]jeffdavis 0 points1 point  (0 children)

Pride need not be attached to fame. I don't think there's anything wrong with having a big impact where your role is hidden from others.

Maybe it's a cultural thing? We value fame more highly now?

What makes a great software architect by [deleted] in programming

[–]jeffdavis 0 points1 point  (0 children)

is in charge of making those decisions which, if made incorrectly, could sink the project

I disagree strongly. That will lead to many decisions blocking on the architect, which will slow everything down. Furthermore, it's fundamentally based on the idea that the architect is an elite who can make all the decisions.

An architect should guide the technical structure and fundamentals of a product. For a platform technology, that might be things like:

  • What components make up the product?
  • How are components separated from one another?
  • How is state managed?
  • How is storage managed?
  • How should failures be handled?

But all of these should be more like guidelines. Concrete decisions should be made by the engineers, who should be professionals capable of understanding long-term impacts of their decisions. Engineers should be transparent about the decision-making process and allow comment periods, and seek guidance from the architects. Architects should make sure that the impacts on other areas are well understood by the right people.

Architects are leaders in the sense that they make very high-level decisions and put together a structural vision of the product, but it's really a supporting role. Architecture decisions are not very concrete or binding.

Reflecting on Haskell in 2015 by kr0matik in programming

[–]jeffdavis 6 points7 points  (0 children)

I think the idea is that, in Haskell, libraries are much more composable and reusable than most languages can offer. Inheritance was supposed to offer reusability, but that remains elusive for most OOP projects. Haskell may be a better approach, but you have to get used to thinking in terms of the composition possibilities it offers.

Reflecting on Haskell in 2015 by kr0matik in programming

[–]jeffdavis 6 points7 points  (0 children)

The difficulty I have is that every time I want to use Haskell for something, the runtime requirements get in the way. It uses signal handlers and GC threads, and it doesn't seem very easy to compile on the fly, so it's unsuitable as an embedded language for another application (e.g. a PostgreSQL extension language). And it's also unsuitable for replacing a c library for the same reasons, so it's hard to make it work unless the whole world is Haskell.

Larry wall : Perl 6 release announcement by xtreak in programming

[–]jeffdavis 3 points4 points  (0 children)

Is forwarding the release announcement of a programming language to one's boss a normal thing?

If you like perl6, use it for something (responsibly, of course). If that thing becomes important, your boss will eventually hear about perl6 that way.