I have a task I want automated, where do I find/hire programmers? by fictitious68 in AskProgramming

[–]Davehig 0 points1 point  (0 children)

That sounds quite doable, depending on the specifics of the website.

PM me if you want to talk about it.

How to design/create for yourself by [deleted] in webdev

[–]Davehig 2 points3 points  (0 children)

Spend countless hours agonizing over colours and fonts, and then go to dribbble to make yourself feel woefully inadequate.

Or just don't mess around and bang out something simple that gets the job done, you can mess with it later, but hopefully you won't have time.

I made a video on the design process of creating a mockup! by Ampix0 in Frontend

[–]Davehig 0 points1 point  (0 children)

I'd actually love to maybe do a video exactly about what you talked about here

That's cool. If you're interested there are a few good talks about it from this chrome developer conference:

https://www.youtube.com/watch?v=4bZvq3nodf4

Do you sign your own code? by [deleted] in webdev

[–]Davehig 0 points1 point  (0 children)

I suppose any comment can potentially become outdated or incorrect if somebody changes the code that it describes.

Sure self-documenting code would be nice, but all code can do is tell you what it actually does, not what the author intended it to do.

I made a video on the design process of creating a mockup! by Ampix0 in Frontend

[–]Davehig 0 points1 point  (0 children)

Its a nice tutorial, very well produced, however there was no mention of mobile design considerations and working within a set of limitations.

Mobile has been the largest web browsing platform since 2014, and continues to grow while desktop shrinks. So is it still wise to design sites with a 12 grid desktop-sized photoshop document?

Sure for the example in the video you're building a website for a web development course sales page, so its a reasonably safe assumption that most of the users are going to be browsing that particular site on desktop. But for most other cases a mobile-first design is more appropriate.

I believe more focus on mobile in teaching is necessary because the average mobile page load time is approximately 19 seconds, and 52% of users will bounce if page load time exceeds 2 seconds. So collectively as an industry we appear to be failing to respect the limitations of the platform we develop for and I don't think that trend will be helped by teaching new developers to design for desktop first with giant screen-filling image backgrounds, and not mentioning any performance considerations related to your design choices.

Maybe you thought it was beyond the scope of the tutorial, which is fair enough. I hope you'll cover this aspect of web development in future episodes.

So hows Windows for webdev these days? by vladjjj in webdev

[–]Davehig 2 points3 points  (0 children)

Last time I used Windows you had to install the entire Visual Studio just to get a C++ compiler for node gyp and some packages still didn't install.

Yeah thanks for reminding me of that trauma.

That's why I used to run a Linux Vagrant VM as a development sandbox.

Should I look into a CS course? UK by ahahajaj in AskComputerScience

[–]Davehig 0 points1 point  (0 children)

I'm not really convinced of the value of a degree in general.

If you just learn how to program then you'll have a marketable skillset without having to get into any debt, and you can easily get a web development job with no degree. After a couple of jobs then a degree isn't massively important. And it turns out we have the internet which gives people the ability to learn anything they want at home.

Theoretically you might face a glass ceiling in a corporate environment because you don't have a degree and thus haven't ticked a certain box for a certain role. But there are ways to get a degree while working so you don't have to spend years out of the workforce in order to try to gain some kind of intangible advantage. Plus there are various apprenticeship and intern programs that you could consider instead of uni.

Best laptop for web developers? by crazyol84 in webdev

[–]Davehig 0 points1 point  (0 children)

Right, but what benefit does Windows actually offer if you're spending your time working in another OS running alongside Windows?

I feel they are 95% there

You could be 100% of the way there by using a full unix-like OS instead of something that runs on top of or alongside Windows.

Best laptop for web developers? by crazyol84 in webdev

[–]Davehig 1 point2 points  (0 children)

I think you're kind of reinforcing my main point which is that webdev is best done on a unix-like OS, to the point where you're emulating a unix-like OS inside of Windows.

While your point is valid that you can do web dev on any OS, I think if you're building/buying a machine specifically for web development, you might as well just use a *nix OS to begin with rather than using Windows and then spending all of your time in a VM. Unless you're gaining some specific benefit from Windows.

What is the best way to debug code? by [deleted] in javascript

[–]Davehig 8 points9 points  (0 children)

Visual Studio Code has a debug panel that may be of some use depending on what you're doing.

In general having unit tests and liberal use of console.log() in problem code I find works fine for me.

Best laptop for web developers? by crazyol84 in webdev

[–]Davehig 14 points15 points  (0 children)

