p0t4t0

Experience

4,340

0 Best Reply Awards

  • Member Since 2 Weeks Ago
  • 22 Lessons Completed
  • 0 Favorites

17th January, 2018

p0t4t0 left a reply on How Do I Sort Posts Both By Posts Created_at And Comments Created_at? • 41 minutes ago

@burlresearch what about

Post::all()->sortByDesc(function ($post) {
    $recentComment = $post->comments->sortByDesc('created_at')->first();
    $recentReply = $post->comments()->replies->sortByDesc('created_at')->first();

    $foo = $recentComment->created_at->max($post->created_at)
    $bar = $foo->max($recentReply->created_at);

    return $bar;
});

p0t4t0 left a reply on How Do I Sort Posts Both By Posts Created_at And Comments Created_at? • 4 hours ago

@burlresearch haven't tried it yet but just wanted to know if I am on the right path?

Post::all()->sortByDesc(function ($post) {
    $recentComment = $post->comments->sortByDesc('created_at')->first();
    $recentReply = $recentComment->replies->sortByDesc('created_at')->first();

    $foo = $recentComment->created_at->max($post->created_at)
    return $foo->created_at->max($recentReply->created_at);
});

p0t4t0 left a reply on How Do I Sort Posts Both By Posts Created_at And Comments Created_at? • 13 hours ago

@burlresearch right now I have this code

$posts = Post::with('comments.replies')->latest();

I just recently learned about the with() function and was looking to add to it but wasn't pretty sure how. I probably should've mentioned that right from the start. Anyway, If I understand your custom function correctly, you are retrieving a single posts' comments and sorting it by created_at and getting the latest one (how is this possible? is the sortByDesc function looping through all of the posts?), also on the next line I'm not quite too sure about either and also didn't realize until now that it was possible. On the next line, you are simply retrieving the latest comment's timestamp but what does max($post->created_at) do?

16th January, 2018

p0t4t0 started a new conversation How Do I Sort Posts Both By Posts Created_at And Comments Created_at? • 19 hours ago

What I would like to do is have my view display recent posts but also have a post be at the top if it recently had a comment or reply. I am stumped.

p0t4t0 left a reply on What Is With() For? • 23 hours ago

@Snapey I tried using with() in my test app and I just need once last recap

$post = Post::with('comments')->get();

$post = Post::all();

The first line of code is better because we do not have to query the database for a second time when I call $post->comments with the second line of code in my view. Did I get that right?

p0t4t0 left a reply on What Is With() For? • 1 day ago

@jlrdw yes I am aware most of the info has already been documented in the docs but not all of us are native English speakers. I am posting here to get as simple an explanation I can get.

@Snapey thank you. I think I understand now. There is just one last thing I need clarification with. When using with with Eloquent, is it safe to assume that it can only be used on models that have optional relations to other tables? like posts could have comments so we use Post::with('comments') but a post must have a user so we can't do Post::with('user')... or if we go further down, with can only be used on models with the hasOne or hasMany function in them? and the ones with the belongsTo?

p0t4t0 left a reply on Need Clarification On Query Strings With Laravel • 1 day ago

@morteza not to be rude but I am already aware of that. I am just noticing some people still use query strings over such URL structures, and I'm wondering why.

p0t4t0 left a reply on What Is With() For? • 1 day ago

@tykus so if with is used with a view then it is the same as using compact()? About with used with Eloquent... what is the equivalent of your example when used without with? (the one which makes use of multiple queries)

p0t4t0 started a new conversation What Is With() For? • 1 day ago

What does it do and what is its use cases? I would really appreciate an example or two

p0t4t0 started a new conversation Need Clarification On Query Strings With Laravel • 1 day ago

How should one handle query strings with Laravel? Is this fine? If it is then are there better or more ways to do it?

Route::get('/comment?pid={post}', '[email protected]');

15th January, 2018

p0t4t0 left a reply on How Do I Handle Multiple Submit Buttons In A Single Form With Laravel? • 2 days ago

@martinbean Oh, I see. Thanks for the explanation and info.

p0t4t0 left a reply on How Do I Handle Multiple Submit Buttons In A Single Form With Laravel? • 2 days ago

@deGecko I know but I am keeping everything strictly PHP/Laravel with this project to help me understand Laravel more.

