add arrow-down arrow-left arrow-right arrow-up authorcheckmark clipboard combo comment delete discord dots drag-handle dropdown-arrow errorfacebook history inbox instagram issuelink lock markup-bbcode markup-html markup-pcpp markup-cyclingbuilder markup-plain-text markup-reddit menu pin radio-button save search settings share star-empty star-full star-half switch successtag twitch twitter user warningwattage weight youtube

Recent code changes - 12/13/2015

philip

43 months ago

I really need to finish up my Christmas shopping, and in a hurry. Typing the date into the subject just made me realize how close Christmas really is. Yikes!

Anyhow, here's some info on what I've been working on recently. It's mostly unexciting stuff but that helps from a UX perspective.

Account activation

When new users register on the site, they're sent a confirmation email. If they don't click the activation link in the email, they can't log in. Previously, that login would just fail. They'd then try to reset the password on the account. All the while the account had not been activated yet.

Password resets are tricky - you enter your email address and click "Reset". What happens if you enter an email that isn't in the system? Common sense would say you provide an error showing there is no email like that in the system. Privacy will tell you different however - that a malicious entity could use that to determine which emails have been registered with the system or not. So to protect privacy the password reset always says that an email was sent out - regardless of whether there is a matching email or not. Password resets on unactivated accounts unfortunately need to behave the same way to protect privacy from 3rd parties.

What I've rolled out is that now if you try to log in on an inactive account, you'll get an error message indicating as such. (You do have to provide proper credentials of course.) If you try and log in on an account that hasn't been activated yet, you'll be told that and will be provided the opportunity to resend the activation email in case it got eaten by a spam filter.

It's not the most fun code to write, but it's necessary for a better new user experience.

Commenting bans

Occasionally we have some users who don't want to adhere to our forum guidelines or don't want to be constructive participants on the site. When we see comments or behavior that detracts from the community we'll usually give out a warning. When the behavior is egregious, we'll ban outright.

Banning can have a strong impact though, particularly for users who have built out large saved part list sets, etc. All that gets lost as the account is no longer accessible. Occasionally what we want to do is a temporary ban - a warning of sorts. Until now that wasn't really possible, because a ban is permanent. Once you delete all the saved part lists, well, that's it. There's no going back to that account.

So as a compromise we've added the ability to ban commenting on an account. For abusive users we can leave it permanent - they won't be able to comment but they will still retain their saved part lists and will be able to create new ones. For users in "timeout", it can be a temporary thing. We think this will be a tool we can use to help keep the community culture in line with what we want.

Future stuff

Yep, I know forum search is something people want. It's on the TODO list with a high priority.

Also, I'll be adding in some additional notification options. I plan on adding in the ability to subscribe to comment reply notifications on topics, builds, and guides, regardless of whether it's in reply to you or not. Creating my corner forum and topics made me realize I want to get notifications on all replies to those topics, regardless of whether they are to me or not. So keep an eye out for that soon.

I'm also working on additional skunkworks type stuff. ETA is a ways out, but I think it'll be good. Really good. :)

Comments

  • 43 months ago
  • 1 point

Sounds good Philip! Also, while on the subject of bans, are staff members able to see the accounts and comments of people who are banned?

  • 43 months ago
  • 1 point

Yep, we are.

  • 43 months ago
  • 1 point

Can you guys reply to them?

  • 43 months ago
  • 1 point

We can, but I can't think of an instance where we have.

[comment deleted]
  • 43 months ago
  • 2 points

Correct - I can read (and reply to) deleted comments.

  • 43 months ago
  • 1 point

Hello Phillip, I am currently in high school and have been interested in web develoment.

How would you suggest going about this?

What languages should I learn?

Would an internship type deal be useful?

How did you get into it?

If you wouldn't mind answering these questions it would be very helpful.

Thanks in advance!

-社科有 (Sky)

  • 43 months ago
  • 4 points

Hi Skylord,

The best way to go about web development is just to try it out. Most of the major platforms and frameworks are free, so all there is to lose is time.

Language-wise, there are plenty of good choices. We use Python here, and it's a good language to learn. Other popular web dev choices would be Ruby, Javascript/NodeJS, Java, etc. For Python, there are some good tutorials and intros online, like Learn Python The Hard Way. Then once you feel comfortable in the language, check out various web frameworks for Python like Flask, Django, etc. (We use Django here.)

Internships are definitely useful, but if you don't know any programming languages already, I'd get familiar with one first. After learning one, the rest will feel very similar and will be faster to learn. Then you don't spend your internship learning to code (which could be done on your own), but rather leveraging the experience of your peers to code better.

