It seems that you're using an outdated browser. Some things may not work as they should (or don't work at all).
We suggest you upgrade newer and better browser like: Chrome, Firefox, Internet Explorer or Opera

×
avatar
real.geizterfahr: snip
Thanks :)

That's really helpful. Everything I've read seems to talk about keywords and stuff and how you should repeat them the right number of times per page and include them in headers etc.
But I've always found it really difficult to do anything like that without it being obvious and stupid, and a lot of the other suggestions seem ridiculously complicated or pointless...
It's good to know that the user's interaction is the more important factor (and what exactly Google is looking for from it), I'll have to have a look at my site and see if there are any ways to improve it.
avatar
DrakeFox: As far as I can tell, SEO is quite a good market to be a consultant in. Knowledge of what works and what doesn't may vary from month to month as search engines change pattern to try to compensate for people who've optimized their site to maybe be misrepresented as more important than it is. Would be nice to know what to work with, but I'm guessing people would prefer to sell you their "secrets" ;-)

For me, I tend to ignore SEO thoughts as a whole, instead focusing on making nice sensible HTML first and foremost, then adding CSS styling and scripting functionality afterwards. I'm hoping something like having a clearly defined MAIN and ARTICLE area for instance would help the page represent itself properly on search engines. Nothing more tedious than hitting a search result only to find the page just mentions what you are looking for in a link or two to other pages, or in a tag cloud.

Edit - unrelated to the post: Just out of curiosity. It seems plenty of people with coding know how passes this thread. I'm wondering how many have played games like TIS-100, SpaceChem, Infinifactory. And whether they like it or go "Ugh I would prefer just coding something actually useful"?

Personally I like TIS-100 and Spacechem, though I've completed neither I still recommend it to people who have an interest in coding but lack the drive to start learning.
Yeah, I imagine so. It's one of those things were whenever you look up anything about it people try to sell you their book of tried and trusted methods, or their super plug in that will make you #1 on Google in a week or something like that.

TIS-100 is on my wishlist, but I absolutely loved SpaceChem (haven't finished it either). It appeals to my logical problem solving side and is one of the most interesting and unique puzzle games I've played in a long time.
Post edited November 20, 2015 by adaliabooks
avatar
adaliabooks: Everything I've read seems to talk about keywords and stuff and how you should repeat them the right number of times per page and include them in headers etc.
But I've always found it really difficult to do anything like that without it being obvious and stupid
[...]
It's good to know that the user's interaction is the more important factor
Placing your keywords and user interaction goes hand in hand ;) Your titles and descriptions are what users see first in Google. If they don't sound relevant (user searched for "computer games event london", but your title and description say "I've met cool people there"), users won't visit your site ;) Keywords ARE important. But you can safely ignore the "X% keyword density" bullshit. That's exactly the SEO tricks I was talking about. Google changes anything and you're screwed. Just write a good text with your keywords in mind and don't worry about the exact position of keywords.

I'm doing this for more than 10 years now and had my good share of black hat SEO. Buying domains with a good page rank to quickly build automatically generated keyword entry pages, hide white text on white background, 5-7% keyword density with a higher density at the top of the page, keyword lists hidden in alt tags of an image... All those sites died after a while. Since I stopped doing this life got a lot easier ;)
avatar
real.geizterfahr: Placing your keywords and user interaction goes hand in hand ;) Your titles and descriptions are what users see first in Google. If they don't sound relevant (user searched for "computer games event london", but your title and description say "I've met cool people there"), users won't visit your site ;) Keywords ARE important. But you can safely ignore the "X% keyword density" bullshit. That's exactly the SEO tricks I was talking about. Google changes anything and you're screwed. Just write a good text with your keywords in mind and don't worry about the exact position of keywords.

I'm doing this for more than 10 years now and had my good share of black hat SEO. Buying domains with a good page rank to quickly build automatically generated keyword entry pages, hide white text on white background, 5-7% keyword density with a higher density at the top of the page, keyword lists hidden in alt tags of an image... All those sites died after a while. Since I stopped doing this life got a lot easier ;)
Yeah, that's more the way I try to do it anyway (relevant titles, headers etc. with keywords in and relevant text).

