1

to provide matchmaking between users

Is there value in that?

I know there is value in informed matchmaking but you need a high quality pool of users and companies. Can DW's userbase (which if I'm not mistaken is Dazah's too) support this kind of use in the real world?

I know DW has a lot of members but seemingly only a tiny handful of them are active, many are novices and I don't see any companies being represented.

In this arena you'll be up against LinkedIn, Xing, Salesforce; plus the countless companies that build on their APIs. They all have massive databases full of high quality customer and client record and sell b2b services on top.

Tldr; you might have the expertise but you need the data to back it up.

1

It is none of those things. Amazon have lots of servers, in some cases it's easier/cheaper/more-reliable to use theirs than have your own.

If you don't know the difference between Hadoop and Apache HTTPD, you don't need Hadoop.

1

Yes. Run the website on your local machine and then take a screenshot, and upload that to your host. Then, people can see your AMAZING CONTENT but won't be able to get at your precious, hand-crafted, artisanal, rolled-on-a-virgin's thigh HTML.

An alternative would be to write your website using Adobe Flash. It's capable of making not only beautiful, easily-navigable sites that are accesisible to people with all kinds of disabilities, but you can embed games and funny noises RIGHT IN THE PAGE. I mean, who doesn't want a trumpet sound when they're clicking links?

Votes + Comments
Seriously funny. Toot toot.
1

The week selector is based on ISO8601, and Monday was decided as the first day of the week.

You would need to use a custom widget to customise that. Alternatively, use two inputs, one with the year and one with numbers 1-52. But where possible, I try to stick to standards.

Templating is definitely the way to go for dynamic sections, don't try to build HTML manually with jury or similar. Simplicity is key.

Votes + Comments
OK, I'm gonna figure this out and post back here when I have it officially solved. Thx a ton!
1

but how can I add HTML instead of the 1-word you used for each day?

Yes, you can add whatever you like. If you structure your data something like this, you can easily use a simple templating library to insert any HTML you like

    let data = {
        "2018-W12": {
            "Monday": {
                exercise: "Squats",
                reps: 50,
                intensity: "medium",
            },
            "Tuesday": {
                exercise: "Pressups",
                reps: 30,
                intensity: "hard",
            }

        }      
    };

Also noticed the 2018 references in the javascript

I did this for speed. You could write it by hand, or easily programatically generate a schedule for the next several years, or you could write some code that generates them on the fly. Without knowing your plans for creating the exercise schedule it's difficult to say, but providing your data is well-structured it's not that difficult.

Votes + Comments
Wow, I've never even seen that templating thing before. I'm gonna play with that a ton. Thx!
2

Perhaps I didn't fully understand what you're after, but I'd steer clear of using plugins when you can use standard inputs.

Here's a five minute stab at what I think you're asking for. If it's not it should be easy to customise. Where I've defined let data = {...} you should be reading that from your data (or API) and not hardcoding it in the function!

Oh, and I've only added data for W12 2018 and W13 2018 so it'll throw errors for other weeks. You'd have to revert to a default schedule or handle the error sensibly.

Votes + Comments
That's very close, but how can I add HTML instead of the 1-word you used for each day? Also wondering how I can get the week to start on Sunday . Thx
pretty nifty
1

Writing code like this is nuts.

Why is everything (logic, presentation) jumbled up in one file? Why is your //insert the user into the database. comment immediately followed by an update statement?

I'm not going to solve your problem (or maybe homework question) for you. But the actual actions should be in a controller and your template should be in a, well, template.

class Blah::Create

  before_filter :check_officer

  def new
    # insert a Blah, I have no idea what a permohonan is
  end

  private

  def check_officer
    # is the current user an officer?
  end

end

class Blah::Modify

  before_filter :check_admin

  def update(id)
    # update Blah with value id
  end

  private

  def check_admin
    # is the current user an admin?
  end

end
1

You probably want to be using a for...of loop here instead of a for...in, which means you don't need to set the variable using the index every time.

const drivers = [
    {
        dateTime: "2018-12-04T10:30:45:222z",
        comments: "",
        drivers: [
            {
                fname: "John",
                lname: "Doe",
                driverCode: "DOEJ"
            },
            {
                fname: "Mary",
                lname: "Smith",
                driverCode: "SMIMA"
            }
        ]
    }
];

for (let d of drivers) {
    console.debug(d);
};

Lastly, don't build stuff in the DOM by appending strings. It's slow, ugly and error prone. Use a templating library instead.

1

Working out the difference between two files is trivial using (like I said earlier) diff and comm, both of which have existed since at least the 1970s.

The two provided files, diffed by word. Red bits have been removed, green added.

Screen_Shot_2018-02-15_at_16_18_03.png

Now, comm outputs three columns

  1. lines only in file 1
  2. lines only in file 2
  3. lines in both files

So by default, lines that were deleted in file 2 will be in column 1, lines that were added in file 2 will be in column 2, and lines that remain unchanged will be in column 3. You can surpress columns using -1, -2 or -3, so we can run the command multiple times to get a nice summary.

Lines deleted in f2:
deleted.png

Lines added in f2:
added.png

Lines unchanged:
unchanged.png

2

I'd pay more attention to the slow query log and simple page stats from your logs than hunting down select * queries.

The slow query log will highlight all queries that take more than x time (configurable by you). Your logging system or analytics should tell you which pages take longest to render.

From my experience, it's likely that there will be a couple of pages that hammer the database. Either building up a complex dataset server-side by hammering the database with n+1 queries or doing a few big selects then manually manipulating the data.

So, in short, find the slowest pages/actions. Make them more efficient and faster. Rinse, repeat.

1

I'd create a profile on a low-traffic niche tech forum, add a few links in my signature and then start asking stupid questions. This method is used by all the biggest, most successful marketing companies and soon you will have to upgrade your web hosting because of the influx of punters.

1

Do you want to actually learn how to use NodeJS or are you looking for code you can copy and paste from the internet then ask on here why it's not working?

If it's the former, you can make a good start by checking out the free content on [Code Academy](https://www.codecademy.com/learn/introduction-to-javascript and) and NodeSchool.

Votes + Comments
"I'd get it one piece at a time And it wouldn't cost me a dime You'll know it's me when I come through your town." J. Cash
1

Just an idea. Rather than trying to do two things at once, first make one work then (when you're sure the first bit is correct) concentrate on the second.

If you can't answer the question of "which part is broken?" you're going to struggle.

Install httpie and then you can test your API simply from the command line:

http post localhost:4567 < payload.json

where payload.json contains

{
    "profile_info": "Hello world"
};

Once that works, then re-create that POST using jQuery's $.ajax(). The benefit of working this way is that if something doesn't work, you know exactly where the problem is.

Votes + Comments
I fall down if I move both legs at the same time, unless I'm jumping?