@martinbean Yes, I am aware about that part. I am just making sure whether or not there is an already existing Laravel function that can handle multiple submit buttons For example, $request->input('action') is I believe a Laravel function that is equivalent to $_POST['action'] in plain PHP.

(Sorry about the bad explanation. I find it hard sometimes to explain what I am thinking in English.)

p0t4t0 left a reply on How Do I Handle Multiple Submit Buttons In A Single Form With Laravel? • 2 days ago

switch ($request['action']) {
        case 'Post Reply':
          echo 'foo';
          break;
        case 'Preview':
          echo 'bar';
          break;
        case 'Go Advanced':
          return view();
          break;
        default:
          # code...
          break;
      }

Right now I am under the impression that placing plain PHP code inside a Laravel app is "messy" since I am not utilizing Laravel's functions. Although this code works, it has a slight problem.

The submit button for 'Go Advanced' needs to be a GET request since it should redirect a user to a completely new page with a WYSIWYG editor. But I did come up with a solution to that, but I'm not sure if it is preferred. My solution is simply removing the type="submit" attribute for that button but still place it inside the form so I can style all 3 buttons side by side. In doing this, I can probably have the 'Go Advanced' button act like just a simple button instead of a submit one and route the user to the above mentioned page. What do you think?

p0t4t0 left a reply on How Do I Handle Multiple Submit Buttons In A Single Form With Laravel? • 2 days ago

so there is no Laravel way?

p0t4t0 started a new conversation How Do I Handle Multiple Submit Buttons In A Single Form With Laravel? • 2 days ago

I have a form with 3 buttons, one for saving the form data into the database, one for previewing and one for advanced options which should redirect the user to a view with a WYSIWYG editor. I have an idea on how to do this with plain PHP but no clue as to how to handle this in my controller with Laravel.

14th January, 2018

p0t4t0 left a reply on I Have A Quick Question About Episode 13 On Jeffrey's Forum Series • 2 days ago

@LiamHammett oh! now i get it thanks friend

p0t4t0 started a new conversation I Have A Quick Question About Episode 13 On Jeffrey's Forum Series • 2 days ago

On that episode, Jeffrey went and created a service provider for his views to load in the Channel model on every single view. But I don't fully understand why he did so. What is the benefit in doing what he did over just importing the model in the controller like so

use App\Channel;

public function index()
{
    $channel = Channel::all();
    return view('thread.create', compact('channel'));
}

13th January, 2018

p0t4t0 left a reply on How Do I Add A # To My URLs With Laravel? • 4 days ago

I figured it out but thanks for giving me an idea

{{ route('thread.show', [$thread->category->slug, $thread->slug]) }}#thread-{{ $thread->id }}

p0t4t0 left a reply on How Do I Add A # To My URLs With Laravel? • 4 days ago

@tykus would you happen to know how if an id was dynamic? I seem to get an error

{{ route('thread.show', [$thread->category->slug, $thread->slug]) '#thread_{{ $thread->id }}' }}

p0t4t0 started a new conversation How Do I Add A # To My URLs With Laravel? • 4 days ago

Just wanted to know how do I achieve something like site.com/page#someId

12th January, 2018

p0t4t0 started a new conversation I Need Help With My Tagging System • 5 days ago

I just watched a video on tagging with Laravel which made use of a jQuery plugin called Select2 and it was pretty good, but in that video all the tags were predefined. I want my application to be able to suggest existing tags (which was covered in the tutorial I just watched) but also create tags if they don't exist yet. I have already set up a pivot table for my threads and posts table as well as the code to save the tags into my tags table.

my ThreadController

    public function store(Request $request, $category)
    {
        $this->validate($request, [
          'category' => 'required|exists:categories,slug',
          'title' => 'required|max:255',
          'content' => 'requried'
        ]);

        $category = Category::where('slug', $category)->first();

        $thread = new Thread;
        $thread->user_id = $request->user()->id;
        $thread->category_id = $category->id;
        $thread->title = $request->title;
        $thread->content = $request->content;
        
        $thread->save();

        $thread->tags()->sync($request->tags, false);

        return redirect()->route('thread.show', $thread->category->slug, $thread->slug);
    }

And the create view