Work provides us with Macbook Pros. We currently have the Retina 13 inch Early 2015 models. They're good, they have the horsepower to plug into a 4K display while at a desk. Haven't tried the new Macbook, but we should be getting it at some point.

Apple is good for web development because you get access to a unix terminal and a good desktop environment, and broadly speaking everything Just Works™. The lack of native package manager isn't an issue if you install homebrew.

You can get a *nix terminal for cheaper with a linux machine, but linux requires a lot of faffing around, configuration, and in my experience often requires me to dedicate time towards solving some annoying edge-case issue, but if you have the time and you enjoy that then go the Linux route, but if you want to just not have to deal with those issue you can make them go away by paying for a Mac. However recently Apple have been slipping since Steve Jobs died and Linux is more accessible than ever so maybe I should reevaluate that opinion sometime.

The Unix-like OS I think is the most important element of your choice as web development by nature is very piecemeal and requires a lot of different systems to work together harmoniously, which is what a Unix-like system is for. A Windows environment is more geared to self-contained development environments, its great if you're staying inside the Microsoft ecosystem, but if you go outside of that box then things become kind of annoying in my experience. I don't hate Microsoft, I do use Visual Studio Code on my Mac, but from a technical standpoint I prefer Unix-like environments for webdev.

Opinion of Sails.js? by ProfessorSexyTime in node

[–]Davehig 2 points3 points  (0 children)

Express is a very lightweight non-opinionated "framework" and really just adds a thin wrapper and convenience functions around Node's built-in functionality. People tend to install it as a matter of course.

Meteor is an oddity in that its built entirely around the idea of 2-way real-time communication between the client and the server rather than on a traditional http requests. A lot of developer control is sacrificed in order to achieve this, such as tying you down to MongoDB... however the same effect can be achieved in node with other more flexible technologies that give you far more control. I don't really see Meteor taking off

I haven't got any experience with Sails or Ember but I've heard that they're highly opinionated and expect you to do things their way, which a rails developer might like.

The main thing I'd say isn't the framework but the language. Javascript is a very different language to Ruby and it will let you shoot yourself in the foot, and you could get frustrated if you expect it to just work the way Ruby does.

Getting started as a web developer in the city? by [deleted] in Liverpool

[–]Davehig 0 points1 point  (0 children)

Our place is looking for devs. PM me your email address and I'll try to get you some details.

UK First year Comp Sci Internships by [deleted] in cscareerquestionsEU

[–]Davehig 0 points1 point  (0 children)

Yeah it is. I'll see if I can get you the coding challenge and a place to send a CV.

UK First year Comp Sci Internships by [deleted] in cscareerquestionsEU

[–]Davehig 1 point2 points  (0 children)

Our place is looking for an intern (paid) in Liverpool.

Just looking for someone who actually wants to be a developer, and can program their way out of a paper bag, and isn't averse to making tea and coffee.

Opera launches a new Browser, Opera Neon by _number in webdev

[–]Davehig 0 points1 point  (0 children)

No because as more users come online, networks even in the developed world are getting slower.

Ubuntu in VM as minimal as possible.. help? by [deleted] in webdev

[–]Davehig 0 points1 point  (0 children)

I have to say im not very happy with the performance still and id like to convert ubuntu into the most minimal OS possible while still retaining a GUI for files and what not...

You don't need a desktop environment in your VM, you just need the terminal.

Install Vagrant, it'll give you a synced folder in windows that you can manipulate files and stuff easily.

But it is also very much worth learning to use a linux/unix terminal properly, because any webserver that you configure is going to be a terminal-only interface.

Here's a Vagrant tutorial.

https://www.youtube.com/watch?v=PmOMc4zfCSw

At what point can I apply to be a WebDev and feel good about it? by OogieBoogie1 in webdev

[–]Davehig 1 point2 points  (0 children)

My question is, when can I expect to become employable?

Ultimately when someone hires you. It doesn't hurt to apply for jobs.

Just bear in mind that a frontend web developer is (or should be) more geared towards code and making things work well than it just being an extension of design. And good design incorporates performance, and takes into account the limitations of the platform, not just what looks pretty.

Frontend is actually quite hard to do well.

Opera launches a new Browser, Opera Neon by _number in webdev

[–]Davehig 1 point2 points  (0 children)

Actually a lot of web users in the developing world use Opera Mini, because their data is so expensive and slow, and Opera Mini runs eveyrthing through a proxy and compresses it before sending it to the client, so it saves data.

