GithubHelp home page GithubHelp logo

elmder's People

Contributors

theoddler avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

elmder's Issues

Add disliking people

  • Don't show users that disliked you in your list
  • Consider adding a third option "Maybe" or something, then this person won't be shown to you any more, but you will still be shown to them?
  • Also add a list of disliked/maybe people (in case someone accidentally did it, or wants to change their mind later)
  • Implement dislike interface

Use postgis

Currently I just store latitude and longitude. Use postgis instead for better indexing, but see if it works with Hasql.

ParcelJS + Elm + Nix

I saw your code and it helped me solve my problem. Thanks! Here's the final version:

{
  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
    flake-utils.url = "github:numtide/flake-utils";
    mkElmDerivation.url = github:jeslie0/mkElmDerivation;
  };
  outputs = { self, flake-utils, nixpkgs, mkElmDerivation }:
    flake-utils.lib.eachDefaultSystem
      (system:
        let
          pkgs = import nixpkgs {
            inherit system;
            overlays = [ mkElmDerivation.overlays.mkDotElmDirectoryCmd ];
          };

          elmParcelNixFix = {
            # To make Elm, Parcel and Nix work together we need do some some fixes:
            # 1. The Elm node package tries to download the binary when installing, this doesn't work in Nix's sandbox, so instead we add it to the nativeBuildPackages, set the npmFlag to not run install scripts, and alter this (https://github.com/elm/compiler/blob/047d5026fe6547c842db65f7196fed3f0b4743ee/installers/npm/bin/elm#L8-L30) script to instead of downloading the binary to just use the one we installed as the native build package
            nativeBuildPackages = [ pkgs.elmPackages.elm ];
            npmFlags = [ "--ignore-scripts" ];
            preBuild = ''
            substituteInPlace node_modules/.bin/elm \
            --replace 'var binaryPath = path.resolve' 'var binaryPath = "${pkgs.lib.getExe (pkgs.elmPackages.elm // {meta.mainProgram="elm";})}"; runCommand(); return; //'
            '';
            # 2. Generate the .elm directory 
            generateElmJsonFiles = pkgs.mkDotElmDirectoryCmd ./elm.json;
          };

          buildInputs = with pkgs; [
            elmPackages.elm
            elmPackages.elm-live
            elmPackages.elm-test
            elmPackages.elm-format
            nodejs-18_x
          ];
        in
        {
          packages.default = self.packages.${system}.frontend;
          packages.frontend = pkgs.buildNpmPackage {
            name = "parceljs-with-elm-and-nix";
            src = ./.;

            nativeBuildInputs = elmParcelNixFix.nativeBuildPackages;
            npmFlags = elmParcelNixFix.npmFlags;
            npmPackFlags = [ "--ignore-scripts" ]; # The prepack script runs the build script, which we'd rather do in the build phase.
            prePatch = elmParcelNixFix.generateElmJsonFiles;
            # preConfigure = elmParcelNixFix.generateElmJsonFiles; # seems you can do either prePatch or preConfigure (maybe others? IDK -- I'm new to this)
            preBuild = elmParcelNixFix.preBuild;

            npmDepsHash = "sha256-Lpj6we8KXfdFNEQpWxeLwX0vTPeZRV0B5oRoh9Ur+y4=";
            # npmDepsHash = lib.fakeHash;

            npmBuild = "npm run build";

            installPhase = ''
              mkdir $out
              cp -R dist_prod/* $out/
            '';

          };

          devShells.default = pkgs.mkShell {
            inherit buildInputs;
          };

        }
      );
}

Implement proper profiles

At the moment I just have these placeholder profile sections. Either add those to the DB, or rework what a profile looks like altogether.

Use combined indexes for search

At the moment each column used in search has it's own index. Consider making a combined index for better performance.

I probably want to make something to actually tests these queries on millions of users first though.

Build query testing tool

  • Something where I can try the different queries on a DB with millions of users in it. To see what optimisations actually really make a difference.
  • Ability to check the query plans of the different queries
  • Make sure to add random impressions, as we use a NOT EXISTS FROM impressions

Messaging

Include indicator of new/unread messages

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.