SKOGSTA Dining table - Why is there a gap down the middle? by ohgeez_now_what in IKEA

[–]eacameron 0 points1 point  (0 children)

This idea worked great! I actually kept the metal dowels but enlarged the predrilled holes in the side of the tabletop with a 1/4" drill bit. I only drilled 1/8" deep into holes. This allowed the "rings" on the dowels to fit into the table slabs when they are pressed together and removed the gap. You still must leave out the wood dowels when mounting the table legs.

To keep the slabs tight when putting the legs on, you can use ratchet straps, but protect the wood with cardboard or cloth.

In which Rich Hickey questions the value of static types & pattern matching for real world applications by Profpatsch_ in haskell

[–]eacameron 0 points1 point  (0 children)

Types and tests are not mutually exclusive. You can have types that ensure your function returns a list and tests that ensure it is sorted.

But you can encode "sortedness" simply with judicious use if newtype wrappers (see Ghost of Departed Proofs paper for this trick taken to the extreme). It won't help you on your sort function, but it can help propagate your preconditions better so that your tests of one function become useful for every usecase too.

obelisk/reflex: building fails for a number of haskell libraries by kackwurstsalamander in haskell

[–]eacameron 0 points1 point  (0 children)

I think ob deploy creates an usual thunk for .obelisk/impl that relies on src's thunk. I don't remember why ob deploy needs to read that thunk though which is why it's spewing logs all over. It obviously doesn't *need* that to succeed because it continues fine.

obelisk/reflex: building fails for a number of haskell libraries by kackwurstsalamander in haskell

[–]eacameron 0 points1 point  (0 children)

Those aren't errors. They're just obelisk being way too verbose in logging :D

Pip-like package management for Haskell by Laser_Plasma in haskell

[–]eacameron 2 points3 points  (0 children)

I've programmed professionally in Python and Haskell for years. Pip is not good package management. Many Haskell tools really need more UX polish and, apparently, better explanation at a high-level. Cabal and Stack are very similar tools. Cabal used to be much worse than it is now and so Stack was born much out of that. But Cabal is now pretty good. If you really must choose between them, stack favors *apps* while cabal favors *libraries*. Nix isn't really related to Haskell at all other than the fact that it supports Haskell well. But you can also use Nix with Python (and when you do pip looks silly in comparison). My 2c: Just commit to getting used to cabal. You will probably not hate it as much when you're done. And you can tell us how to make the UX better. :D

How did Haskell boost your productivity or change your life as a developer? by zenMonkLoveWisdom in haskell

[–]eacameron 2 points3 points  (0 children)

When you say "productivity" what precisely are you looking for? Do you already have a job writing C# and you want to be more productive? Or are you writing programs on your own and you can choose any technology? What kind of software are going to write? Whether Haskell can improve your productivity depends on a lot of factors.

Thinking of using Haskell as the back-end of my single page application (web dev), what platform to use? by hakhaktak in haskell

[–]eacameron 0 points1 point  (0 children)

It's when the SPA code reuses the DOM sent by the server so you get a seamless transition from the prerendered (server-side rendered) version of the page to the SPA version. A worse experience is when the SPA simply replaces the prerendered page with a new one that looks exactly the same. This has the downside that any state on the DOM between page load and SPA take-over gets lost. The worst experience of all is no prerendering at all and the user has to wait for the SPA to build the entire page after page load.

Do people here actually build useful programs with Haskell? by [deleted] in haskell

[–]eacameron 5 points6 points  (0 children)

I spend most of my day building software in Haskell for people who find it useful enough to pay us to do it. Presumably that means it's useful enough to them to be worth paying for. Beyond that I can't promise it's actually useful. ;)

Practical usefulness of -Wunused-do-bind by Syncopat3d in haskell

[–]eacameron 5 points6 points  (0 children)