I messed around coding when I was in middle school on a C64. But then I put it down and didn't code again until I got to college. I started college going for an electrical engineering degree. As part of the curriculum I took an intro programming course (on Fortran of all things) and loved it. So I switched majors to Computer Engineering (Computer Science track) - basically a CS major with a EE minor. I got to take a decent amount of EE courses, but then got to go CS for the main stuff. My first web apps were actually written in C, which is not a fun language for web dev. I played around with web dev stuff through college - ran a network share search site on the dorm network that got pretty popular. After I graduated I went to work doing C/C++ stuff in the test and measurement industry, but kept doing web stuff on the side as a hobby. This site was just meant to be a hobby project for me to learn Python/Django. Then it grew legs.

  • 43 months ago
  • 1 point

I have learned a few basic languages. Mainly CSS along with a few others.

Thanks for the detailed response! It will definitely help me grow my knowledge!

I will start learning python as soon as possible haha.

  • 43 months ago
  • 1 point

Sky? I know for a fact that its mandarin or japanese (1/2 of japanese charaters are actually reused mandarin words) i am chinese, and the way i learned it, its one sylable "tian/tien" and the simplified hanyue that i learned for tian/tien matches NONE of the ones you put.

Unless thats your name.......

Even for japanese, sora (sky) is only one or 2 charaters. You put 3

  • 43 months ago
  • 1 point

It was a random feature on my new phone. It was worth a shot.

[comment deleted]
  • 43 months ago
  • 1 point

Google translate isnt good for some languages. Especially for mandarin. I tried some. The translation looked soo bad. You could direct trabslate wrd by word (bonjour=good day) and still get a better trabslation.

  • 43 months ago
  • 1 point

Agreed. I like it when I do projects and I don't know what how to say something or as a reminder for some words that I forgot, but other than that I don't like to use it.

[comment deleted]
  • 43 months ago
  • 1 point

Nice to see your focus on that obscure security issue... sadly most site admins have no clue that theres an issue there... It speaks volumes for how you handle other security related policy. :)

  • 43 months ago
  • 2 points

LOL. We don't use SHA for password hashes either. (EDIT: wait, that could be construed that we store them plaintext. we don't do that either.) :)

  • 43 months ago
  • 1 point

just say you do, and write a dummy password into the html lol

  • 43 months ago
  • 1 point

I'm also working on additional skunkworks type stuff. ETA is a ways out, but I think it'll be good. Really good. :)

Like, you allow PCPP to check your webpages and when parents look up "gifts for kids", it automatically links to the parts saved in your "wish list"? Or is this some special PCPP version of the site for those of us orbiting the blue marble?

  • 43 months ago
  • 1 point

Whats skunkworks?

  • 43 months ago
  • 1 point

So a project conducted by a small group that works on a secret project that aims towards innovation?

  • 43 months ago
  • 1 point

Pretty much.

  • 43 months ago
  • 1 point

We'll just say we're very excited about where things are headed. :)

  • 43 months ago
  • 1 point

Is it another redesign? Or maybe, you guys really are making Nostalgia Mode

  • 43 months ago
  • 1 point

LOL nope, neither of those. Let's file it under "additional functionality".

[comment deleted by staff]
  • 43 months ago
  • 1 point

Hey, I just noticed a huge change...

When you hover over the "Cancel" button in a comment, the background turns red and the text turns white, instead of the text just turning blue.

  • 43 months ago
  • 1 point

Yep! That was a UI change that philcoffman put in to make the Cancel button a bit more prominent.

  • 43 months ago
  • 1 point

Really improves the site. I was ready to stop using it because of that button. xD

  • 43 months ago
  • 1 point

Commenting bans

Oh god please yes. Back a year or so ago I got banned because I tried to link a couple pictures but I made a newbie mistake and copied the google search link of each image resulting in a huge wall of links and I in turn got insta perma banned lmao. Account gone and everything. Im glad this is going to be a thing because although situations like mine dont hardly ever happen anymore with the warnings that are now given out its still a really nice thing to have.

  • 43 months ago
  • 1 point

Website needs more memes, dank ones.

  • 43 months ago
  • 1 point

Agreed. Lol (͡° ͜ʖ ͡°)

  • 43 months ago
  • 1 point

People don't agree, i get straight downvoted (sad pepe)

  • 43 months ago
  • 1 point

wtf why, just why. everything should have more dank memes. Ya Know? (͡e ͜ʖ ͡o)

Sort

add arrow-down arrow-left arrow-right arrow-up authorcheckmark clipboard combo comment delete discord dots drag-handle dropdown-arrow errorfacebook history inbox instagram issuelink lock markup-bbcode markup-html markup-pcpp markup-cyclingbuilder markup-plain-text markup-reddit menu pin radio-button save search settings share star-empty star-full star-half switch successtag twitch twitter user warningwattage weight youtube