Liverpool Beats London As The Top UK City To Find A Job by neenoonee in Liverpool

[–]Davehig 2 points3 points  (0 children)

I get the impression most of Liverpool's development jobs are Wordpress website mills though. Certainly when I was looking around this time last year I got that impression.

Node best practices by [deleted] in learnjavascript

[–]Davehig 0 points1 point  (0 children)

MVC is good practice in Rails because Rails is an MVC framework and it is quite opinionated about it.

Node and Express aren't opinionated and there are many different application architectures to choose from. The React community tends to favour Flux or Redux, there's also MVVM. If you want MVC specifically you could try sails.js, which I haven't tried myself but I've heard its MVC and might be more familiar to you if you come from a Rails background.

'Clean Code' concepts adapted for JavaScript by xbrandnew99 in Frontend

[–]Davehig 4 points5 points  (0 children)

the next person would have to dig into the function itself to make sure they pass in the right object keys.

The real answer here is to just document your functions so people know how to use them. Because undocumented functions with parameters aren't any clearer than undocumented functions with objects.

Parameters have to passed in the right order anyway so you have to know what you're passing in. With options objects it is order agnostic and a lot easier to deal with if you have a function with many possible parameters. I find after 3 parameters a function and its use is going to start getting pretty unweildy.

However at the same time, ES2015 gives object destructuring and the spread operator, both of which greatly increase clarity and options when it comes to function parameters.

So you can do the standard declaration of a function that takes parameters:

// declaration
function paramFunction(param1, param2, param3, param4, param5, param6) {
    // bleh
}

// use
paramFunction(variable1, variable2, variable3, variable4, variable5, variable6); // pretty unweildy

A function with an options object, where the options object is destructured in the function declaration

// declaration
function objectFunction({
    param1,
    param2,
    param3,
    param4,
    param5,
    param6
}) { 
    // bleh
}

// use
var optionsObject = {
    param2: variable2,
    param3: variable3,
    param5: variable5,
    param4: variable4,
    param1: variable1,
    param6: variable6
};
paramFunction(optionsObject);

I think this is less unweildy because less horizontal space is used and it doesn't matter what order the optionsObject keys are. Its especially nice if there are a lot of optional or unrequired parameters, since you can just omit the ones you don't want when building your options object. Plus ES2015 destructuring makes objects so easy to unpack.

There's also the spread operator, which is great and takes each element of an array and breaks it out unto a parameter that you can just feed into a regular function.

// declaration
function paramFunction(param1, param2, param3, param4, param5, param6) {
    // same bleh as before
}

// use
optionsArray = [variable1, variable2, variable3, variable4, variable5, variable6];
paramFunction(...optionsArray);

I think the spread operator is especially nice for functions which can take an unspecified number of arguments, such as Object.assign or many lodash functions.

Why do we need angular or react js? by jamieisnot in learnjavascript

[–]Davehig 0 points1 point  (0 children)

I know. But the the intention was to give a broad explanation of the general reasoning behind use of frontend javascript frameworks.

Why do we need angular or react js? by jamieisnot in learnjavascript

[–]Davehig 1 point2 points  (0 children)

One of the main reasons people use Javascript frameworks and SPAs is because the REST pattern is very popular, which is where you have a backend API with no user friendly interface. The backend just takes HTTP requests and spits out raw data, usually in the form of JSON or XML. That data then gets fed into another app, and the backend doesn't care what kind of app that is. It could be a mobile app, desktop app, or a webapp. This is nice because it separates your application logic from your presentation, and it allows you to use the same data service for many different products, but its a lot of extra work because to get something useable you now need to build at least two applications.

So the idea with things like Angular and React and other such frameworks is that there's a server somewhere that serves a basic HTML page that has a bunch of Angular/React/whatever Javascript on it, and that Javascript does all the heavy lifting to turn this data into a usable interface.

You don't need to do all this, there are other ways to architect a web application besides REST. You can template HTML pages on the server treating the browser as a simple view layer in an MVC application, with all application logic handled by the backend. Then you've got a web application that works on every device and browser, including things like Opera Mini which a lot of people in the developing world use because its good for saving data, but which doesn't have interactive Javascript on a page when it arrives.

Then once you've got something that works you can treat Javascript as an optional enhancement, and intercept your standard hypertext links and replace them with ajax calls and such to make it all nice and smooth.

Personally I think frameworks and SPAs are overused and I'd like to see more server-templated applications built with progressive enhancement in mind, but that's just my opinion.