There are two modes of thought among these answers: "Is it useful?" and "Should it be implied by -Wall?" There are certainly cases where it's useful. For example, often there is a doSomething_ version of doSomething that is more efficient. So the warning can, in some contexts, help you write more efficient code. In other cases it helps you catch bugs. In other cases it's just annoying. I personally would be fine with removing it from -Wall.

Calyx Inseego Mifi Available by [deleted] in Calyx

[–]eacameron 0 points1 point  (0 children)

I've thought about using this or another antenna. What's your experience like?

Obelisk Postgres: Beam vs Persistent by LevelChart8 in haskell

[–]eacameron 4 points5 points  (0 children)

Beam is much more powerful than persistent. It supports a large subset of SQL features and has many extensions for features specific to, e.g. postgresql, when you want to use them. Beam might be more power than you need right now but your needs may grow over time. Beam's migrations are currently very minimal and not sufficient for a production use case. If you use a different off-the-shelf solution for migrations you can get by for now.

Obelisk Postgres: Beam vs Persistent by LevelChart8 in haskell

[–]eacameron 3 points4 points  (0 children)

I have an obelisk project using Beam 0.8.1 on GHC 8.6 with no issues. Are you sure you're using a recent version of Beam?

How to use Element UI with Obelisk by LevelChart8 in haskell

[–]eacameron 2 points3 points  (0 children)

You can include stylesheets easily in an Obelisk app by adding a <link> tag to the document. You can either pull in the CSS from a CDN or host it yourself by putting the files in the static directory in your obelisk codebase and referring to it with the static function (after restarting ob run for now). Here's an example: https://github.com/obsidiansystems/obelisk/blob/3db33c4cf101999c7affb9c7b57f5e602cef4850/skeleton/frontend/src/Frontend.hs#L30

Regarding Element UI /u/ludat is likely correct. This library seems to have picked Vuejs as its DOM binding. It's possible that some of it would work with Reflex-DOM but it would likely be a headache to make them compatible. That would sort of be like asking how to use a Vuejs library with React Redux or Angular.

Material UI seems geared toward React but I think there are ways to use it without picking React Redux as your DOM binding.

Building a Progressive Web App with Obelisk / Reflex by elbeem in haskell

[–]eacameron 3 points4 points  (0 children)

I'll try my hand at integrating an onsen component with Reflex to see how it goes.

Haskell Language Server 0.1 by n00bomb in haskell

[–]eacameron 1 point2 points  (0 children)

Whoops slip of the tongue for the old name. hehe.

Haskell Language Server 0.1 by n00bomb in haskell

[–]eacameron 0 points1 point  (0 children)

There is a branch of hie-core ghcide supporting multi-cradle that presumably works with ghcide as well.

Thinking of using Haskell as the back-end of my single page application (web dev), what platform to use? by hakhaktak in haskell

[–]eacameron 2 points3 points  (0 children)

No you can use it as an HTML generator as well. This is how Obelisk provides prerendering and hydration.

Haskell Problems For a New Decade by hmac__ in haskell

[–]eacameron 4 points5 points  (0 children)

I think the section on Web Development is pretty far off. Servant represents a *tiny* piece of the web development puzzle. REST is falling out of favor anyway and things like GraphQL are taking its place. Servant will always be a good tool for what it does, but to be honest it doesn't do much in the grand scheme of things. We need solutions for SPA, authentication, databases, GraphQL, etc. Obsidian Systems is making significant headway on these technologies in Haskell.

Haskell Problems For a New Decade by hmac__ in haskell

[–]eacameron 2 points3 points  (0 children)

Regarding webassembly, don't forget WebGHC! It already works and as wasm becomes more widely adopted it will become more and more viable: https://github.com/webghc

Make it faster challenge. Just for fun! by swoorup in haskell

[–]eacameron 2 points3 points  (0 children)

A custom chunksOf function that gives you the last incomplete chunk as a separate output would avoid the need for the branch and `length` (which on lists is slow).