@section('content')

  <div class="col-md-8 col-md-offset-2">
    <div class="row">
      <form class="" action="index.html" method="post">
        {{ csrf_field() }}

        <div class="form-group{{ $errors->has('title') ? ' has-error' : '' }}">
          <input class="form-control" type="text" name="title" value="{{ old('title') }}" placeholder="Thread Title">

          @if ($errors->has('title'))
            <span class="help-block">
              <strong>{{ $errors->first('title') }}</strong>
            </span>
          @endif
        </div>
        <div class="form-group{{ $errors->has('content') ? ' has-error' : '' }}">
          <textarea class="form-control" name="content" value="{{ old('content') }}" rows="8" cols="80"></textarea>
          @if ($errors->has('content'))
            <span class="help-block">
              <strong>{{ $errors->first('content') }}</strong>
            </span>
          @endif
        </div>
        <div class="form-group{{ $errors->has('tags') ? ' has-error' : '' }}">
          <label for="tags">Tags:</label>
          <select id="tags" class="form-control" name="tags[]" value="{{ old('tags[]') }}" multiple="multiple">
            @foreach ($tags as $tag)
              <option value="{{ $tag->id }}">{{ $tag->name }}</option>
            @endforeach
          </select>
          @if ($errors->has('tags'))
            <span class="help-block">
              <strong>{{ $errors->first('tags') }}</strong>
            </span>
          @endif
        </div>
        <button type="submit">Create Thread</button>
      </form>
    </div>
  </div>

@endsection

How do I handle this?

p0t4t0 left a reply on I Have A Quick Question About Jeffrey's Forums Series • 5 days ago

@burlresearch thanks for all the help

11th January, 2018

p0t4t0 left a reply on I Have A Quick Question About Jeffrey's Forums Series • 6 days ago

@burlresearch but wouldn't it be faster to just query one table instead of 2 though?

10th January, 2018

p0t4t0 left a reply on I Have A Quick Question About Jeffrey's Forums Series • 1 week ago

@burlresearch Maybe it will help you visualize what I mean if you go on a more "traditional looking" forum because that is what I'm trying to build and not ones that are more modern like Laracasts

p0t4t0 left a reply on I Have A Quick Question About Jeffrey's Forums Series • 1 week ago

@burlresearch I'm sorry I'm not a native English speaker. I'm finding it hard to explain what I really mean haha. Anyway, let me try and rephrase that. Well, say for example you need to get the latest post whether it be for a Thread or a Reply. But if they're two separate tables, wouldn't that mean you have to query both tables and get the latest post for both of them and then compare the two to see which one is more up to date?

p0t4t0 left a reply on I Have A Quick Question About Jeffrey's Forums Series • 1 week ago

@burlresearch I'll probably change my mind if he talks about displaying the last activity for each thread. Because the way I see it now, it's more efficient to just add a parent_id column. Because that way you can just get the last row for threads associated with each category easily. What do you think?

9th January, 2018

p0t4t0 started a new conversation I Have A Quick Question About Jeffrey's Forums Series • 1 week ago

I just started about 4 videos in, and one thing that's been bugging me is why does Jeffrey create a whole new table for replies? Wouldn't it be better if he instead just inserted a parent_id column to the threads table and have that set as null for parent threads and those that do have parent ids as replies?

p0t4t0 left a reply on What's A Good/Laravel Way Of Restricting A User From Posting Within X Number Of Minutes? • 1 week ago

@tykus been hearing a lot about Policies, must be pretty good for people to recommend it a lot. I will definitely take a look. Thanks!

p0t4t0 started a new conversation What's A Good/Laravel Way Of Restricting A User From Posting Within X Number Of Minutes? • 1 week ago

I need to know of a good way to prevent users from posting within x number of minutes after their initial post to prevent spam. I know of one way which is captcha but I think I'll just leave that as a last resort. A friend of mine suggested adding another timestamp column to my users table and have it updated every time a user posts and get the difference between it and my created_at column to see how many minutes has passed since their previous post. But I can't help but think there is a better way. Also, I am aware of Chatter and have no absolutely no intention of using it anytime in the future (for learning purposes).

p0t4t0 left a reply on How Does Adding Fake Data With Faker On Tables With Relationships Work Exactly • 1 week ago