It's quite funny when you know even a little bit how it works and you find pages and realise all their doing is trying to get people to visit (quite literally clickbait) and the content is just a poorly put together string of keywords and nonsense that is just good enough to lure you into visiting but doesn't actually help you at all.
Unfortunately it seems about 90% of the internet is this now :/
avatar
DrakeFox: Just out of curiosity. It seems plenty of people with coding know how passes this thread. I'm wondering how many have played games like TIS-100, SpaceChem, Infinifactory. And whether they like it or go "Ugh I would prefer just coding something actually useful"?

Personally I like TIS-100 and Spacechem, though I've completed neither I still recommend it to people who have an interest in coding but lack the drive to start learning.
avatar
adaliabooks: Yeah, I imagine so. It's one of those things were whenever you look up anything about it people try to sell you their book of tried and trusted methods, or their super plug in that will make you #1 on Google in a week or something like that.

TIS-100 is on my wishlist, but I absolutely loved SpaceChem (haven't finished it either). It appeals to my logical problem solving side and is one of the most interesting and unique puzzle games I've played in a long time.
Loved TIS-100. TIS-100 brought me back to my assembly language programming days, but in many ways better (and in parallel)

SpaceChem... i like the idea, but it's so very very very confusing to try and lay out what you need to do while having it on a 2D grid because of how you end up overlapping things, then if do you end up often adding delays and checkpoints so things don't touch rather than just making it clean.
avatar
rtcvb32: Loved TIS-100. TIS-100 brought me back to my assembly language programming days, but in many ways better (and in parallel)

SpaceChem... i like the idea, but it's so very very very confusing to try and lay out what you need to do while having it on a 2D grid because of how you end up overlapping things, then if do you end up often adding delays and checkpoints so things don't touch rather than just making it clean.
Yeah, I know what you mean... I got stuck and looked up solutions on youtube once or twice and was gob-smacked at how much more efficient they were... :/
I was just happy if I managed to actually do what they asked, never mind do it fast...
I think I stopped once it started getting really complicated and confusing...
avatar
adaliabooks: Yeah, I know what you mean... I got stuck and looked up solutions on youtube once or twice and was gob-smacked at how much more efficient they were... :/
I was just happy if I managed to actually do what they asked, never mind do it fast...
Some of the optimizations are based on intimately knowing the instructions and behavior.

Something i usually do in programming is break down the problem, then reconstruct it one part at a time. However almost all of TIS-100 puzzles are simple algorithms or functions rather than larger complex pieces.

The hardest puzzle i had with the original set was the sorting one, and insisting it goes in a particular order. Curiously i had one of the more optimized ones...
low rated
Just another bit of programming language weirdness, but with Python.

Can you predict the result of the following two lines of Python code?

True = False
assert True

(Note that the behavior of this code was changed in Python 3 to something more sane.)
avatar
dtgreene: Just another bit of programming language weirdness, but with Python.

Can you predict the result of the following two lines of Python code?

True = False
assert True

(Note that the behavior of this code was changed in Python 3 to something more sane.)
The first would pass silently and the second would assert, since True now "points" to False, I believe.
I'm surprised they changed it in Python 3. It seems part of the normal you can-do-anything-you-want python attitude.
Awww man what is the use of an open source framework, if in the end you have to override a lot of the core methods because the performance is so bad. Well at least you can look into the code and see why it's so slow... Unfortunately in the MS/.NET world there's not much choice if you need open source software to work with. When I was working with Node.js and PHP in the past the problem was more that the amount of tools, helpers, frameworks and whole applications was overwhelming and it could take long to decide on what to use.
avatar
toxicTom: Awww man what is the use of an open source framework, if in the end you have to override a lot of the core methods because the performance is so bad. Well at least you can look into the code and see why it's so slow... Unfortunately in the MS/.NET world there's not much choice if you need open source software to work with. When I was working with Node.js and PHP in the past the problem was more that the amount of tools, helpers, frameworks and whole applications was overwhelming and it could take long to decide on what to use.
I thought the idea of the Open Source framework was then that you fixed the method/function in the source and submitted that as a patch so everyone would get the benefit of the optimized code...providing of course it still served the same function.

With regard to TIS...I got stuck on the whole take an input, output the last 3 values to A and last 5 values to B puzzle. Couldn't figure out a nice way to do this without wasting too many cycles or wasting nodes as temporary memory only so I kinda drifted away.
Found Spacechem a bit more of an abstraction and a good dual-threaded exersice because you had to make sure no collisions happened, but it was quick and easy to see what went wrong if something did. In TIS doing step by step I still have trouble figuring out what exactly is happening where, I'd likely need several steps per instruction to figure it properly.
avatar
dtgreene: Just another bit of programming language weirdness, but with Python.

Can you predict the result of the following two lines of Python code?

True = False
assert True

(Note that the behavior of this code was changed in Python 3 to something more sane.)
given the bit of JavaScript (assume that jquery.js has been included in your scripts:

;(function($,undefined) {
var a;
if (a === undefined) { alert("Hi there!"); }
})(jQuery);

What does it do and why?
avatar
JDelekto: given the bit of JavaScript (assume that jquery.js has been included in your scripts:

;(function($,undefined) {
var a;
if (a === undefined) { alert("Hi there!"); }
})(jQuery);

What does it do and why?
It alerts "Hi there".

As to why...
It's an impromtu function call, an anonymouse function is defined and immediately called:
(function(){})()

This is often done to create a private "scope", a space where no variables are accessible from the outside.

Actually it doesn't matter in this case if jQuery is loaded or not, since it isn't used in the function. But usually this construct is used to ensure that $ - the common placeholder for jQuery isn't colliding with or overwritten by something else called "$", so the jQuery object is passed as a parameter $ into the private scope of the function. This is a "best practice".

The function expects a second parameter called "undefined" (variable name). Undefined is a reserved word, so if you specified "use strict"; beforehand, this should throw an error. And many browsers would actually prevent assigning something to undefined (because this was used for script attacks).
But the function call only provides a value for $ (jQuery) and so the $ variable is jQuery (defined or not...). A value for undefined (as a parameter variable) is not given. In most languages this would raise an error, or the value of the second parameter would be "null". But JavaScript has another non-value other than null: undefined itself. "undefined" means - "no one told me anything about this".

Now on the first line of the function a variable is declared, but no value is given, not even "null". Guess what the value is? Right, "undefined". The if clause now checks for identity (note the three =).
Excourse: Javascript is not strictly typed, which means that certain values of different types translate to each other, especially when it comes to comparison with a boolean result.

For instance:

1 == true ? // true
'' = false // true
null == false // true
undefined == false // true
"I banged your mother" == true //true

But all of the above would result in false if "identity" (===) was used, since they're different values. Only NaN (Not a Number) is an exception:

NaN == NaN // always false
NaN === NaN //exception: NaN is not defined

Wat?

Okay, we now have a identity comparison between a (undefined) and either "undefined" or a variable undefined which is undefined. undefined === undefined -> true, and hence the alert.
avatar
DrakeFox: I thought the idea of the Open Source framework was then that you fixed the method/function in the source and submitted that as a patch so everyone would get the benefit of the optimized code...providing of course it still served the same function.
The "framework" I'm using is actually a fully fledged shop system which I've already heavily modified to accommodate the customer's needs. No way I can make a "pull request" from this.
Also the solution crosses a few boundaries. The system heavily relies on lazy loading for ie. getting localized names, descriptions etc. But I have to deal with a lot of data and to I circumvented the lazy loading stuff and instead load all the data localized already in a stored procedure which accepts the working language id as a parameter. Of course I had to remove all the lazy loads through the localization service afterwards or the work would have been done twice. And there were many occurances.
Post edited November 25, 2015 by toxicTom
low rated
avatar
toxicTom: NaN == NaN // always false
NaN === NaN //exception: NaN is not defined
Actually, just tested in both Firefox and Chromium; NaN === NaN is false, no exception thrown.
avatar
toxicTom: NaN == NaN // always false
NaN === NaN //exception: NaN is not defined
avatar
dtgreene: Actually, just tested in both Firefox and Chromium; NaN === NaN is false, no exception thrown.
Somehow i'd expect it to be Math.NaN...
Excellent! ---> That was directed at you ToxicTom.

BTW, the passing of 'undefined' was to protect "undefined" and you could compare anything to the 'undefined' variable and be sure it was true if truly undefined (including variables set to null).

One of the really cool tricks I've learned in JavaScript is the use of the || operator on assignment. Even empty strings can be replaced with others.

For example:

var template = "";

template = template || "<div></div>";

even if template were null, or an empty string, it would be populated.
Post edited November 26, 2015 by JDelekto