@burlresearch Thanks for the help. I marked your answer as the correct answer for the effort but I still can't seem to digest all this info. I'll have to come back to this after I read up more on Laravel and apparently more PHP as well.

p0t4t0 left a reply on Need Advice On Security Checks For Saving Data To Database • 1 week ago

@cmdobueno I just re-read what you suggested and this just came to me. Why not just use middleware to see if a user is authorized to post in a particular forum section or not? Is there an advantage to using policy/requests?

8th January, 2018

p0t4t0 left a reply on Need Advice On Security Checks For Saving Data To Database • 1 week ago

@cmdobueno exactly as I thought. bummer. but thanks for the info. would you mind pointing me to the direction where I can read up on the things you just mentioned? I am still relatively new to Laravel.

p0t4t0 started a new conversation Need Advice On Security Checks For Saving Data To Database • 1 week ago

Hello,

I am currently in the process of building a forum application and I'm sort of worried with my form that handles insertion of data. Below is the code I am using.

Route::post('/forums/{category}/post-thread', '[email protected]')->name('thread.store');
public function store(Request $request, $category)
{
    $request->validate([
        'title' => 'required|max:255',
        'content' => 'required'
    ]);

    $category = Category::where('slug', $category);

    $thread = new Thread;
    $thread->user_id = $request->user()->id;
    $thread->category_id = $category->id;
    $thread->title = $request->title;
    $thread->content = $request->content;
}
<form action="{{ route('thread.store', $category->slug) }}">
    <input type="text" name"title" placeholder="Title">
    <textarea type="text" name="content" placeholder="content"></textarea>
    <button type="submit">Create Post</button>
</form>

I kept everything simple for now for testing purposes but in the future I plan to make use of rich text editors. Right now I am worried a user might change the action url to whatever they like and post in a category that their thread isn't supposed to belong in.

p0t4t0 left a reply on How Does Adding Fake Data With Faker On Tables With Relationships Work Exactly • 1 week ago

@burlresearch well, I had a categories table with a parent_id column, if it was null then that meant it was a parent category, if it wasn't then it was a child category. The code in my controller was

$categories = Category::whereNull('parent_id');
$subcategories = Category::whereNotNull('parent_id');

In my view I had

@foreach ($categories as $category)

    <div class="category>
        {{ $category->title }}
        <ul>
            @foreach ($subcategories as $subcategory)
                @if ($subcategory->parent_id === $category->id)
                    <li>{{ $subcategory->title }}</li>
                @endif  
            @endforeach 
        </ul>
    </div>

@endforeach

All was fine until I needed to get the latest post for both category and subcategory but I could only get the latest post for the category (because each of them had posts and I needed). I was trying to build a forum application.

p0t4t0 left a reply on How Does Adding Fake Data With Faker On Tables With Relationships Work Exactly • 1 week ago

@burlresearch I already tried that approach with my categories table earlier. But I got stuck with a certain looping problem.

p0t4t0 left a reply on How Does Adding Fake Data With Faker On Tables With Relationships Work Exactly • 1 week ago

@burlresearch oh, nevermind. I just realized I can use rand(0, 100). but thank you for trying to help.

p0t4t0 left a reply on How Does Adding Fake Data With Faker On Tables With Relationships Work Exactly • 1 week ago

@burlresearch

I managed to work it out with this code

factory(App\Category::class, 8)->create()->each(function(App\Category $category){
          factory(App\Subcategory::class, rand(0, 6))->create([
            'category_id' => $category->id
          ])->each(function(App\Subcategory $subcategory){
            factory(App\Thread::class, rand(20, 100))->create([
              'user_id' => 1,
              'subcategory_id' => $subcategory->id
            ]);
          });
        });

But now I have another problem. See the line where it says 'user_id' => 1. Well, I can't figure out how I can make that refer to existing users instead of just the user with the id of 1. Would you happen to know of a way?

7th January, 2018

p0t4t0 started a new conversation How Does Adding Fake Data With Faker On Tables With Relationships Work Exactly • 1 week ago

I tried running the code below

        factory(App\Category::class, 8)->create()->each(function($category){
          $category->subcategories()->save(factory(App\Subcategory::class)->make());
        });

Although, it created fake data for my categories and subcategories and relate them to each other, it wasn't exactly the result I was hoping for. It instead created 24 categories and 8 subcategories. What do I need to modify in the code above to get opposite(8 categories and 24 subcategories)?

p0t4t0 left a reply on How Can I Use Sluggable With Faker? • 1 week ago

Looks like all I had to do was make use Laravel factories, what I did was create a factory

<?php

use Faker\Generator as Faker;

$factory->define(App\Category::class, function (Faker $faker) {
    return [
        'title' => ucfirst($faker->word),
        'description' => $faker->sentence,
    ];
});

And created a seeder

<?php

use Illuminate\Database\Seeder;

class CategoriesTableSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        //
        factory(App\Category::class, 8)->create();
    }
}

And sluggable did the rest

p0t4t0 started a new conversation How Can I Use Sluggable With Faker? • 1 week ago

Just as the title says.

public function run()
    {
        $faker = Faker::create('App\Category');

        DB::table('categories')->insert([
          'title' => $faker->sentence(),
          'description' => $faker->sentence(),
          'slug' => $faker->slug,
          'created_at' => \Carbon\Carbon::now(),
          'updated_at' => \Carbon\Carbon::now(),
        ]);
    }

The above code doesn't seem to create a slug based on the title.

class Category extends Model
{
    use Sluggable;

    /**
     * Return the sluggable configuration array for this model.
     *
     * @return array
     */
    public function sluggable()
    {
        return [
            'slug' => [
                'source' => 'title'
            ]
        ];
    }
    
    public function subcategories()
    {
      return $this->hasMany('subcategories');
    }
}

Is there a way to save fake data with sluggable or is there a better or simpler way altogether?

p0t4t0 started a new conversation I Need Help Displaying Related Data In My View • 1 week ago

I just can't figure this out. I've been going at this since last night. I have a categories table with an id (primary key) and parent_id column, if parent_id is null then it is a parent category, if it has a value that is equal to a parent category's id (primary key), then it is a child category.

public function up()
    {
        Schema::create('categories', function (Blueprint $table) {
            $table->increments('id');
            $table->integer('parent_id')->unsigned()->nullable();
            $table->string('title');
            $table->string('slug');
            $table->timestamps();
        });
    }

In my controller, I went and fetched every entry with a parent_id equal to null and assigned to a $categories variable. I also went and fetched every entry with a parent_id and set it to $subcategories:

    public function index()
    {

      $categories = Category::whereNull('parent_id')->get();
      $subcategories = Category::whereNotNull('parent_id')->get();

      return view('forums.index', compact(['categories', 'subcategories']));
    }

Now, the problem lies in my view. I am able to relate my subcategories to my categories with the code below.

@extends('layouts.app')

@section('content')

  <h1>Forums Home Page</h1>

  @foreach ($categories as $category)

    <h1>
      <a href="{{route('thread.index', $category->slug)}}">{{ $category->title }}</a>
    </h1>

    @foreach ($subcategories as $subcategory)

      @if ($category->id === $subcategory->parent_id)

        <div class="">
          <a href="#">{{ $subcategory->title }}</a>
        </div>

      @endif
      
    @endforeach

  @endforeach

@endsection

However, I am unable to fetch the latest post of a subcategory. Only a category. I am aware this is because I am only iterating over my categories with a parent_id of null, but I just can't come up with a way to check for the latest post both in a category and subcategory, compare them to see which one is more recent, and display them in the view. This is what I've tried.

<h1>Last Post</h1>
    @foreach ($category->threads as $thread)

      @if ($loop->last)
        <a href="#">{{ $thread->title }}</a>
      @endif

    @endforeach

p0t4t0 started a new conversation I Need Advice On My Database Model • 1 week ago

I have managed to display on my index page each category along with its subcategory, now I want to take it another level deeper and create a subsubcategory, would I be able to achieve that with my current model?

Here is my categories table

    public function up()
    {
        Schema::create('categories', function (Blueprint $table) {
            $table->increments('id');
            $table->integer('parent_id')->unsigned()->nullable();
            $table->string('title');
            $table->string('slug');
            $table->timestamps();
        });
    }

And my controller

    public function index()
    {
        //
        $categories = Category::whereNull('parent_id')->get();
        $subcategories = Category::whereNotNull('parent_id')->get();

        return view('forums.index', compact(['categories', 'subcategories']));
    }

Each category without a parent_id is a category, and those with it is a subcategory, but now my problem lies with how I am going to approach creating a further subcategory or a subsubcategory? Would I be able to achieve that without adding another column to my categories table?

For example, would I be able to get away with assigning the return value of a query that takes the id of my categories and look for a matching parent_id to a $subsubcategories variable?

Or simply just adding another column to my categories table, a parent_parent_id column? To make things simpler?

6th January, 2018

p0t4t0 left a reply on Adding Foreign Key Constraints To Migrated Table • 1 week ago

I just tried it out at the risk of breaking my application, and apparently you still need to the drop the column in the down function

p0t4t0 started a new conversation Adding Foreign Key Constraints To Migrated Table • 1 week ago

I have this code

class AddCategoryIdColToThreadsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table('threads', function (Blueprint $table) {
            //
            $table->integer('category_id')->unsigned();
            $table->foreign('category_id')->references('id')->on('categories')->onDelete('cascade');
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table('threads', function (Blueprint $table) {
            //
            $table->dropForeign(['category_id']);
        });
    }
}

I know it will work but for education's sake, would I still need to specify this in the down function?

$table->dropColumn('category_id');

p0t4t0 left a reply on Need Help With Eloquent Relationship Problem • 1 week ago

@Drfraker Thank you so much. That made sense to me finally.

p0t4t0 left a reply on Need Help With Eloquent Relationship Problem • 1 week ago

@Drfraker ok, I think I understand this explanation better, but I still can't wrap my head around what the parent_id column is for

p0t4t0 left a reply on Need Help With Eloquent Relationship Problem • 1 week ago

@shez1983 I'm even more confused now, let me try and re-explain my requirements, I am trying to build a forum system, on the home page I am trying to to display all the categories as well as their corresponding subcategories, if you click on a category without a subcategory then the user is redirected to a page where all of that category's posts will be displayed, but if you click on a category with subcategories, the user will be redirected to a page where the corresponding posts for that category is displayed as well as its subcategories, while on that page when you click on a subcategory, the user will then be redirected to a page where a list of that subcategory's posts are displayed. I am aware there is a tutorial on laracasts on how to build a forum system but I don't have the money for it right now.

p0t4t0 left a reply on Need Help With Eloquent Relationship Problem • 1 week ago

@shez1983 So should I be using a different approach like then Polymorphism or no?

p0t4t0 started a new conversation Need Help With Eloquent Relationship Problem • 1 week ago

I am having trouble relating my categories table, subcategories table and posts table

The categories table should be the grandparent table The subcategories table should be the parent table And lastly the posts table should be the child table

What I am going for is each Category can contain a Post but not have a Subcategory, whereas a Subcategory can contain a Post but must have a Category as its parent.

Am I able to achieve this through a hasManyThrough relationship? I have read the documentation and it seems to me that I can, but there is one problem. How will I handle this in my form that creates a Post?

Should I declare my subcategories_id foreign key in my posts table as nullable? And not pass it a value if a User is creating a Post that is intended to only fall under a Category and not a Subcategory?

My categories table

public function up()
    {
        Schema::create('categories', function (Blueprint $table) {
            $table->increments('id');
            $table->string('title');
            $table->string('slug');
            $table->timestamps();
        });
    }

My subcategories table

public function up()
    {
        Schema::create('subcategories', function (Blueprint $table) {
            $table->increments('id');
            $table->integer('category_id')->unsigned();
            $table->foreign('category_id')->references('id')->on('categories')->onDelete('cascade');
            $table->string('title');
            $table->string('slug');
            $table->timestamps();
        });
    }

My posts table

public function up()
    {
        Schema::create('posts', function (Blueprint $table) {
            $table->increments('id');
            $table->integer('user_id')->unsigned();
            $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
        $table->integer('subcategory_id')->unsigned();
        $table->foreign('subcategory_id')->references('id')->on('subcategories')->onDelete('cascade');
            $table->string('title');
            $table->text('body');
            $table->string('slug');
            $table->timestamps();
        });
    }

Edit Your Profile
Update

Want to change your profile photo? We pull from gravatar.com.