diff --git a/Changelog.md b/Changelog.md index 74901121e..31b0a0722 100644 --- a/Changelog.md +++ b/Changelog.md @@ -116,6 +116,7 @@ before. * Extract photo export into a service class [#6922](https://github.com/diaspora/diaspora/pull/6922) * Use handlebars template for aspect membership dropdown [#6864](https://github.com/diaspora/diaspora/pull/6864) * Extract relayable signatures into their own tables [#6932](https://github.com/diaspora/diaspora/pull/6932) +* Remove outdated columns from posts table [#6940](https://github.com/diaspora/diaspora/pull/6940) ## Bug fixes * Destroy Participation when removing interactions with a post [#5852](https://github.com/diaspora/diaspora/pull/5852) diff --git a/app/assets/javascripts/app/views/publisher_view.js b/app/assets/javascripts/app/views/publisher_view.js index f357cb2a6..2b7194ace 100644 --- a/app/assets/javascripts/app/views/publisher_view.js +++ b/app/assets/javascripts/app/views/publisher_view.js @@ -334,7 +334,6 @@ app.views.Publisher = Backbone.View.extend({ "author" : app.currentUser ? app.currentUser.attributes : {}, "mentioned_people" : mentionedPeople, "photos" : photos, - "frame_name" : "status", "title" : serializedForm["status_message[text]"], "location" : location, "interactions" : {"likes":[],"reshares":[],"comments_count":0,"likes_count":0,"reshares_count":0}, diff --git a/app/models/photo.rb b/app/models/photo.rb index cf65c4000..17e9b9ff8 100644 --- a/app/models/photo.rb +++ b/app/models/photo.rb @@ -141,6 +141,6 @@ class Photo < ActiveRecord::Base else Photo.where(author_id: person.id, public: true) end - photos.order("created_at desc") + photos.where(pending: false).order("created_at DESC") end end diff --git a/app/models/post.rb b/app/models/post.rb index cb94c408a..3ad235f0f 100644 --- a/app/models/post.rb +++ b/app/models/post.rb @@ -43,6 +43,7 @@ class Post < ActiveRecord::Base ) #note should include root and photos, but i think those are both on status_message } + scope :all_public, -> { where(public: true) } scope :commented_by, ->(person) { select('DISTINCT posts.*') @@ -129,10 +130,6 @@ class Post < ActiveRecord::Base new(params.to_hash.stringify_keys.slice(*column_names, "author")) end - def activity_streams? - false - end - def comment_email_subject I18n.t('notifier.a_post_you_shared') end diff --git a/app/models/user/querying.rb b/app/models/user/querying.rb index a3104930e..f9ff0f001 100644 --- a/app/models/user/querying.rb +++ b/app/models/user/querying.rb @@ -117,7 +117,7 @@ module User::Querying end def visible_shareables_query(query, opts) - query.with_visibility.where(pending: false).where( + query.with_visibility.where( visible_private_shareables(opts).or(opts[:klass].arel_table[:public].eq(true)) ) end @@ -129,7 +129,7 @@ module User::Querying end def construct_shareable_from_self_query(opts) - conditions = {pending: false, author_id: person_id} + conditions = {author_id: person_id} conditions[:type] = opts[:type] if opts.has_key?(:type) query = opts[:klass].where(conditions) diff --git a/app/presenters/post_presenter.rb b/app/presenters/post_presenter.rb index 6cee90e2f..13b3cf2e2 100644 --- a/app/presenters/post_presenter.rb +++ b/app/presenters/post_presenter.rb @@ -15,7 +15,7 @@ class PostPresenter < BasePresenter private def directly_retrieved_attributes - %i(id guid public created_at interacted_at provider_display_name image_url object_url) + %i(id guid public created_at interacted_at provider_display_name) end def non_directly_retrieved_attributes diff --git a/app/serializers/export/post_serializer.rb b/app/serializers/export/post_serializer.rb index 77a79c3e5..84b6a91ed 100644 --- a/app/serializers/export/post_serializer.rb +++ b/app/serializers/export/post_serializer.rb @@ -5,9 +5,6 @@ module Export :public, :diaspora_handle, :type, - :image_url, - :image_height, - :image_width, :likes_count, :comments_count, :reshares_count, diff --git a/app/views/reshares/_reshare.mobile.haml b/app/views/reshares/_reshare.mobile.haml index 16d093468..871791cff 100644 --- a/app/views/reshares/_reshare.mobile.haml +++ b/app/views/reshares/_reshare.mobile.haml @@ -13,9 +13,8 @@ - unless post.is_a?(Reshare) = render "shared/nsfw_shield", post: post - - if !post.activity_streams? - .nsfw-hidden - = render "status_messages/status_message", post: post, photos: post.photos + .nsfw-hidden + = render "status_messages/status_message", post: post, photos: post.photos - else .content = t(".deleted") diff --git a/app/views/shared/_photo_area.mobile.haml b/app/views/shared/_photo_area.mobile.haml index 78ac89a40..19417b915 100644 --- a/app/views/shared/_photo_area.mobile.haml +++ b/app/views/shared/_photo_area.mobile.haml @@ -11,6 +11,3 @@ .additional_photo_count = "+ #{post.photos.size-1}" = image_tag post.photos.first.url(:thumb_large), class: "stream-photo big-stream-photo" - - elsif post.activity_streams? - = image_tag post.image_url - diff --git a/app/views/shared/_post_info.mobile.haml b/app/views/shared/_post_info.mobile.haml index 174b91b11..1b51261f2 100644 --- a/app/views/shared/_post_info.mobile.haml +++ b/app/views/shared/_post_info.mobile.haml @@ -20,9 +20,7 @@ = link_to(post_path(post)) do = timeago(post.created_at) %span.via - - if post.activity_streams? - = t('shared.stream_element.via', link: link_to("#{post.provider_display_name}", post.actor_url)).html_safe - - elsif post.provider_display_name == 'mobile' + - if post.provider_display_name == "mobile" = t('shared.stream_element.via_mobile', link: nil) – %span.scope_scope diff --git a/app/views/status_messages/_status_message.mobile.haml b/app/views/status_messages/_status_message.mobile.haml index 52f60ba74..51881e1da 100644 --- a/app/views/status_messages/_status_message.mobile.haml +++ b/app/views/status_messages/_status_message.mobile.haml @@ -11,8 +11,6 @@ .additional_photo_count = "+ #{post.photos.size-1}" = image_tag post.first_photo_url(:thumb_large), :class => "stream-photo big-stream-photo" - - elsif post.activity_streams? - = image_tag post.image_url %div{:class => direction_for(post.text)} != post.message.markdownified diff --git a/db/migrate/20160802212635_cleanup_posts_table.rb b/db/migrate/20160802212635_cleanup_posts_table.rb new file mode 100644 index 000000000..79e473e8e --- /dev/null +++ b/db/migrate/20160802212635_cleanup_posts_table.rb @@ -0,0 +1,30 @@ +class CleanupPostsTable < ActiveRecord::Migration + def change + remove_index :posts, column: %i(status_message_guid pending), + name: :index_posts_on_status_message_guid_and_pending, length: {status_message_guid: 190} + remove_index :posts, column: :status_message_guid, name: :index_posts_on_status_message_guid, length: 191 + remove_index :posts, column: %i(type pending id), name: :index_posts_on_type_and_pending_and_id + + # from photos? + remove_column :posts, :pending, :boolean, default: false, null: false + remove_column :posts, :remote_photo_path, :text + remove_column :posts, :remote_photo_name, :string + remove_column :posts, :random_string, :string + remove_column :posts, :processed_image, :string + remove_column :posts, :unprocessed_image, :string + remove_column :posts, :status_message_guid, :string + + # old cubbi.es stuff + remove_column :posts, :object_url, :string + remove_column :posts, :image_url, :string + remove_column :posts, :image_height, :integer + remove_column :posts, :image_width, :integer + remove_column :posts, :actor_url, :string + remove_column :posts, :objectId, :string + + # old single post view templates + remove_column :posts, :frame_name, :string + + add_index :posts, %i(id type), name: :index_posts_on_id_and_type + end +end diff --git a/db/schema.rb b/db/schema.rb index 5e9267dd9..50dea294a 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20160720212620) do +ActiveRecord::Schema.define(version: 20160802212635) do create_table "account_deletions", force: :cascade do |t| t.string "diaspora_handle", limit: 255 @@ -450,31 +450,17 @@ ActiveRecord::Schema.define(version: 20160720212620) do t.integer "author_id", limit: 4, null: false t.boolean "public", default: false, null: false t.string "guid", limit: 255, null: false - t.boolean "pending", default: false, null: false t.string "type", limit: 40, null: false t.text "text", limit: 65535 - t.text "remote_photo_path", limit: 65535 - t.string "remote_photo_name", limit: 255 - t.string "random_string", limit: 255 - t.string "processed_image", limit: 255 t.datetime "created_at", null: false t.datetime "updated_at", null: false - t.string "unprocessed_image", limit: 255 - t.string "object_url", limit: 255 - t.string "image_url", limit: 255 - t.integer "image_height", limit: 4 - t.integer "image_width", limit: 4 t.string "provider_display_name", limit: 255 - t.string "actor_url", limit: 255 - t.string "objectId", limit: 255 t.string "root_guid", limit: 255 - t.string "status_message_guid", limit: 255 t.integer "likes_count", limit: 4, default: 0 t.integer "comments_count", limit: 4, default: 0 t.integer "o_embed_cache_id", limit: 4 t.integer "reshares_count", limit: 4, default: 0 t.datetime "interacted_at" - t.string "frame_name", limit: 255 t.string "facebook_id", limit: 255 t.string "tweet_id", limit: 255 t.integer "open_graph_cache_id", limit: 4 @@ -485,11 +471,9 @@ ActiveRecord::Schema.define(version: 20160720212620) do add_index "posts", ["author_id"], name: "index_posts_on_person_id", using: :btree add_index "posts", ["guid"], name: "index_posts_on_guid", unique: true, length: {"guid"=>191}, using: :btree add_index "posts", ["id", "type", "created_at"], name: "index_posts_on_id_and_type_and_created_at", using: :btree + add_index "posts", ["id", "type"], name: "index_posts_on_id_and_type", using: :btree add_index "posts", ["root_guid"], name: "index_posts_on_root_guid", length: {"root_guid"=>191}, using: :btree - add_index "posts", ["status_message_guid", "pending"], name: "index_posts_on_status_message_guid_and_pending", length: {"status_message_guid"=>190, "pending"=>nil}, using: :btree - add_index "posts", ["status_message_guid"], name: "index_posts_on_status_message_guid", length: {"status_message_guid"=>191}, using: :btree add_index "posts", ["tweet_id"], name: "index_posts_on_tweet_id", length: {"tweet_id"=>191}, using: :btree - add_index "posts", ["type", "pending", "id"], name: "index_posts_on_type_and_pending_and_id", using: :btree create_table "ppid", force: :cascade do |t| t.integer "o_auth_application_id", limit: 4 diff --git a/lib/diaspora/fetcher/public.rb b/lib/diaspora/fetcher/public.rb index 7b7e90d1e..34af2f30e 100644 --- a/lib/diaspora/fetcher/public.rb +++ b/lib/diaspora/fetcher/public.rb @@ -109,14 +109,13 @@ module Diaspora; module Fetcher; class Public :author => @person, :public => true ) - entry.assign_attributes({ - :guid => post['guid'], - :text => post['text'], - :provider_display_name => post['provider_display_name'], - :created_at => ActiveSupport::TimeZone.new('UTC').parse(post['created_at']).to_datetime, - :interacted_at => ActiveSupport::TimeZone.new('UTC').parse(post['interacted_at']).to_datetime, - :frame_name => post['frame_name'] - }) + entry.assign_attributes( + guid: post["guid"], + text: post["text"], + provider_display_name: post["provider_display_name"], + created_at: ActiveSupport::TimeZone.new("UTC").parse(post["created_at"]).to_datetime, + interacted_at: ActiveSupport::TimeZone.new("UTC").parse(post["interacted_at"]).to_datetime + ) entry.save # re-enable everything we disabled before diff --git a/lib/diaspora/shareable.rb b/lib/diaspora/shareable.rb index 967f20094..96895f521 100644 --- a/lib/diaspora/shareable.rb +++ b/lib/diaspora/shareable.rb @@ -19,8 +19,6 @@ module Diaspora delegate :id, :name, :first_name, to: :author, prefix: true # scopes - scope :all_public, -> { where(public: true, pending: false) } - scope :with_visibility, -> { joins("LEFT OUTER JOIN share_visibilities ON share_visibilities.shareable_id = #{table_name}.id AND "\ "share_visibilities.shareable_type = '#{base_class}'") @@ -77,7 +75,7 @@ module Diaspora end def owned_by_user(user) - user.person.public_send(table_name).where(pending: false) + user.person.public_send(table_name) end private diff --git a/spec/fixtures/data_conversion/aspect_memberships.csv b/spec/fixtures/data_conversion/aspect_memberships.csv deleted file mode 100644 index ff9d5859b..000000000 --- a/spec/fixtures/data_conversion/aspect_memberships.csv +++ /dev/null @@ -1,7 +0,0 @@ -contact_mongo_id,aspect_mongo_id -4d2b6eb7cc8cb43cc200000f,4d2b6eb6cc8cb43cc2000008 -4d2b6eb7cc8cb43cc2000010,4d2b6eb7cc8cb43cc200000c -4d2b6eb7cc8cb43cc2000013,4d2b6eb7cc8cb43cc200000c -4d2b6eb7cc8cb43cc200001c,4d2b6eb7cc8cb43cc2000015 -4d2b6eb8cc8cb43cc2000022,4d2b6eb7cc8cb43cc2000015 -4d2b6ec2cc8cb43cc2000035,4d2b6eb7cc8cb43cc2000019 diff --git a/spec/fixtures/data_conversion/aspects.csv b/spec/fixtures/data_conversion/aspects.csv deleted file mode 100644 index e6fb9e99e..000000000 --- a/spec/fixtures/data_conversion/aspects.csv +++ /dev/null @@ -1,5 +0,0 @@ -mongo_id,name,user_mongo_id,created_at,updated_at -4d2b6eb6cc8cb43cc2000008,generic,4d2b6eb6cc8cb43cc2000007,1294692022000,1294692033000 -4d2b6eb7cc8cb43cc200000c,generic,4d2b6eb6cc8cb43cc200000b,1294692023000,1294692033000 -4d2b6eb7cc8cb43cc2000015,generic,4d2b6eb7cc8cb43cc2000014,1294692023000,1294692034000 -4d2b6eb7cc8cb43cc2000019,generic,4d2b6eb7cc8cb43cc2000018,1294692023000,1294692036000 diff --git a/spec/fixtures/data_conversion/comments.csv b/spec/fixtures/data_conversion/comments.csv deleted file mode 100644 index e89612779..000000000 --- a/spec/fixtures/data_conversion/comments.csv +++ /dev/null @@ -1,3 +0,0 @@ -mongo_id,post_mongo_id,person_mongo_id,diaspora_handle,text,youtube_titles -4d2b6ebfcc8cb43cc200002b,4d2b6ebecc8cb43cc2000029,4d2b6eb7cc8cb43cc2000017,bob3c6c46f@localhost,Hey me!,"" -4d2b6ebfcc8cb43cc200002c,4d2b6ebecc8cb43cc2000027,4d2b6eb7cc8cb43cc200000e,bob2f66ee4@localhost,Hey you!,"" diff --git a/spec/fixtures/data_conversion/contacts.csv b/spec/fixtures/data_conversion/contacts.csv deleted file mode 100644 index 234a3da99..000000000 --- a/spec/fixtures/data_conversion/contacts.csv +++ /dev/null @@ -1,7 +0,0 @@ -mongo_id,user_mongo_id,person_mongo_id,pending,created_at,updated_at -4d2b6eb7cc8cb43cc200000f,4d2b6eb6cc8cb43cc2000007,4d2b6eb7cc8cb43cc200000e,false,, -4d2b6eb7cc8cb43cc2000010,4d2b6eb6cc8cb43cc200000b,4d2b6eb6cc8cb43cc200000a,false,, -4d2b6eb7cc8cb43cc2000013,4d2b6eb6cc8cb43cc200000b,4d2b6eb7cc8cb43cc2000011,false,, -4d2b6eb7cc8cb43cc200001c,4d2b6eb7cc8cb43cc2000014,4d2b6eb7cc8cb43cc200001b,true,, -4d2b6eb8cc8cb43cc2000022,4d2b6eb7cc8cb43cc2000014,4d2b6eb8cc8cb43cc2000020,true,, -4d2b6ec2cc8cb43cc2000035,4d2b6eb7cc8cb43cc2000018,4d2b6ec2cc8cb43cc2000034,false,, diff --git a/spec/fixtures/data_conversion/invitations.csv b/spec/fixtures/data_conversion/invitations.csv deleted file mode 100644 index 0c15e5db6..000000000 --- a/spec/fixtures/data_conversion/invitations.csv +++ /dev/null @@ -1,2 +0,0 @@ -mongo_id,recipient_mongo_id,sender_mongo_id,aspect_mongo_id,message -4d2b6ebecc8cb43cc2000026,4d2b6ebccc8cb43cc2000025,4d2b6eb6cc8cb43cc2000007,4d2b6eb6cc8cb43cc2000008,Hello! diff --git a/spec/fixtures/data_conversion/notifications.csv b/spec/fixtures/data_conversion/notifications.csv deleted file mode 100644 index 4a2585e1b..000000000 --- a/spec/fixtures/data_conversion/notifications.csv +++ /dev/null @@ -1,3 +0,0 @@ -mongo_id,target_mongo_id,recipient_mongo_id,actor_mongo_id,action,target_type,unread -4d2b6eb8cc8cb43cc200001f,4d2b6eb8cc8cb43cc200001e,4d2b6eb7cc8cb43cc2000018,4d2b6eb7cc8cb43cc2000017,,new_request,true -4d2b6ec4cc8cb43cc200003b,4d2b6ec4cc8cb43cc200003a,4d2b6eb6cc8cb43cc200000b,4d2b6ec2cc8cb43cc2000034,,new_request,true diff --git a/spec/fixtures/data_conversion/people.csv b/spec/fixtures/data_conversion/people.csv deleted file mode 100644 index ab45de84e..000000000 --- a/spec/fixtures/data_conversion/people.csv +++ /dev/null @@ -1,61 +0,0 @@ -created_at,updated_at,serialized_public_key,url,mongo_id,owner_mongo_id,diaspora_handle -1294692022000,1294692022000,"-----BEGIN RSA PUBLIC KEY----- -MIGJAoGBAKuK2doYFmBhcymlxKTII8fmFUXQtgk+NxSoJqCRWds/Uhsg/S/97Kzp -DJjzYWWDKNRfHXnrKsQ5wgcis+rIuvVrB6uVVe2pWjVRZoDxC/4qy5TghwnBsf5O -9/mfN1YhZLRzHCbGL5GBDwk5+emP7Re6l4hqNZRxZB5bpssoTShdAgMBAAE= ------END RSA PUBLIC KEY----- -",http://google-1b05052.com/,4d2b6eb6cc8cb43cc2000001,,bob-person-1fe12fb@aol.com -1294692022000,1294692022000,"-----BEGIN RSA PUBLIC KEY----- -MIGJAoGBAKuK2doYFmBhcymlxKTII8fmFUXQtgk+NxSoJqCRWds/Uhsg/S/97Kzp -DJjzYWWDKNRfHXnrKsQ5wgcis+rIuvVrB6uVVe2pWjVRZoDxC/4qy5TghwnBsf5O -9/mfN1YhZLRzHCbGL5GBDwk5+emP7Re6l4hqNZRxZB5bpssoTShdAgMBAAE= ------END RSA PUBLIC KEY----- -",http://google-287b15e.com/,4d2b6eb6cc8cb43cc2000003,,bob-person-2281475@aol.com -1294692022000,1294692022000,"-----BEGIN RSA PUBLIC KEY----- -MIGJAoGBAKuK2doYFmBhcymlxKTII8fmFUXQtgk+NxSoJqCRWds/Uhsg/S/97Kzp -DJjzYWWDKNRfHXnrKsQ5wgcis+rIuvVrB6uVVe2pWjVRZoDxC/4qy5TghwnBsf5O -9/mfN1YhZLRzHCbGL5GBDwk5+emP7Re6l4hqNZRxZB5bpssoTShdAgMBAAE= ------END RSA PUBLIC KEY----- -",http://google-37bb582.com/,4d2b6eb6cc8cb43cc2000005,,bob-person-34e6e33@aol.com -1294692022000,1294692033000,"-----BEGIN RSA PUBLIC KEY----- -MIGJAoGBANLXsDZWFFy/SyjfTcykyCZVd5raI7G+EF+2kM3yF8UAAHf3FdinP0xv -mB9LsL86PZMiVfKSYU/pwPaIDO/XccnMspd6KxHORX+SbB9F3HC5auiYeekqNxPu -GqmsgBGFLjz8FZ3pbJbuu44XLf0cP1qfBqxKaDSOpwRH8bxvaUXLAgMBAAE= ------END RSA PUBLIC KEY----- -",http://google-4e2e53f.com/,4d2b6eb6cc8cb43cc200000a,4d2b6eb6cc8cb43cc2000007,bob1d2f837@localhost -1294692023000,1294692032000,"-----BEGIN RSA PUBLIC KEY----- -MIGJAoGBANLXsDZWFFy/SyjfTcykyCZVd5raI7G+EF+2kM3yF8UAAHf3FdinP0xv -mB9LsL86PZMiVfKSYU/pwPaIDO/XccnMspd6KxHORX+SbB9F3HC5auiYeekqNxPu -GqmsgBGFLjz8FZ3pbJbuu44XLf0cP1qfBqxKaDSOpwRH8bxvaUXLAgMBAAE= ------END RSA PUBLIC KEY----- -",http://google-57834ac.com/,4d2b6eb7cc8cb43cc200000e,4d2b6eb6cc8cb43cc200000b,bob2f66ee4@localhost -1294692023000,1294692023000,"-----BEGIN RSA PUBLIC KEY----- -MIGJAoGBAKuK2doYFmBhcymlxKTII8fmFUXQtgk+NxSoJqCRWds/Uhsg/S/97Kzp -DJjzYWWDKNRfHXnrKsQ5wgcis+rIuvVrB6uVVe2pWjVRZoDxC/4qy5TghwnBsf5O -9/mfN1YhZLRzHCbGL5GBDwk5+emP7Re6l4hqNZRxZB5bpssoTShdAgMBAAE= ------END RSA PUBLIC KEY----- -",http://google-6be752e.com/,4d2b6eb7cc8cb43cc2000011,,bob-person-46c7362@aol.com -1294692023000,1294692034000,"-----BEGIN RSA PUBLIC KEY----- -MIGJAoGBANLXsDZWFFy/SyjfTcykyCZVd5raI7G+EF+2kM3yF8UAAHf3FdinP0xv -mB9LsL86PZMiVfKSYU/pwPaIDO/XccnMspd6KxHORX+SbB9F3HC5auiYeekqNxPu -GqmsgBGFLjz8FZ3pbJbuu44XLf0cP1qfBqxKaDSOpwRH8bxvaUXLAgMBAAE= ------END RSA PUBLIC KEY----- -",http://google-732b7c0.com/,4d2b6eb7cc8cb43cc2000017,4d2b6eb7cc8cb43cc2000014,bob3c6c46f@localhost -1294692023000,1294692036000,"-----BEGIN RSA PUBLIC KEY----- -MIGJAoGBANLXsDZWFFy/SyjfTcykyCZVd5raI7G+EF+2kM3yF8UAAHf3FdinP0xv -mB9LsL86PZMiVfKSYU/pwPaIDO/XccnMspd6KxHORX+SbB9F3HC5auiYeekqNxPu -GqmsgBGFLjz8FZ3pbJbuu44XLf0cP1qfBqxKaDSOpwRH8bxvaUXLAgMBAAE= ------END RSA PUBLIC KEY----- -",http://google-8b1c74b.com/,4d2b6eb7cc8cb43cc200001b,4d2b6eb7cc8cb43cc2000018,bob457b189@localhost -1294692024000,1294692024000,"-----BEGIN RSA PUBLIC KEY----- -MIGJAoGBAKuK2doYFmBhcymlxKTII8fmFUXQtgk+NxSoJqCRWds/Uhsg/S/97Kzp -DJjzYWWDKNRfHXnrKsQ5wgcis+rIuvVrB6uVVe2pWjVRZoDxC/4qy5TghwnBsf5O -9/mfN1YhZLRzHCbGL5GBDwk5+emP7Re6l4hqNZRxZB5bpssoTShdAgMBAAE= ------END RSA PUBLIC KEY----- -",http://google-934e10b.com/,4d2b6eb8cc8cb43cc2000020,,bob-person-5e2a1d1@aol.com -1294692034000,1294692036000,"-----BEGIN RSA PUBLIC KEY----- -MIGJAoGBANLXsDZWFFy/SyjfTcykyCZVd5raI7G+EF+2kM3yF8UAAHf3FdinP0xv -mB9LsL86PZMiVfKSYU/pwPaIDO/XccnMspd6KxHORX+SbB9F3HC5auiYeekqNxPu -GqmsgBGFLjz8FZ3pbJbuu44XLf0cP1qfBqxKaDSOpwRH8bxvaUXLAgMBAAE= ------END RSA PUBLIC KEY----- -",http://google-105a8ed8.com/,4d2b6ec2cc8cb43cc2000034,,bob5aa0fd5@localhost diff --git a/spec/fixtures/data_conversion/post_visibilities.csv b/spec/fixtures/data_conversion/post_visibilities.csv deleted file mode 100644 index 2279143d9..000000000 --- a/spec/fixtures/data_conversion/post_visibilities.csv +++ /dev/null @@ -1,9 +0,0 @@ -aspect_mongo_id,post_mongo_id -4d2b6eb6cc8cb43cc2000008,4d2b6ebecc8cb43cc2000027 -4d2b6eb6cc8cb43cc2000008,4d2b6ebfcc8cb43cc200002d -4d2b6eb7cc8cb43cc200000c,4d2b6ebecc8cb43cc2000027 -4d2b6eb7cc8cb43cc200000c,4d2b6ebfcc8cb43cc200002d -4d2b6eb7cc8cb43cc2000015,4d2b6ebecc8cb43cc2000029 -4d2b6eb7cc8cb43cc2000015,4d2b6ec1cc8cb43cc200002f -4d2b6eb7cc8cb43cc2000019,4d2b6ec2cc8cb43cc2000036 -4d2b6eb7cc8cb43cc2000019,4d2b6ec4cc8cb43cc2000037 diff --git a/spec/fixtures/data_conversion/posts.csv b/spec/fixtures/data_conversion/posts.csv deleted file mode 100644 index 9999d9c97..000000000 --- a/spec/fixtures/data_conversion/posts.csv +++ /dev/null @@ -1,7 +0,0 @@ -youtube_titles,pending,created_at,public,updated_at,status_message_mongo_id,caption,remote_photo_path,remote_photo_name,random_string,image,mongo_id,type,diaspora_handle,person_mongo_id,message -"",false,1294692030000,false,1294692030000,,,,,,,4d2b6ebecc8cb43cc2000027,StatusMessage,bob1d2f837@localhost,4d2b6eb6cc8cb43cc200000a,User2 can see this -"",false,1294692030000,false,1294692030000,,,,,,,4d2b6ebecc8cb43cc2000029,StatusMessage,bob3c6c46f@localhost,4d2b6eb7cc8cb43cc2000017,User3 can see this -,false,1294692030000,false,1294692030000,4d2b6ebecc8cb43cc2000027,,,,mUKUIxkYlV,mUKUIxkYlV4d2b6ebfcc8cb43cc200002d.png,4d2b6ebfcc8cb43cc200002d,Photo,bob2f66ee4@localhost,4d2b6eb7cc8cb43cc200000e, -,false,1294692034000,false,1294692034000,,,,,AtwSOhcrt0,AtwSOhcrt04d2b6ec1cc8cb43cc200002f.png,4d2b6ec1cc8cb43cc200002f,Photo,bob3c6c46f@localhost,4d2b6eb7cc8cb43cc2000017, -,false,1294692036000,false,1294692036000,,,/uploads/images,3jcOyI5M444d2b6ec2cc8cb43cc2000036.png,,,4d2b6ec2cc8cb43cc2000036,Photo,bob5aa0fd5@localhost,4d2b6ec2cc8cb43cc2000034, -"",false,1294692036000,false,1294692036000,,,,,,,4d2b6ec4cc8cb43cc2000037,StatusMessage,bob5aa0fd5@localhost,4d2b6ec2cc8cb43cc2000034,from another server! diff --git a/spec/fixtures/data_conversion/profiles.csv b/spec/fixtures/data_conversion/profiles.csv deleted file mode 100644 index 2f57f9ae3..000000000 --- a/spec/fixtures/data_conversion/profiles.csv +++ /dev/null @@ -1,11 +0,0 @@ -image_url_medium,searchable,image_url,person_mongo_id,gender,diaspora_handle,birthday,last_name,bio,image_url_small,first_name -,true,,4d2b6eb6cc8cb43cc2000001,,,,weinstien,,,eugene -,true,,4d2b6eb6cc8cb43cc2000003,,,,weinstien,,,eugene -,true,,4d2b6eb6cc8cb43cc2000005,,,,weinstien,,,eugene -,true,,4d2b6eb6cc8cb43cc200000a,,,,Grimm12dfa3a,,,Robert1742367 -,true,,4d2b6eb7cc8cb43cc200000e,,,,Grimm2527144,,,Robert27d6c2c -,true,,4d2b6eb7cc8cb43cc2000011,,,,weinstien,,,eugene -,true,,4d2b6eb7cc8cb43cc2000017,,,,Grimm3089db2,,,Robert39365a5 -,true,,4d2b6eb7cc8cb43cc200001b,,,,Grimm49fb290,,,Robert405fcf8 -,true,,4d2b6eb8cc8cb43cc2000020,,,,weinstien,,,eugene -,true,,4d2b6ec2cc8cb43cc2000034,,,,Grimm50990f2,,,Robert5501643 diff --git a/spec/fixtures/data_conversion/requests.csv b/spec/fixtures/data_conversion/requests.csv deleted file mode 100644 index f20d61527..000000000 --- a/spec/fixtures/data_conversion/requests.csv +++ /dev/null @@ -1,3 +0,0 @@ -mongo_id,recipient_mongo_id,sender_mongo_id,aspect_mongo_id -4d2b6eb8cc8cb43cc200001e,4d2b6eb7cc8cb43cc200001b,4d2b6eb7cc8cb43cc2000017, -4d2b6ec4cc8cb43cc200003a,4d2b6eb7cc8cb43cc200000e,4d2b6ec2cc8cb43cc2000034, diff --git a/spec/fixtures/data_conversion/services.csv b/spec/fixtures/data_conversion/services.csv deleted file mode 100644 index d27bc37d0..000000000 --- a/spec/fixtures/data_conversion/services.csv +++ /dev/null @@ -1,3 +0,0 @@ -mongo_id,type,user_mongo_id,provider,uid,access_token,access_secret,nickname -4d2b6ec4cc8cb43cc200003e,Services::Facebook,4d2b6eb7cc8cb43cc2000014,,,yeah,, -4d2b6ec4cc8cb43cc200003f,Services::Twitter,4d2b6eb6cc8cb43cc200000b,,,yeah,foobar, diff --git a/spec/fixtures/data_conversion/users.csv b/spec/fixtures/data_conversion/users.csv deleted file mode 100644 index 0eafc2198..000000000 --- a/spec/fixtures/data_conversion/users.csv +++ /dev/null @@ -1,169 +0,0 @@ -mongo_id,email,username,serialized_private_key,encrypted_password,invites,invitation_token,invitation_sent_at,getting_started,disable_mail,language,last_sign_in_ip,last_sign_in_at,reset_password_token,password_salt -4d2b6eb6cc8cb43cc2000007,bob1a25dee@pivotallabs.com,bob1d2f837,"-----BEGIN RSA PRIVATE KEY----- -MIICXAIBAAKBgQDS17A2VhRcv0so303MpMgmVXea2iOxvhBftpDN8hfFAAB39xXY -pz9Mb5gfS7C/Oj2TIlXykmFP6cD2iAzv13HJzLKXeisRzkV/kmwfRdxwuWromHnp -KjcT7hqprIARhS48/BWd6WyW7ruOFy39HD9anwasSmg0jqcER/G8b2lFywIDAQAB -AoGALGz4GyreFYDVJGKQ8QrThYhCsGVAWiZTKue78TkOmxrZ/m0YtFLhOojVA9sd -/d0WtlboxzjiukTlvMyD9VFvDxVZMIS1/bSqVjTCKAetN3q2LPEfFwaHi3Uj+D66 -ulZYaf9VOd0wXREsKQB8Ri0uzlT+zTydbtr6Dnky14IfhuECQQDvGXktxLP9ywSz -avTpNHhwj0Q8aBHSJU7Ms8MCzAHATzjjxZfJCZz5xuocyrpGT18zmmQ6XJS7s8fM -WG5ykmUxAkEA4b7nDh6AxBzFAV5TdxZwThee9ZsndN4tYQmDyI1aCI9xG1lKIxbL -4N/DRyHv7CWkVCxM5L7Kn0QcqnCsYxRLuwJAMCLGvKofOncG6UAdMl336WFOcYLa -I56TMK74EbYUnCzW3TRIjJa83aRoOYeu3LzaA7+Pchh1cRyOmtsq0TIb4QJAQJ6s -9VW19m1l12Zw7f32V+RbFGM9gC65PrXCi34q75hgADwnBLRZ2B01gP8t9qMvzwh/ -WltjFQQiUIfAUPxWUQJBAMyoY38x2AP7WclMtNELAF2lUJ270uq3cxlzrGy9wJP9 -bf3qTUrqURMKgZezWW3iZke1h3vW+regHB2RBgdGmwk= ------END RSA PRIVATE KEY----- -",$2a$10$n1LF9/RgYmytvu5GYGj/Q.XhoquuQv55tdU6NrFSSxyeJabZbvk1y,4,,,true,false,en,,,,$2a$10$n1LF9/RgYmytvu5GYGj/Q. -4d2b6eb6cc8cb43cc200000b,bob21f51ad@pivotallabs.com,bob2f66ee4,"-----BEGIN RSA PRIVATE KEY----- -MIICXAIBAAKBgQDS17A2VhRcv0so303MpMgmVXea2iOxvhBftpDN8hfFAAB39xXY -pz9Mb5gfS7C/Oj2TIlXykmFP6cD2iAzv13HJzLKXeisRzkV/kmwfRdxwuWromHnp -KjcT7hqprIARhS48/BWd6WyW7ruOFy39HD9anwasSmg0jqcER/G8b2lFywIDAQAB -AoGALGz4GyreFYDVJGKQ8QrThYhCsGVAWiZTKue78TkOmxrZ/m0YtFLhOojVA9sd -/d0WtlboxzjiukTlvMyD9VFvDxVZMIS1/bSqVjTCKAetN3q2LPEfFwaHi3Uj+D66 -ulZYaf9VOd0wXREsKQB8Ri0uzlT+zTydbtr6Dnky14IfhuECQQDvGXktxLP9ywSz -avTpNHhwj0Q8aBHSJU7Ms8MCzAHATzjjxZfJCZz5xuocyrpGT18zmmQ6XJS7s8fM -WG5ykmUxAkEA4b7nDh6AxBzFAV5TdxZwThee9ZsndN4tYQmDyI1aCI9xG1lKIxbL -4N/DRyHv7CWkVCxM5L7Kn0QcqnCsYxRLuwJAMCLGvKofOncG6UAdMl336WFOcYLa -I56TMK74EbYUnCzW3TRIjJa83aRoOYeu3LzaA7+Pchh1cRyOmtsq0TIb4QJAQJ6s -9VW19m1l12Zw7f32V+RbFGM9gC65PrXCi34q75hgADwnBLRZ2B01gP8t9qMvzwh/ -WltjFQQiUIfAUPxWUQJBAMyoY38x2AP7WclMtNELAF2lUJ270uq3cxlzrGy9wJP9 -bf3qTUrqURMKgZezWW3iZke1h3vW+regHB2RBgdGmwk= ------END RSA PRIVATE KEY----- -",$2a$10$zq/w8.JTL9VxSlwjFI/Pe.ffWpzmmmRhJ9GXPS48KBTQar5l5CIQi,5,,,true,false,en,,,,$2a$10$zq/w8.JTL9VxSlwjFI/Pe. -4d2b6eb7cc8cb43cc2000014,bob3a2252c@pivotallabs.com,bob3c6c46f,"-----BEGIN RSA PRIVATE KEY----- -MIICXAIBAAKBgQDS17A2VhRcv0so303MpMgmVXea2iOxvhBftpDN8hfFAAB39xXY -pz9Mb5gfS7C/Oj2TIlXykmFP6cD2iAzv13HJzLKXeisRzkV/kmwfRdxwuWromHnp -KjcT7hqprIARhS48/BWd6WyW7ruOFy39HD9anwasSmg0jqcER/G8b2lFywIDAQAB -AoGALGz4GyreFYDVJGKQ8QrThYhCsGVAWiZTKue78TkOmxrZ/m0YtFLhOojVA9sd -/d0WtlboxzjiukTlvMyD9VFvDxVZMIS1/bSqVjTCKAetN3q2LPEfFwaHi3Uj+D66 -ulZYaf9VOd0wXREsKQB8Ri0uzlT+zTydbtr6Dnky14IfhuECQQDvGXktxLP9ywSz -avTpNHhwj0Q8aBHSJU7Ms8MCzAHATzjjxZfJCZz5xuocyrpGT18zmmQ6XJS7s8fM -WG5ykmUxAkEA4b7nDh6AxBzFAV5TdxZwThee9ZsndN4tYQmDyI1aCI9xG1lKIxbL -4N/DRyHv7CWkVCxM5L7Kn0QcqnCsYxRLuwJAMCLGvKofOncG6UAdMl336WFOcYLa -I56TMK74EbYUnCzW3TRIjJa83aRoOYeu3LzaA7+Pchh1cRyOmtsq0TIb4QJAQJ6s -9VW19m1l12Zw7f32V+RbFGM9gC65PrXCi34q75hgADwnBLRZ2B01gP8t9qMvzwh/ -WltjFQQiUIfAUPxWUQJBAMyoY38x2AP7WclMtNELAF2lUJ270uq3cxlzrGy9wJP9 -bf3qTUrqURMKgZezWW3iZke1h3vW+regHB2RBgdGmwk= ------END RSA PRIVATE KEY----- -",$2a$10$qGnZ/GODnmZVukDf9UC49uNgmYk9hRrtomisb0GTs559E1yxMQgvu,5,,,true,false,en,,,,$2a$10$qGnZ/GODnmZVukDf9UC49u -4d2b6eb7cc8cb43cc2000018,bob438d5bc@pivotallabs.com,bob457b189,"-----BEGIN RSA PRIVATE KEY----- -MIICXAIBAAKBgQDS17A2VhRcv0so303MpMgmVXea2iOxvhBftpDN8hfFAAB39xXY -pz9Mb5gfS7C/Oj2TIlXykmFP6cD2iAzv13HJzLKXeisRzkV/kmwfRdxwuWromHnp -KjcT7hqprIARhS48/BWd6WyW7ruOFy39HD9anwasSmg0jqcER/G8b2lFywIDAQAB -AoGALGz4GyreFYDVJGKQ8QrThYhCsGVAWiZTKue78TkOmxrZ/m0YtFLhOojVA9sd -/d0WtlboxzjiukTlvMyD9VFvDxVZMIS1/bSqVjTCKAetN3q2LPEfFwaHi3Uj+D66 -ulZYaf9VOd0wXREsKQB8Ri0uzlT+zTydbtr6Dnky14IfhuECQQDvGXktxLP9ywSz -avTpNHhwj0Q8aBHSJU7Ms8MCzAHATzjjxZfJCZz5xuocyrpGT18zmmQ6XJS7s8fM -WG5ykmUxAkEA4b7nDh6AxBzFAV5TdxZwThee9ZsndN4tYQmDyI1aCI9xG1lKIxbL -4N/DRyHv7CWkVCxM5L7Kn0QcqnCsYxRLuwJAMCLGvKofOncG6UAdMl336WFOcYLa -I56TMK74EbYUnCzW3TRIjJa83aRoOYeu3LzaA7+Pchh1cRyOmtsq0TIb4QJAQJ6s -9VW19m1l12Zw7f32V+RbFGM9gC65PrXCi34q75hgADwnBLRZ2B01gP8t9qMvzwh/ -WltjFQQiUIfAUPxWUQJBAMyoY38x2AP7WclMtNELAF2lUJ270uq3cxlzrGy9wJP9 -bf3qTUrqURMKgZezWW3iZke1h3vW+regHB2RBgdGmwk= ------END RSA PRIVATE KEY----- -",$2a$10$35yqJfo2RHCZIDrkNSWvYebxt7Ac5HULdn0ZVNS/4onPqEWmdsDKm,5,,,true,false,en,,,,$2a$10$35yqJfo2RHCZIDrkNSWvYe -4d2b6eb8cc8cb43cc2000024,random@example.com,,"-----BEGIN RSA PRIVATE KEY----- -MIIJJwIBAAKCAgEAr6Zg031vZaArv+1W6WjTKg2Kg2ifuK2dh+fmM/vWJxwnaJpB -WWDUkdUx8dG9jN1E2DQKApYzhxToP2XTZg9fsd7J322Ah3AjXJ7GSycHsJpXUdDZ -GCf16iDgvGq4SKd+UreZxhLFybjl91yeH0oKB2Lv9aFJS079zjKUU4IEDNWbgw7D -mqiVjRA1E7osVX40eD/nkmjBuPMoZyTa9ibN2TldQCqWGxwztHrFW+ap54hpghw6 -ilRWsBt38b3ORTdJgHo3jQWZz5d7llFHKakyylLais0KSmQ5j3c+gXQYJ74Qw/yR -aW2DhEYxOcRc9sxDvHS0fQqLfx6+0ijaaWKZCFqYqoylOWf+CyQHZG5NmgI6wj29 -Aj01a9cpzwswb51yO23/TITC4siC4i5HKDTcnnUQIzuX/uoLW1jsyN4Ot6/qaMYa -B6nmP750DVqMO5BXFr6H33/ga309b71ipIxONLXW0cK8ugns4/L4jV3GarzXWaXG -eoMebwDK6FhQnMyR+/+HKpMiqvwALPCVbfgUgqhKJQ+vvQ8utNwrvnA0X0YiP2EB -eEz0Ie1VSwL1Y0DCfs/WbKCq+EdfstMlpDhRVn3yTfR7lu1yiOG++wKQ/Hx9lzQ5 -2REgfNcNR8pRzLfdA4JjHwW95vK1qhNgGPc3mvLs1VBZ6xQcJw9VG1vNJhECAwEA -AQKCAgAzBmQOS9v2a6cJ5AphV6AwESrxrYzoexbOCiGnbDrztYwFKPpe2nAlxQbz -NniX2RdMryFRSwzA6uPkttHITiMAarW9//NcZMkA+OalojrrpIpFLCREjicz0kU2 -ttG92Voq8UbscTufs+SqDO+qKznql2UZt7aw98tnAO5xq809ZTf9xGYyIVMAXXrt -tiF23GilnfrJX0EXVxufiudIplEaDz31i+l7CqBCh3+ZiNJGfiwYLdcbpBBirDgV -s4ueM8dYWSiWANCDq3+tVQMVKR+mApeVxqZ8oczOzlcMCAuUT/RS2qXrOHMCE9ns -7AwNbZ0nu8dKo6uOTAImztNT1d6aQVT5XF4OxWyim73h2lp2udckUpmArdtpDqWJ -x341PjbrQuRpg89ovwENJLz6c58S5uI8lFUOA5cVYkC8j0GJglXA5keF9GnDi+eF -ITAzv9dCT6LJfweNX9lPLFKujIr7jTvnaNaRc6R8lacJbFY1WpxhrjyT/OI40586 -72SpsQBjwyHaErCixpZxW1lEhrLnv3s7K7YJWL4xWiwEwqtrIui7btG9eJ1G/dzY -adxQKGtdYmWqSBKun9ADZhzwx5DLdgshc8SRG8VqfkktepaoRV0IkkCpsNM/Om3+ -qoLau03LCLnP5FjV99+TtbMMeH+EF3dkysGVgd7xxDYYtTHNGQKCAQEA3ZtGdajy -h+lTEj32jZKXvuSJhBkXlwazFCtOfWo5xoj0w+0EH2V00o9GeaDKpvkHymkReXjG -YiTaXk3INwiY0zA8vmPwigFdOJnQrfn0cCBWHsvUiPDVFWsdJZmHYd4c6eKiU2Sg -j+o/Nyl+KUrzDhITERlhBvxuBZxiAMisG8gKAUhUjVcxrMfbSdzR+I673GSls1tw -vXfXVgZdeAwD9HslSXdwK3GIXw+V355nLIXn2at9r7s5wOJ2aRoUz3rc1r9ctHgo -xq+rVmaRif3qFmwyXAa4fFyoLB+T9UXiY7nB2XfZ/vCDQ7L/V906hQwL2zBXT4t5 -HUMuS8SxOpoP6wKCAQEAyukvQLSJTzaT3ZtP6kzkWnCuw7pNP+eu+L8U1MYDHM4z -hMY/yXoyvEtjCzEX6zBxgBCUgdnpUhJTx6EW3dvOgYOdfmMREwrwl7jtySQwlqPA -BTBzLf/11QAU7k3gNVzqo7OUCKoswafZA0wL2gtMbULrKUJ9iUftfEUpY6pZchJp -yJkTHhjamA7uM5uzULjQhtj00bQbEQqcVD1vnfsmtfDQCHaHrrD/HhMQMLI1HEjG -bpVC7u70d5vFU+g8prLhleYBsmQ8Ql+0iR4cINGkROriGPhCCyov3kB+OfwO7b8u -UP4WOsceczSIgbTqZI/q+ZGRCrK9wff8IxCoXvee8wKCAQAnbjJ6SwZkcnqqe0X8 -aMIBYE6rp39QCwwgIZiErjr7fXD3z5t1Lqs7r+ydRaPpU9Q0Cr/mOjwqSF5mezaN -vETdBu83/TZWh+mbYZsE6b25mbdZIXF+sENp3TZBc3DoVAoW/5Fcf0ImeUqoOQTO -uhxHO6YS284s3QuCihHSC+K7yrslAUayI3qeQK1fFiByNotsqqflIvcLb2BsWROW -gaTOgn7e9JaL1Fase2xybo/zFxxq2Z2ygADFtkXVa6OaS0UyHLiVD/BJcgZtiDCL -OhfFx5iqUTPQRPhTaYb9FGM01V+Nn0q1lvv0NsxCSQXZmIwfgxl1+N4i+8ooByZ1 -w+XjAoIBADVLK6MGB+5rOkkBKusyCOQMJoq32uRG+LjSjykXXOfq7LMZ0tUbKEo2 -Tqw417xo+9aUBD1au6JXt/N9xuC8g6+Wnv38DRcAT5K5+pJS1AQsvBlg0U+qo6mv -HNA+Wf4KCoK2ftILyDeQ2zm3doFtaERmSBeNJCWzY5e5HpbTvixs06XhNpk4E+nO -OhgJ8/3mnLZeM2cEs/s02zxw6mkG9vLgbfNbFmX2jPscLKttku972cpfn7Xbww/L -NPfFznBGGWPihl2RYBZaxrMg2mhwR4HmYz4Frmr6SJpKPB0Eq/MbvJF/Ot1zQPcn -PBc9KjcBacjkx8CUk6xncqzPCjnvNasCggEAfwocA/YL8iZWFaOLmVLhuyN9dLvP -MsMyx51b9eeg8ux95+MUwPZEBovqsI6ziCWDgTbkVttx+SxYdcDA5ckHbAC8MYNK -4xEpyDTT8rwQpCW7+42iNdqsSGnH4TVLC2u4Pbk3mvpX1wDcrqMmJN/G3mKIj6YY -u4azxx/SEPCWI3qZt/laBixhSM5jdyWq6y0ht/DFpdWQJ1hKR8vpnVi+ZSFZmUkO -S/KiO2fMmKF6aOQgGVBHSdQTUxPAc5sD+O6CpRj/VedGQko2x8kGNpm53LIox/nU -gO38qEEvOx0uymkh7LriH9NkMxkdCghw4mwCUvyrOTymFnOGs2OMR1bmsQ== ------END RSA PRIVATE KEY----- -","",3,wY567RLhNsA8pp4SnnFa,1294617600000,true,false,en,,,,"" -4d2b6ebccc8cb43cc2000025,random2@example.net,,"-----BEGIN RSA PRIVATE KEY----- -MIIJJwIBAAKCAgEAmq6rTmlfmjfXSMCUcTQ55JUT180G6ZP3KUsHY5bmQm9F7cc6 -W+RvpuAqnFgq8tEuqWz8bpzPmYpy9uFh+kY7LJfi4mW+aBFRNYsfsKPy8ckhItVl -HYsAOCBABwxRAeXDgKMabAhkMMYHvJn2tDgWeEoctjf89eovcCWXjm0HAmiDY50s -F0VhRFZ3YpaNBEMCuC/icj1w0c2Cx72MWPxIMdm4Do2Mhv5lmaK5Br/URtcG00Yz -B7xqsG3/YVpvL5jL1LSGJnuCiOYKZ6rfXwJy57jm0MEXpNh1YeemI/PtSsp7x00i -dqjsqh3FOE9NWZAoS+GwnmIRoL0VCR2ly4pVDBa8lNUwydz8JUXPDVU7xVxM4ams -MPBOK1e7Yb0Ev5tObVjmAY/hhwrawga413zVddkejxiMR1RktORywjJrDBV1tQgv -1eohQON+MAknFR5N7Q8w+/oeAwnSo5BL+qomL2kxvclAAdvMD8hJ1H2ZuqWsI5Ex -lfSsPdErJ2KElhVbM9Zh8wSpizDB2HdKCkjQglpsX8MgeyXA1EWiiRvNd2b6OoPn -WX12QGUFkUFSPW6cW0lUmg7g26+jGwoC0NPV9lvg/yJccLXqYbRMGiNZze1bHt9J -K5LTmDxIvyyxjxDhzwUifqOfIHSpSpHvjLobsuMUV40f2H5LrD+aP4249rUCAwEA -AQKCAgBlCMg+LFfUzLqi+586HineY32VjIcCVLKxVx+ZbjwykqnzeRlmYlyHfI54 -lqJe/kFjSxvLSEPVf3g+R9MOfYczRnZc+KYZJY6M0bW+VChgw8YQEaC9XkijYHVR -5TqYabJ8OI0OmaCPtxngmBRrfOM4aPg+EW36Vp/rubI3xoE4knmXvFbLUHcLAwtx -6vJrITYKhsR7aCRj9b+Bpg6hJRAm95Xgc5ahqlNEuePvQ6dtKhB8ObMlT23EleSk -e0R6q2wgIFYrlqsZrmCHfDXwwhG5x62EF0vRUc3CSGPdwftxybZ15K0pIoeLSmzC -rhHQ+XdIsT8DBP2Mp1SxIptjypRnkBAFyTju8vAMQg+vsbysD6AdSmC5PEdiEMAE -FOqdqKsxqlK0E/NY5TdYL3aVvoTTHq/gW5mumhoNdfpn9LuzdRxeF+jIYUk6Hy21 -2feyey3npXBn/3DlV6RmLjLXad/XvMwXh9pAN6eXp3tmNVk7G8w2z19E5+ZJuXYt -+EXWLZo1vGw0pV/Ud+3mJYMcQcH1WvCXmImvuQdMqmX6brCTPbrrQl8ABUw2q524 -kLlnnJJ4Rzc896QwQxT1XdDqot1rIO2GgE2yIu6KKxJWfLlGagcStzj/AkR65vIM -miZkCj7p6qUvVl1eQ2xviaTb8PvQK0gz7KjpQCuRvuEEd+Hl1QKCAQEAx/QrCztG -ydX8fwCu1b6F4f53L78BCW+20A+jSVGr5hPByQrgNBbxd+ddHXPBrTr7ivIYTJ3y -jiH1kbDiIA876U0kglPXFsZ3vnCNefC7cYRMlRLhGNMeemrddau/DejwSjo96jP+ -DaqXXRaLTnFKd80KxouLzhuYxaPR9g1DR9dMsWqU5dx17M8Q7n48GBu4GcTAC6uY -3xV2vmYfN8jULyfl7EcSkNegSFhfMnZqqUaXN5PYlN8ImnKYFwLyM2Pr6s1GvhtT -VNphnylNUE3a9jQ/G42f6tBT+XXl05edJcOrqPDK/Ab1WWPPeAfADKS/Njg4Q/mS -B3gWLeSTneWlJwKCAQEAxgoDK8NWBQ82Knf6juRzpHRisutB/gh3B2kFvOaL1s9C -7U7y73FyyHeg/Bpxt07UKCIBEinq/uP6zCcg7vyu08nE5BeX+biGY85NmUq3dAgu -oiZNKeBfWeCBfPRRkNhd37zfUtt6Y8WOjS+s9KA3KyR7pJhkEFvgY6xeBtTghaQt -PfbjibuIIAW2c7ta3EG1uopLC9x8TqELjTyELR2bGdXUOQcVIuI9Pwf84l8GFpPL -doGn/Th6tz5Aa10o+0MvWCEQ2QNdfxqH9T7sGF25Kep8ejTHA/ahEr336Y5noaZP -LLc3/v+qjHHqOiq+7gSPJrsUY/E/idhUQMIh73DGwwKCAQAdZ9Uks7T3XdbiPpF3 -sasyzx9sECTw5FL4SjRzReWH0oP/MvBB+NXOEmJpQGrNNQ1lI7FbIydWq7vXjzHS -ESt4ZfXmjLnnCYz2nsrPkg2e5hv1GG+uHO4whqLG+VkBjK453FLarIbCL8JO2E/o -W1TeRXM+O6t1xi0zc6IfE1g/qnQG62u2WjOlfdY5nKrtyLXMZFjx3mx+8kMiQRZ6 -N7isrqtrkhAy6OMTgJuPakbJWi5G6CFD04EKZavkRnSkBh/dyg6LSq14nx0YMRTD -qI95Abn+LVfFSpnu593CvltIAHywPak8YzGV0c3jExC1S00rhh0QMhW9r3Vjjmf/ -IpSlAoIBAE7+HWeuYbhg6e0ksEeg7lOxrNDLMCaA/+Fvzb8cgrjrMTnxHMvPh8ZY -mVkVvzgr9EoRzjWNjNOg4h/el69cEOwfdi65DoCoTsqutpsnh2d8AAXjmzHR8paq -C1xpI8PP2hntf3LQYtA7M/IzCx0Ebx0BT2RG+Nrhmu6HCXZWITyNURJ/USFWMST8 -wlsFZ2elujQvB2Iyz06ZxD7Q3bQVNBGpDh61KYQhk+Z5bDBrUMVerHCXpQdHKQPA -i/eHUFpw4QiZH9xAEGIrlgGH2Kqbb8k9Y+tm898r1/He3m1FxSZgbQJcDrTjDAc7 -RP9wn3nXTbZYNvjqeLqmFG1EQj78z/sCggEAObB/itRxT0G3PtNGoAymW7/l/dhs -8H0BSQKjSQyrP8l4eUIWu4e92jdklOmEzba1+RdMr7sAbBeFn9DfUON3/cBVLV4u -l++D+DbL0abIel07SwsyGkCsajxXazF/6lMrYIiMBCV2sE/13CRIxBHcMRM84XCt -00VwoxJpwEVhkiGTK/ckSj3+QzP2u2FF1WpqmHLOH7iYxnhO8JyypI92eM2TKxi8 -tKWyjWisXwQmbigurNXqBFmMz+kSBpsskjgHxLRu/JQogl6avKMQ/jTBZLSKF0Ds -KbFEI6SXfIxjp0engFRaf0EdVenig52hS4dml+GaagOh71VzljLOTEKUUw== ------END RSA PRIVATE KEY----- -","",5,aA1hEEz6V7btITaZUJKT,1294617600000,true,false,en,,,,"" diff --git a/spec/fixtures/public_posts.json b/spec/fixtures/public_posts.json index 4d4cc1812..a8aff7112 100644 --- a/spec/fixtures/public_posts.json +++ b/spec/fixtures/public_posts.json @@ -1 +1 @@ -[{"id":15086,"guid":"198095988ad26f21","text":"test of #left4dead on #linux results in \"faster zombies\" http://is.gd/uHeUC6 with linux outperforming windows","public":true,"created_at":"2012-08-02T22:13:16Z","interacted_at":"2012-08-03T15:02:59Z","provider_display_name":null,"post_type":"Reshare","image_url":null,"object_url":null,"favorite":false,"nsfw":false,"author":{"id":2,"guid":"7445f9a0a6c28ebb","name":"Florian Staudacher","diaspora_id":"raven24@pod.fulll.name","avatar":{"small":"https://pod.fulll.name/uploads/images/thumb_small_5f612f44a0a026b119f8.png","medium":"https://pod.fulll.name/uploads/images/thumb_medium_5f612f44a0a026b119f8.png","large":"https://pod.fulll.name/uploads/images/thumb_large_5f612f44a0a026b119f8.png"}},"o_embed_cache":null,"mentioned_people":[],"photos":[],"frame_name":"status","root":{"id":15028,"guid":"1b2a98db23582947","text":"test of #left4dead on #linux results in \"faster zombies\" http://is.gd/uHeUC6 with linux outperforming windows","public":true,"created_at":"2012-08-02T14:25:56Z","interacted_at":"2012-08-02T21:54:53Z","provider_display_name":null,"post_type":"StatusMessage","image_url":null,"object_url":null,"favorite":false,"nsfw":false,"author":{"id":1769,"guid":"a2f9a3a7cb3dcd5a","name":"el [spare pope] olmo","diaspora_id":"el_olmo@pod.fulll.name","avatar":{"small":"https://pod.fulll.name/uploads/images/thumb_small_343f6520778765c4b3f9.jpg","medium":"https://pod.fulll.name/uploads/images/thumb_medium_343f6520778765c4b3f9.jpg","large":"https://pod.fulll.name/uploads/images/thumb_large_343f6520778765c4b3f9.jpg"}},"o_embed_cache":null,"mentioned_people":[],"photos":[],"frame_name":"status","root":null,"title":"test of #left4dead on #linux results in \"faster zombies\" http://is.gd/uHeUC6 with linux outperforming windows","next_post":"/posts/15028/next","previous_post":"/posts/15028/previous","interactions":{"likes":[{"id":32638,"guid":"b2c1e789b1eec9ea","author":{"id":2,"guid":"7445f9a0a6c28ebb","name":"Florian Staudacher","diaspora_id":"raven24@pod.fulll.name","avatar":{"small":"https://pod.fulll.name/uploads/images/thumb_small_5f612f44a0a026b119f8.png","medium":"https://pod.fulll.name/uploads/images/thumb_medium_5f612f44a0a026b119f8.png","large":"https://pod.fulll.name/uploads/images/thumb_large_5f612f44a0a026b119f8.png"}},"created_at":"2012-08-02T21:54:53Z"}],"reshares":[{"reshare":{"actor_url":null,"author_id":2,"comments_count":0,"created_at":"2012-08-02T22:13:16Z","diaspora_handle":"raven24@pod.fulll.name","favorite":false,"frame_name":null,"guid":"198095988ad26f21","id":15086,"image_height":null,"image_url":null,"image_width":null,"interacted_at":"2012-08-03T15:02:59Z","likes_count":2,"o_embed_cache_id":null,"objectId":null,"object_url":null,"pending":false,"processed_image":null,"provider_display_name":null,"public":true,"random_string":null,"remote_photo_name":null,"remote_photo_path":null,"reshares_count":0,"root_guid":"1b2a98db23582947","status_message_guid":null,"text":null,"unprocessed_image":null,"updated_at":"2012-08-03T15:02:59Z"}}],"comments_count":0,"likes_count":6,"reshares_count":1}},"title":"A post from Florian Staudacher","next_post":"/posts/15086/next","previous_post":"/posts/15086/previous","interactions":{"likes":[],"reshares":[],"comments_count":0,"likes_count":2,"reshares_count":0,"comments":[]}},{"id":14755,"guid":"0ffef04549e81bfa","text":"... in case you ever need the network device name, ip and mac address, here you go: \r\nhttps://gist.github.com/3202188\r\n\r\n(uses ifconfig, grep and sed with some regular expression magic) \r\n#bash #script #network #ip #grep #sed #regexp #linux","public":true,"created_at":"2012-07-29T22:28:17Z","interacted_at":"2012-08-01T18:01:49Z","provider_display_name":null,"post_type":"StatusMessage","image_url":null,"object_url":null,"favorite":false,"nsfw":false,"author":{"id":2,"guid":"7445f9a0a6c28ebb","name":"Florian Staudacher","diaspora_id":"raven24@pod.fulll.name","avatar":{"small":"https://pod.fulll.name/uploads/images/thumb_small_5f612f44a0a026b119f8.png","medium":"https://pod.fulll.name/uploads/images/thumb_medium_5f612f44a0a026b119f8.png","large":"https://pod.fulll.name/uploads/images/thumb_large_5f612f44a0a026b119f8.png"}},"o_embed_cache":null,"mentioned_people":[],"photos":[],"frame_name":"note","root":null,"title":"... in case you ever need the network device name, ip and mac address, here you go: \r\nhttps://gist.github.com/3202188\r\n\r\n(uses ifconfig, grep and sed with some regular expression magic) \r\n#bash #script #network #ip #grep #sed #regexp #linux","next_post":"/posts/14755/next","previous_post":"/posts/14755/previous","interactions":{"likes":[],"reshares":[],"comments_count":8,"likes_count":4,"reshares_count":0,"comments":[{"id":20912,"guid":"ba86c52ca4d293c4","text":"It only shows network devices named eth* and doesn't work with localized versions of ifconfig in non-english language environments","author":{"id":6243,"guid":"c7bf295dae900b7a","name":"Florian Diesch","diaspora_id":"diesch@joindiaspora.com","avatar":{"small":"https://joindiaspora.s3.amazonaws.com/uploads/images/thumb_small_7f090bd1002004896464.png","medium":"https://joindiaspora.s3.amazonaws.com/uploads/images/thumb_medium_7f090bd1002004896464.png","large":"https://joindiaspora.s3.amazonaws.com/uploads/images/thumb_large_7f090bd1002004896464.png"}},"created_at":"2012-07-30T02:33:06Z"},{"id":21012,"guid":"81fc5d869de5ea05","text":"For now, I only need it just the way it is (in my collection of VM management scripts), but feel free to change it to work with whatever version or language of `ifconfig` you need. I leave that \"as an exercise to the reader\" ... it's always a good time to start learning `sed` regular expressions \n;)","author":{"id":2,"guid":"7445f9a0a6c28ebb","name":"Florian Staudacher","diaspora_id":"raven24@pod.fulll.name","avatar":{"small":"https://pod.fulll.name/uploads/images/thumb_small_5f612f44a0a026b119f8.png","medium":"https://pod.fulll.name/uploads/images/thumb_medium_5f612f44a0a026b119f8.png","large":"https://pod.fulll.name/uploads/images/thumb_large_5f612f44a0a026b119f8.png"}},"created_at":"2012-07-31T01:51:24Z"},{"id":21164,"guid":"d74aac53420cd66f","text":"[inxi](https://code.google.com/p/inxi/)","author":{"id":3920,"guid":"b636315dc6f90ece","name":"Kiridesce","diaspora_id":"iridesce@kosmospora.net","avatar":{"small":"https://kosmospora.net/uploads/images/thumb_small_7b3c16e2107449bf9717.jpeg","medium":"https://kosmospora.net/uploads/images/thumb_medium_7b3c16e2107449bf9717.jpeg","large":"https://kosmospora.net/uploads/images/thumb_large_7b3c16e2107449bf9717.jpeg"}},"created_at":"2012-08-01T18:01:49Z"}]}},{"id":14514,"guid":"c6b5e0a20421d719","text":"lol! \r\nhttp://youtu.be/6RrpGgaT5kk\r\n\r\n#acapella #movie #dub","public":true,"created_at":"2012-07-27T14:09:31Z","interacted_at":"2012-07-28T21:25:56Z","provider_display_name":null,"post_type":"StatusMessage","image_url":null,"object_url":null,"favorite":false,"nsfw":false,"author":{"id":2,"guid":"7445f9a0a6c28ebb","name":"Florian Staudacher","diaspora_id":"raven24@pod.fulll.name","avatar":{"small":"https://pod.fulll.name/uploads/images/thumb_small_5f612f44a0a026b119f8.png","medium":"https://pod.fulll.name/uploads/images/thumb_medium_5f612f44a0a026b119f8.png","large":"https://pod.fulll.name/uploads/images/thumb_large_5f612f44a0a026b119f8.png"}},"o_embed_cache":{"data":{"provider_url":"http://www.youtube.com/","thumbnail_url":"http://i3.ytimg.com/vi/6RrpGgaT5kk/hqdefault.jpg","title":"'The Matrix' Lobby Scene with A capella Multitrack - Matt Mulholland","html":"","author_name":"mattmulholland26","height":236,"thumbnail_width":480,"width":420,"version":"1.0","author_url":"http://www.youtube.com/user/mattmulholland26","provider_name":"YouTube","type":"video","thumbnail_height":360,"trusted_endpoint_url":"http://www.youtube.com/oembed"}},"mentioned_people":[],"photos":[],"frame_name":"status","root":null,"title":"lol! \r\nhttp://youtu.be/6RrpGgaT5kk\r\n\r\n#acapella #movie #dub","next_post":"/posts/14514/next","previous_post":"/posts/14514/previous","interactions":{"likes":[],"reshares":[],"comments_count":1,"likes_count":2,"reshares_count":0,"comments":[{"id":20833,"guid":"3c2d21708b6cfa29","text":"Inception Trailer A Capella Re-Dub: http://www.youtube.com/watch?v=d2yD4yDsiP4","author":{"id":2896,"guid":"24e82915d58368fe","name":"Alexey Andreyev","diaspora_id":"yetanotherandreyev@diasp.org","avatar":{"small":"https://diasp.org/uploads/images/thumb_small_9f29c5326741a32889fa.jpg","medium":"https://diasp.org/uploads/images/thumb_medium_9f29c5326741a32889fa.jpg","large":"https://diasp.org/uploads/images/thumb_large_9f29c5326741a32889fa.jpg"}},"created_at":"2012-07-28T21:25:56Z"}]}},{"id":14113,"guid":"4404d1bb88d36735","text":"Keep Calm and use #Linux
[ ![Image](http://farm5.staticflickr.com/4146/5051936082_3eb4a9f065_b.jpg) ](http://goo.gl/HSS18)
","public":true,"created_at":"2012-07-23T15:50:00Z","interacted_at":"2012-07-24T15:16:25Z","provider_display_name":null,"post_type":"Reshare","image_url":null,"object_url":null,"favorite":false,"nsfw":false,"author":{"id":2,"guid":"7445f9a0a6c28ebb","name":"Florian Staudacher","diaspora_id":"raven24@pod.fulll.name","avatar":{"small":"https://pod.fulll.name/uploads/images/thumb_small_5f612f44a0a026b119f8.png","medium":"https://pod.fulll.name/uploads/images/thumb_medium_5f612f44a0a026b119f8.png","large":"https://pod.fulll.name/uploads/images/thumb_large_5f612f44a0a026b119f8.png"}},"o_embed_cache":null,"mentioned_people":[],"photos":[],"frame_name":"status","root":{"id":14099,"guid":"d1970bb173aae310","text":"Keep Calm and use #Linux
[ ![Image](http://farm5.staticflickr.com/4146/5051936082_3eb4a9f065_b.jpg) ](http://goo.gl/HSS18)
","public":true,"created_at":"2012-07-23T13:12:51Z","interacted_at":"2012-07-23T13:37:24Z","provider_display_name":null,"post_type":"StatusMessage","image_url":null,"object_url":null,"favorite":false,"nsfw":false,"author":{"id":175,"guid":"4d11bd252c174338f2002a4c","name":"\u24b6\u24c5\u24c4\u24c1\u24c4\u24c3\u24be\u24c8 \u2301 \u24b6\u24c5\u24bd\u24c7\u24c4\u24b9\u24be\u24c8\u24be\u24b6","diaspora_id":"apolonisaphrodisia@joindiaspora.com","avatar":{"small":"https://joindiaspora.s3.amazonaws.com/uploads/images/thumb_small_8107d3419ac23bd16253.gif","medium":"https://joindiaspora.s3.amazonaws.com/uploads/images/thumb_medium_8107d3419ac23bd16253.gif","large":"https://pod.fulll.name/images/user/default.png"}},"o_embed_cache":null,"mentioned_people":[],"photos":[],"frame_name":"status","root":null,"title":"Keep Calm and use #Linux
[ ![Image](http://farm5.staticflickr.com/4146/5051936082_3eb4a9f065_b.jpg) ](http://goo.gl/HSS18)
","next_post":"/posts/14099/next","previous_post":"/posts/14099/previous","interactions":{"likes":[],"reshares":[],"comments_count":0,"likes_count":0,"reshares_count":2}},"title":"A post from Florian Staudacher","next_post":"/posts/14113/next","previous_post":"/posts/14113/previous","interactions":{"likes":[],"reshares":[],"comments_count":0,"likes_count":2,"reshares_count":1,"comments":[]}},{"id":14110,"guid":"bb89c419e60fd801","text":"awesome #youtube #video \r\nhttp://youtu.be/daVDrGsaDME\r\n\r\n#car #engine #stopmotion","public":true,"created_at":"2012-07-23T15:05:36Z","interacted_at":"2012-07-24T12:48:48Z","provider_display_name":null,"post_type":"StatusMessage","image_url":null,"object_url":null,"favorite":false,"nsfw":false,"author":{"id":2,"guid":"7445f9a0a6c28ebb","name":"Florian Staudacher","diaspora_id":"raven24@pod.fulll.name","avatar":{"small":"https://pod.fulll.name/uploads/images/thumb_small_5f612f44a0a026b119f8.png","medium":"https://pod.fulll.name/uploads/images/thumb_medium_5f612f44a0a026b119f8.png","large":"https://pod.fulll.name/uploads/images/thumb_large_5f612f44a0a026b119f8.png"}},"o_embed_cache":{"data":{"provider_url":"http://www.youtube.com/","thumbnail_url":"http://i1.ytimg.com/vi/daVDrGsaDME/hqdefault.jpg","title":"11 Months, 3000 pictures and a lot of coffee.","html":"","author_name":"nothinghereok","height":315,"thumbnail_width":480,"width":420,"version":"1.0","author_url":"http://www.youtube.com/user/nothinghereok","provider_name":"YouTube","type":"video","thumbnail_height":360,"trusted_endpoint_url":"http://www.youtube.com/oembed"}},"mentioned_people":[],"photos":[],"frame_name":"status","root":null,"title":"awesome #youtube #video \r\nhttp://youtu.be/daVDrGsaDME\r\n\r\n#car #engine #stopmotion","next_post":"/posts/14110/next","previous_post":"/posts/14110/previous","interactions":{"likes":[],"reshares":[],"comments_count":0,"likes_count":1,"reshares_count":0,"comments":[]}},{"id":12830,"guid":"5a4089375be2db14","text":"jQuery Core: Version 1.9 and Beyond - http://blog.jquery.com/2012/06/28/jquery-core-version-1-9-and-beyond/ - \r\n_jQuery 2.0: This version will support the same APIs as jQuery 1.9 does, but removes support for IE 6/7/8 oddities such as borked event model, IE7 \u201cattroperties\u201d, HTML5 shims, etc. \r\nOur goal is for 1.9 and 2.0 to be interchangeable as far as the API set they support. When 2.0 comes out, your decision on which version to choose should be as simple as this: If you need IE 6/7/8 support, choose 1.9; otherwise you can use either 1.9 or 2.0._ \r\nI hope IE dies a quick but painfull death... \r\n#jquery #ie #browser #web","public":true,"created_at":"2012-07-13T20:36:35Z","interacted_at":"2012-07-13T20:36:35Z","provider_display_name":null,"post_type":"StatusMessage","image_url":null,"object_url":null,"favorite":false,"nsfw":false,"author":{"id":2,"guid":"7445f9a0a6c28ebb","name":"Florian Staudacher","diaspora_id":"raven24@pod.fulll.name","avatar":{"small":"https://pod.fulll.name/uploads/images/thumb_small_5f612f44a0a026b119f8.png","medium":"https://pod.fulll.name/uploads/images/thumb_medium_5f612f44a0a026b119f8.png","large":"https://pod.fulll.name/uploads/images/thumb_large_5f612f44a0a026b119f8.png"}},"o_embed_cache":null,"mentioned_people":[],"photos":[],"frame_name":"note","root":null,"title":"jQuery Core: Version 1.9 and Beyond - http://blog.jquery.com/2012/06/28/jquery-core-version-1-9-and-beyond/ - \r\n_jQuery 2.0: This version will support the same APIs as jQuery 1.9 does, but removes support for IE 6/7/8 oddities such as borked event model, IE7 \u201cattroperties\u201d, HTML5 shims, etc. \r\nOur goal is for 1.9 and 2.0 to be interchangeable as far as the API set they support. When 2.0 comes out, your decision on which version to choose should be as simple as this: If you need IE 6/7/8 support, choose 1.9; otherwise you can use either 1.9 or 2.0._ \r\nI hope IE dies a quick but painfull death... \r\n#jquery #ie #browser #web","next_post":"/posts/12830/next","previous_post":"/posts/12830/previous","interactions":{"likes":[],"reshares":[],"comments_count":0,"likes_count":0,"reshares_count":0,"comments":[]}},{"id":12763,"guid":"82adaf03843115e8","text":"http://www.evolutionoftheweb.com\r\n\r\n![www](http://2.bp.blogspot.com/-wsNl1RvehSs/T_7DBHg_o6I/AAAAAAAAAYg/UL2N8GMWO3k/s640/evolution+of+web.png)\r\n\r\n#www #web #ITNews #Browser #Internet #technology #IT","public":true,"created_at":"2012-07-13T09:30:02Z","interacted_at":"2012-07-29T23:46:30Z","provider_display_name":null,"post_type":"Reshare","image_url":null,"object_url":null,"favorite":false,"nsfw":false,"author":{"id":2,"guid":"7445f9a0a6c28ebb","name":"Florian Staudacher","diaspora_id":"raven24@pod.fulll.name","avatar":{"small":"https://pod.fulll.name/uploads/images/thumb_small_5f612f44a0a026b119f8.png","medium":"https://pod.fulll.name/uploads/images/thumb_medium_5f612f44a0a026b119f8.png","large":"https://pod.fulll.name/uploads/images/thumb_large_5f612f44a0a026b119f8.png"}},"o_embed_cache":null,"mentioned_people":[],"photos":[],"frame_name":"status","root":{"id":12751,"guid":"389f84ae16581df6","text":"http://www.evolutionoftheweb.com\r\n\r\n![www](http://2.bp.blogspot.com/-wsNl1RvehSs/T_7DBHg_o6I/AAAAAAAAAYg/UL2N8GMWO3k/s640/evolution+of+web.png)\r\n\r\n#www #web #ITNews #Browser #Internet #technology #IT","public":true,"created_at":"2012-07-12T17:34:10Z","interacted_at":"2012-07-13T05:49:09Z","provider_display_name":null,"post_type":"StatusMessage","image_url":null,"object_url":null,"favorite":false,"nsfw":false,"author":{"id":4079,"guid":"bfe281001b5a8561","name":"Anonymiss","diaspora_id":"anonymiss@despora.de","avatar":{"small":"https://despora.de/uploads/images/thumb_small_d25c7b27e7bbf307a8cc.jpg","medium":"https://despora.de/uploads/images/thumb_medium_d25c7b27e7bbf307a8cc.jpg","large":"https://despora.de/uploads/images/thumb_large_d25c7b27e7bbf307a8cc.jpg"}},"o_embed_cache":null,"mentioned_people":[],"photos":[],"frame_name":"status","root":null,"title":"http://www.evolutionoftheweb.com\r\n\r\n![www](http://2.bp.blogspot.com/-wsNl1RvehSs/T_7DBHg_o6I/AAAAAAAAAYg/UL2N8GMWO3k/s640/evolution+of+web.png)\r\n\r\n#www #web #ITNews #Browser #Internet #technology #IT","next_post":"/posts/12751/next","previous_post":"/posts/12751/previous","interactions":{"likes":[],"reshares":[],"comments_count":0,"likes_count":0,"reshares_count":1}},"title":"A post from Florian Staudacher","next_post":"/posts/12763/next","previous_post":"/posts/12763/previous","interactions":{"likes":[],"reshares":[],"comments_count":0,"likes_count":2,"reshares_count":0,"comments":[]}},{"id":12463,"guid":"cb0a304194c719d8","text":"Relativistic Baseball - http://what-if.xkcd.com/1/ - \r\nWhat would happen if you tried to hit a baseball pitched at 90% the speed of light? \r\n#xkcd #whatif","public":true,"created_at":"2012-07-10T09:31:54Z","interacted_at":"2012-07-29T23:52:08Z","provider_display_name":null,"post_type":"StatusMessage","image_url":null,"object_url":null,"favorite":false,"nsfw":false,"author":{"id":2,"guid":"7445f9a0a6c28ebb","name":"Florian Staudacher","diaspora_id":"raven24@pod.fulll.name","avatar":{"small":"https://pod.fulll.name/uploads/images/thumb_small_5f612f44a0a026b119f8.png","medium":"https://pod.fulll.name/uploads/images/thumb_medium_5f612f44a0a026b119f8.png","large":"https://pod.fulll.name/uploads/images/thumb_large_5f612f44a0a026b119f8.png"}},"o_embed_cache":null,"mentioned_people":[],"photos":[],"frame_name":"status","root":null,"title":"Relativistic Baseball - http://what-if.xkcd.com/1/ - \r\nWhat would happen if you tried to hit a baseball pitched at 90% the speed of light? \r\n#xkcd #whatif","next_post":"/posts/12463/next","previous_post":"/posts/12463/previous","interactions":{"likes":[],"reshares":[],"comments_count":0,"likes_count":3,"reshares_count":1,"comments":[]}},{"id":12349,"guid":"b16efb0fc6427338","text":"yay, new \"simon's cat\"! \r\n \r\nhttp://youtu.be/XrivBjlv6Mw \r\n#simonscat #cat","public":true,"created_at":"2012-07-09T12:03:38Z","interacted_at":"2012-07-10T21:59:32Z","provider_display_name":null,"post_type":"StatusMessage","image_url":null,"object_url":null,"favorite":false,"nsfw":false,"author":{"id":2,"guid":"7445f9a0a6c28ebb","name":"Florian Staudacher","diaspora_id":"raven24@pod.fulll.name","avatar":{"small":"https://pod.fulll.name/uploads/images/thumb_small_5f612f44a0a026b119f8.png","medium":"https://pod.fulll.name/uploads/images/thumb_medium_5f612f44a0a026b119f8.png","large":"https://pod.fulll.name/uploads/images/thumb_large_5f612f44a0a026b119f8.png"}},"o_embed_cache":{"data":{"provider_url":"http://www.youtube.com/","thumbnail_url":"http://i1.ytimg.com/vi/XrivBjlv6Mw/hqdefault.jpg","title":"Simon's Cat in 'Window Pain'","html":"","author_name":"simonscat","height":236,"thumbnail_width":480,"width":420,"version":"1.0","author_url":"http://www.youtube.com/user/simonscat","provider_name":"YouTube","type":"video","thumbnail_height":360,"trusted_endpoint_url":"http://www.youtube.com/oembed"}},"mentioned_people":[],"photos":[],"frame_name":"status","root":null,"title":"yay, new \"simon's cat\"! \r\n \r\nhttp://youtu.be/XrivBjlv6Mw \r\n#simonscat #cat","next_post":"/posts/12349/next","previous_post":"/posts/12349/previous","interactions":{"likes":[],"reshares":[],"comments_count":0,"likes_count":2,"reshares_count":1,"comments":[]}},{"id":12172,"guid":"198034364c7226a1","text":"Ex-Nokia staff to build MeeGo-based smartphones - http://www.theverge.com/2012/7/7/3143099/jolla-meego-startup-ex-nokia-employees - \r\n_A group of ex-Nokia staff and MeeGo enthusiasts has formed Jolla (Finnish for \"dinghy\"), a mobile startup with the aim of bringing new MeeGo devices to the market._ \r\nThank you, thank you so much!\r\n#nokia #meego #maemo #mer #linux #smartphone","public":true,"created_at":"2012-07-07T22:16:11Z","interacted_at":"2012-07-09T11:02:08Z","provider_display_name":null,"post_type":"StatusMessage","image_url":null,"object_url":null,"favorite":false,"nsfw":false,"author":{"id":2,"guid":"7445f9a0a6c28ebb","name":"Florian Staudacher","diaspora_id":"raven24@pod.fulll.name","avatar":{"small":"https://pod.fulll.name/uploads/images/thumb_small_5f612f44a0a026b119f8.png","medium":"https://pod.fulll.name/uploads/images/thumb_medium_5f612f44a0a026b119f8.png","large":"https://pod.fulll.name/uploads/images/thumb_large_5f612f44a0a026b119f8.png"}},"o_embed_cache":null,"mentioned_people":[],"photos":[],"frame_name":"note","root":null,"title":"Ex-Nokia staff to build MeeGo-based smartphones - http://www.theverge.com/2012/7/7/3143099/jolla-meego-startup-ex-nokia-employees - \r\n_A group of ex-Nokia staff and MeeGo enthusiasts has formed Jolla (Finnish for \"dinghy\"), a mobile startup with the aim of bringing new MeeGo devices to the market._ \r\nThank you, thank you so much!\r\n#nokia #meego #maemo #mer #linux #smartphone","next_post":"/posts/12172/next","previous_post":"/posts/12172/previous","interactions":{"likes":[],"reshares":[],"comments_count":5,"likes_count":9,"reshares_count":3,"comments":[{"id":18837,"guid":"e70d7b0bbb779547","text":"Can they join efforts with Mer and PlasmaActive? I don't really see a need to reinvent the wheel.","author":{"id":1864,"guid":"6d48d8a46633e586","name":"Shmerl","diaspora_id":"bahaltener@joindiaspora.com","avatar":{"small":"https://joindiaspora.s3.amazonaws.com/uploads/images/thumb_small_7d3b625db04eca524c67.png","medium":"https://joindiaspora.s3.amazonaws.com/uploads/images/thumb_medium_7d3b625db04eca524c67.png","large":"https://joindiaspora.s3.amazonaws.com/uploads/images/thumb_large_7d3b625db04eca524c67.png"}},"created_at":"2012-07-08T02:30:40Z"},{"id":18842,"guid":"421e799bef69f18b","text":"Looks like they do work with Mer. Good news!","author":{"id":1864,"guid":"6d48d8a46633e586","name":"Shmerl","diaspora_id":"bahaltener@joindiaspora.com","avatar":{"small":"https://joindiaspora.s3.amazonaws.com/uploads/images/thumb_small_7d3b625db04eca524c67.png","medium":"https://joindiaspora.s3.amazonaws.com/uploads/images/thumb_medium_7d3b625db04eca524c67.png","large":"https://joindiaspora.s3.amazonaws.com/uploads/images/thumb_large_7d3b625db04eca524c67.png"}},"created_at":"2012-07-08T06:02:18Z"},{"id":18944,"guid":"16320b7c377ebb5a","text":"Tizen has normal Linux stack (X.org or Wayland based), so if you build all the dependencies, you can run Qt based programs there. The downside will be, that Qt isn't included in Tizen by default so far. They promote using EFL.","author":{"id":1864,"guid":"6d48d8a46633e586","name":"Shmerl","diaspora_id":"bahaltener@joindiaspora.com","avatar":{"small":"https://joindiaspora.s3.amazonaws.com/uploads/images/thumb_small_7d3b625db04eca524c67.png","medium":"https://joindiaspora.s3.amazonaws.com/uploads/images/thumb_medium_7d3b625db04eca524c67.png","large":"https://joindiaspora.s3.amazonaws.com/uploads/images/thumb_large_7d3b625db04eca524c67.png"}},"created_at":"2012-07-09T02:59:06Z"}]}},{"id":11937,"guid":"2aad765debb1e80e","text":"to all podmins: \r\nplease read this announcement: https://groups.google.com/d/msg/diaspora-dev/kMOuJk5h_v4/5Gx1Dsib6EQJ \r\nthis hopefully provides the solution to clean the database from even the most stubborn mixed-case hashtags. \r\n#diaspora #podmin #hashtags #actionrequired","public":true,"created_at":"2012-07-06T11:56:30Z","interacted_at":"2012-07-06T16:32:38Z","provider_display_name":null,"post_type":"StatusMessage","image_url":null,"object_url":null,"favorite":false,"nsfw":false,"author":{"id":2,"guid":"7445f9a0a6c28ebb","name":"Florian Staudacher","diaspora_id":"raven24@pod.fulll.name","avatar":{"small":"https://pod.fulll.name/uploads/images/thumb_small_5f612f44a0a026b119f8.png","medium":"https://pod.fulll.name/uploads/images/thumb_medium_5f612f44a0a026b119f8.png","large":"https://pod.fulll.name/uploads/images/thumb_large_5f612f44a0a026b119f8.png"}},"o_embed_cache":null,"mentioned_people":[],"photos":[],"frame_name":"note","root":null,"title":"to all podmins: \r\nplease read this announcement: https://groups.google.com/d/msg/diaspora-dev/kMOuJk5h_v4/5Gx1Dsib6EQJ \r\nthis hopefully provides the solution to clean the database from even the most stubborn mixed-case hashtags. \r\n#diaspora #podmin #hashtags #actionrequired","next_post":"/posts/11937/next","previous_post":"/posts/11937/previous","interactions":{"likes":[],"reshares":[],"comments_count":3,"likes_count":2,"reshares_count":1,"comments":[{"id":18691,"guid":"8a907544696e4faf","text":"thanks!","author":{"id":365,"guid":"dfc51824b3a76b71","name":"Sven Fischer","diaspora_id":"strubbl@sxspora.de","avatar":{"small":"http://sxspora.de/uploads/images/thumb_small_5c105bceab19eff9b0a3.jpg","medium":"http://sxspora.de/uploads/images/thumb_medium_5c105bceab19eff9b0a3.jpg","large":"http://sxspora.de/uploads/images/thumb_large_5c105bceab19eff9b0a3.jpg"}},"created_at":"2012-07-06T14:53:56Z"},{"id":18695,"guid":"8547aa6d2738ecb4","text":"before 2589. now of course 0. I prepended the bundle command with RAILS_ENV=production DB=\"mysql\". Otherwise it didn't work because a diaspora_development does not exist.","author":{"id":365,"guid":"dfc51824b3a76b71","name":"Sven Fischer","diaspora_id":"strubbl@sxspora.de","avatar":{"small":"http://sxspora.de/uploads/images/thumb_small_5c105bceab19eff9b0a3.jpg","medium":"http://sxspora.de/uploads/images/thumb_medium_5c105bceab19eff9b0a3.jpg","large":"http://sxspora.de/uploads/images/thumb_large_5c105bceab19eff9b0a3.jpg"}},"created_at":"2012-07-06T15:10:44Z"},{"id":18704,"guid":"247b0520a7824450","text":"oh, sorry ... yeah I thought that was implied","author":{"id":2,"guid":"7445f9a0a6c28ebb","name":"Florian Staudacher","diaspora_id":"raven24@pod.fulll.name","avatar":{"small":"https://pod.fulll.name/uploads/images/thumb_small_5f612f44a0a026b119f8.png","medium":"https://pod.fulll.name/uploads/images/thumb_medium_5f612f44a0a026b119f8.png","large":"https://pod.fulll.name/uploads/images/thumb_large_5f612f44a0a026b119f8.png"}},"created_at":"2012-07-06T16:32:38Z"}]}},{"id":11934,"guid":"e75e4e4719bf9405","text":"qtruby is intriguing ... I think I'll need to build something with it ;) \r\n(writing this from a QWebView created by a ruby script ^^) \r\n#ruby #qt #programming","public":true,"created_at":"2012-07-06T11:15:04Z","interacted_at":"2012-07-06T11:15:05Z","provider_display_name":null,"post_type":"StatusMessage","image_url":null,"object_url":null,"favorite":false,"nsfw":false,"author":{"id":2,"guid":"7445f9a0a6c28ebb","name":"Florian Staudacher","diaspora_id":"raven24@pod.fulll.name","avatar":{"small":"https://pod.fulll.name/uploads/images/thumb_small_5f612f44a0a026b119f8.png","medium":"https://pod.fulll.name/uploads/images/thumb_medium_5f612f44a0a026b119f8.png","large":"https://pod.fulll.name/uploads/images/thumb_large_5f612f44a0a026b119f8.png"}},"o_embed_cache":null,"mentioned_people":[],"photos":[],"frame_name":"status","root":null,"title":"qtruby is intriguing ... I think I'll need to build something with it ;) \r\n(writing this from a QWebView created by a ruby script ^^) \r\n#ruby #qt #programming","next_post":"/posts/11934/next","previous_post":"/posts/11934/previous","interactions":{"likes":[],"reshares":[],"comments_count":0,"likes_count":0,"reshares_count":0,"comments":[]}},{"id":11782,"guid":"23416f5cd259bfcc","text":"can one or more podmins please test this pull request on a *copy* of their database? -> https://github.com/diaspora/diaspora/pull/3434 \r\nit's about hashtags mit mixed-case letters in them, and the PR ccontains some changes to the rake task that is supposed to clean those up, which should hopefully eliminate mixed-case hashtags one and for all. \r\nto verify the successful run, the rake task should complete and in your database there should be no more mixed-case hashtags. You can check this by running this statement before and after the rake task ran: \r\n\r\n SELECT * FROM tags WHERE LOWER(name) != name\r\n\r\nBefore, you should see a list of all hashtags that will be processed, and after, the query shoud return an empty result. \r\n\r\n#diaspora #podmin #pleasetest #hashtags","public":true,"created_at":"2012-07-05T10:01:50Z","interacted_at":"2012-07-08T19:18:00Z","provider_display_name":null,"post_type":"StatusMessage","image_url":null,"object_url":null,"favorite":false,"nsfw":false,"author":{"id":2,"guid":"7445f9a0a6c28ebb","name":"Florian Staudacher","diaspora_id":"raven24@pod.fulll.name","avatar":{"small":"https://pod.fulll.name/uploads/images/thumb_small_5f612f44a0a026b119f8.png","medium":"https://pod.fulll.name/uploads/images/thumb_medium_5f612f44a0a026b119f8.png","large":"https://pod.fulll.name/uploads/images/thumb_large_5f612f44a0a026b119f8.png"}},"o_embed_cache":null,"mentioned_people":[],"photos":[],"frame_name":"note","root":null,"title":"can one or more podmins please test this pull request on a *copy* of their database? -> https://github.com/diaspora/diaspora/pull/3434 \r\nit's about hashtags mit mixed-case letters in them, and the PR ccontains some changes to the rake task that is supposed to clean those up, which should hopefully eliminate mixed-case hashtags one and for all. \r\nto verify the successful run, the rake task should complete and in your database there should be no more mixed-case hashtags. You can check this by running this statement before and after the rake task ran: \r\n\r\n SELECT * FROM tags WHERE LOWER(name) != name\r\n\r\nBefore, you should see a list of all hashtags that will be processed, and after, the query shoud return an empty result. \r\n\r\n#diaspora #podmin #pleasetest #hashtags","next_post":"/posts/11782/next","previous_post":"/posts/11782/previous","interactions":{"likes":[],"reshares":[],"comments_count":6,"likes_count":2,"reshares_count":0,"comments":[{"id":18584,"guid":"217ad7b7ab5fa869","text":"Oh! Duhh! Sorry, let me merge that and try again.","author":{"id":5653,"guid":"7410329c39e6810f","name":"Hans","diaspora_id":"hans@hfase.com","avatar":{"small":"https://hfase.com/uploads/images/thumb_small_f2b2d6b041732c5f91eb.jpg","medium":"https://hfase.com/uploads/images/thumb_medium_f2b2d6b041732c5f91eb.jpg","large":"https://hfase.com/uploads/images/thumb_large_f2b2d6b041732c5f91eb.jpg"}},"created_at":"2012-07-05T10:36:46Z"},{"id":18586,"guid":"0268792e018c3ec3","text":"\"MySQL returned an empty result set (i.e. zero rows). ( Query took 0.0003 sec )\"\n\nMuch better! :D Thanks!!","author":{"id":5653,"guid":"7410329c39e6810f","name":"Hans","diaspora_id":"hans@hfase.com","avatar":{"small":"https://hfase.com/uploads/images/thumb_small_f2b2d6b041732c5f91eb.jpg","medium":"https://hfase.com/uploads/images/thumb_medium_f2b2d6b041732c5f91eb.jpg","large":"https://hfase.com/uploads/images/thumb_large_f2b2d6b041732c5f91eb.jpg"}},"created_at":"2012-07-05T10:39:12Z"},{"id":18587,"guid":"8b39d807abd7302e","text":"yeah, that looks good!","author":{"id":2,"guid":"7445f9a0a6c28ebb","name":"Florian Staudacher","diaspora_id":"raven24@pod.fulll.name","avatar":{"small":"https://pod.fulll.name/uploads/images/thumb_small_5f612f44a0a026b119f8.png","medium":"https://pod.fulll.name/uploads/images/thumb_medium_5f612f44a0a026b119f8.png","large":"https://pod.fulll.name/uploads/images/thumb_large_5f612f44a0a026b119f8.png"}},"created_at":"2012-07-05T10:44:19Z"}]}},{"id":11774,"guid":"dbcb53c18a1c40bc","text":"# Intro To Using Diaspora\\*\r\n\r\n## Federated Social Networking\r\n\r\nDiaspora\\* is a social network (socnet), similar in many ways to Facebook, #MySpace, #Orkut, and Google Plus ( #GPlus). In fact, those of us who were already using D\\* when GPlus came out were quite familiar with its layout and functionality. It was almost as if they had started developing by grabbing D\\* code and stripping out federation.\r\n\r\nWhen I say federated, I mean that there is not one central Diaspora\\* server (or server cluster) that all users belong to. Instead, there are many [Diaspora\\* servers](http://podupti.me/) to choose from, with different operators ( #podmin), privacy policies, terms of service, and so on. Federation works much like when you decide to mail someone. It doesn't matter to me whether you use Gmail, Hotmail, Ymail, or GMX. I can send messages to you because electronic mail is federated. It is the same way with Diaspora\\*. You may be on [JoinDiaspora](http://joindiaspora.com/), [Calispora](http://calispora.org/), [Diasp.org](http://diasp.org/), [Diasp.eu](http://diasp.eu/), [Serendipitous](http://ser.endipito.us/) or another pod. You can still connect to people whose accounts are on other pods.\r\n\r\nI have written before about [federation](https://joindiaspora.com/posts/1679098).\r\n\r\nThis is an advantage, because it means that you're not beholden to a single organization's policies. If you decide that you dislike the _podmin_ on Pod X, you can open an account on Pod Y instead or even set up your own pod. (_**Moving** your account is not yet implemented_, but I believe you can export your contacts and use the export to help you repopulate that list on your new pod.) If podmin X decides to shut down pod X, again you can open an account on another pod or host your own.\r\n\r\n## @ mentions\r\n\r\nHit the at-sign and the first few letters of the person's display name (it used to be the first few of the person's username, but then they decided to hide that ... personally, I wish they'd switch back)\r\n\r\nWhen you mention someone, make sure you set the privacy to include the group that person is in. There was a bug (possibly fixed) where you could mention someone in a post they weren't allowed to see. I do not believe that @ mentions work in comments yet.\r\n\r\nTwitter, where at-mentions were invented (by users and 3rd-party clients) doesn't have the problem of at-mentions affecting groups simply because it does not have any form of privacy groups.\r\n\r\n## Hashtags\r\n\r\nDiaspora\\* supports #hashtags. Because your pod intercepts them, being on a bigger pod means that clicking a hashtag will give a larger results set than if you clicked on the hashtag from a smaller pod. It is a known problem of the current federation mechanism, and is being fixed.\r\n\r\nTwitter, where hashtags were invented (by users and 3rd-party clients), doesn't have this problem only because everyone is one the same instance of T. #StatusNet, which is like a federated clone of #Twitter, also has the same issue to some degree.\r\n\r\n## Aspects\r\n\r\nPrivacy groups for posts; these were the obvious inspiration for #GPlus's circles, and they work similarly. For example, you may wish to place your boss and others that you know from work into a work aspect. You may also wish to place people you know from college, church, or other such activities into aspects specific to their roles in your life, and to place family members into aspects specific to people in that role.\r\n\r\nIf you didn't already understand aspects, consider this: if posts are wide-open, anyone who becomes a contact can see them. So if you have your boss as a contact, and you post a photo of your trip to the beach won a day you called in sick, _you may get fired for stupidity_. What you do is you put your boss into a work aspect, and only post things into that aspect that are acceptable in a work context.\r\n\r\n## Posting syntax\r\n\r\nDiaspora\\* uses something called [Markdown](http://www.simpleeditions.com/59001/markdown-an-introduction) for its posts. Most of the time, you can just post in plain text and not worry about it, but every once in a while, Markdown will distort what you've posted.\r\n\r\nMarkdown does give you the ability to _italicize_, **bold**, and otherwise decorate text and to embed links and images using a fairly simple syntax. I find, however, that I have to look up embedding every time I use it.\r\n\r\n(I personally prefer [Textile](http://textile.thresholdstate.com/). You still have to learn to use it effectively, but it more closely matches what experienced net users have grown to expect from applications like Outlook and Thunderbird. For instance, if I want bold text, surround it with single asterisks [\\*] rather than the double asterisks [\\*\\*] that Markdown requires.)\r\n\r\n## Pods\r\n\r\nA Diaspora\\* pod is the server or server cluster where your account resides. There are dozens or even hundreds of pods out there. Most of them are pretty similar in what they offer. A few offer experimental features, such as post previews, pod-only posts, or encrypted messaging. It is my hope that many of these features will be picked up by the main codebase, so that all pods will have them.\r\n\r\nYou'll rarely need to know this, but every Diaspora\\* account has an address that looks like username@podname.com. If you want people to be able to add you as a contact, publish your Diaspora\\* address. They'll be able to add you that way.\r\n\r\n## Facebook\r\n\r\nAll of the pods I have used have the ability to connect to certain external accounts, such as Twitter and #Facebook. This means that you can post from D\\* to FB or T. You don't have to abandon your \"friends\" on other #socnets because you join D\\*.\r\n\r\nIf you read many online articles, you will come across some that seem to believe that Diaspora\\*'s purpose is to become a Facebook-killer. Do not believe them. If and when people tire of Facebook, it will be because of something that FB does, not because socnet X is better. If you look at D\\* as a substitute for Facebook, it will be like a meat-eater who tries to replace meat with soy-based meat substitutes. You won't like it. Instead, I recommend that you get to know people who are on D\\* and that you invite your existing contacts, but that you **enjoy D\\* for its own value**. If you find that it then makes FB unnecessary, that is good. If, on the other hand, you still want to keep your FB account, that is also good.\r\n\r\n## Controversies\r\n\r\nThere are occasional squabbles over the directions the project is taking. Unlike the squabbles at Twitter, which took place behind closed doors and resulted in a number of highly-skilled people leaving and the recently announced restrictions on how client applications can display Twitter-sourced content, Diaspora\\*'s squabbles tend to happen in public. My advice is simple: stay out of the squabbles, find your own philosophical point of view, and support this and any other project that agrees with that point of view. If the time comes when this or any other project no longer fits your POV, leave quietly.\r\n\r\nWhen I felt that GPlus was hostile to my POV, I closed my accounts. When I felt that Facebook was hostile to my POV, I closed my account. I do not go around trash-talking either project, or assuming that anyone in said projects is intentionally \"evil,\" and I would not recommend doing that to D\\* or any other project.\r\n\r\n## Future\r\n\r\nAt some point in the future, the Diaspora\\* developers will be changing the federation protocol. Federation is what enables a user on Pod X to interact with users on pods Y, Z, etc. They are working to improve scalability (ability to handle more content posted from more users in the same period of time) and content dispersion (ability for content to travel between a wider number of pods seamlessly). It is a tough task. If you are interested in #Ruby programming or Ruby on Rails ( #RoR ), I would encourage you to get involved.\r\n\r\nThey are also planning to make D\\* a far more visual-oriented socnet. That means that posts with images, graphics, and video will be far more interesting, and will be displayed in a manner that caters to those things. There is an experimental pod where they test out many of the visual designs that may make it into the D* codebase. I will not link it here, because people may misunderstand that it is experimental and not really intended to be your home pod.\r\n\r\nIf you're interested in the technical side and the future directions, they have a moderated and directed code-chat on IRC every (other?) Thursday at 10AM Pacific in the room #diaspora-meeting on Freenode. Sean can jump in on the comments to correct me on this.\r\n\r\n## Conclusion\r\n\r\nThis is long, but I think this is a good intro to Diaspora\\*. I wish there had been someone who could write something like this when I joined. I should also put in a disclaimer. This is my personal opinion, and not the official stance of any podmin or of the Diaspora\\* developers. You are free to disagree, but please start a new thread for it. This is posted in the hope that people who newly join Diaspora\\* will get a head start.\r\n\r\nThere are a number of tutorials at [Diasporal](http://diasporial.com/). I would encourage you to visit the site and check them out. If you are a blogger, or if you write for a magazine (online or dead-tree), I would encourage you to write about Diaspora\\* once you've taken some time to get to know the place.","public":true,"created_at":"2012-07-05T09:37:15Z","interacted_at":"2012-07-05T09:37:15Z","provider_display_name":null,"post_type":"Reshare","image_url":null,"object_url":null,"favorite":false,"nsfw":false,"author":{"id":2,"guid":"7445f9a0a6c28ebb","name":"Florian Staudacher","diaspora_id":"raven24@pod.fulll.name","avatar":{"small":"https://pod.fulll.name/uploads/images/thumb_small_5f612f44a0a026b119f8.png","medium":"https://pod.fulll.name/uploads/images/thumb_medium_5f612f44a0a026b119f8.png","large":"https://pod.fulll.name/uploads/images/thumb_large_5f612f44a0a026b119f8.png"}},"o_embed_cache":null,"mentioned_people":[],"photos":[],"frame_name":"status","root":{"id":11730,"guid":"57288b4adf721900","text":"# Intro To Using Diaspora\\*\r\n\r\n## Federated Social Networking\r\n\r\nDiaspora\\* is a social network (socnet), similar in many ways to Facebook, #MySpace, #Orkut, and Google Plus ( #GPlus). In fact, those of us who were already using D\\* when GPlus came out were quite familiar with its layout and functionality. It was almost as if they had started developing by grabbing D\\* code and stripping out federation.\r\n\r\nWhen I say federated, I mean that there is not one central Diaspora\\* server (or server cluster) that all users belong to. Instead, there are many [Diaspora\\* servers](http://podupti.me/) to choose from, with different operators ( #podmin), privacy policies, terms of service, and so on. Federation works much like when you decide to mail someone. It doesn't matter to me whether you use Gmail, Hotmail, Ymail, or GMX. I can send messages to you because electronic mail is federated. It is the same way with Diaspora\\*. You may be on [JoinDiaspora](http://joindiaspora.com/), [Calispora](http://calispora.org/), [Diasp.org](http://diasp.org/), [Diasp.eu](http://diasp.eu/), [Serendipitous](http://ser.endipito.us/) or another pod. You can still connect to people whose accounts are on other pods.\r\n\r\nI have written before about [federation](https://joindiaspora.com/posts/1679098).\r\n\r\nThis is an advantage, because it means that you're not beholden to a single organization's policies. If you decide that you dislike the _podmin_ on Pod X, you can open an account on Pod Y instead or even set up your own pod. (_**Moving** your account is not yet implemented_, but I believe you can export your contacts and use the export to help you repopulate that list on your new pod.) If podmin X decides to shut down pod X, again you can open an account on another pod or host your own.\r\n\r\n## @ mentions\r\n\r\nHit the at-sign and the first few letters of the person's display name (it used to be the first few of the person's username, but then they decided to hide that ... personally, I wish they'd switch back)\r\n\r\nWhen you mention someone, make sure you set the privacy to include the group that person is in. There was a bug (possibly fixed) where you could mention someone in a post they weren't allowed to see. I do not believe that @ mentions work in comments yet.\r\n\r\nTwitter, where at-mentions were invented (by users and 3rd-party clients) doesn't have the problem of at-mentions affecting groups simply because it does not have any form of privacy groups.\r\n\r\n## Hashtags\r\n\r\nDiaspora\\* supports #hashtags. Because your pod intercepts them, being on a bigger pod means that clicking a hashtag will give a larger results set than if you clicked on the hashtag from a smaller pod. It is a known problem of the current federation mechanism, and is being fixed.\r\n\r\nTwitter, where hashtags were invented (by users and 3rd-party clients), doesn't have this problem only because everyone is one the same instance of T. #StatusNet, which is like a federated clone of #Twitter, also has the same issue to some degree.\r\n\r\n## Aspects\r\n\r\nPrivacy groups for posts; these were the obvious inspiration for #GPlus's circles, and they work similarly. For example, you may wish to place your boss and others that you know from work into a work aspect. You may also wish to place people you know from college, church, or other such activities into aspects specific to their roles in your life, and to place family members into aspects specific to people in that role.\r\n\r\nIf you didn't already understand aspects, consider this: if posts are wide-open, anyone who becomes a contact can see them. So if you have your boss as a contact, and you post a photo of your trip to the beach won a day you called in sick, _you may get fired for stupidity_. What you do is you put your boss into a work aspect, and only post things into that aspect that are acceptable in a work context.\r\n\r\n## Posting syntax\r\n\r\nDiaspora\\* uses something called [Markdown](http://www.simpleeditions.com/59001/markdown-an-introduction) for its posts. Most of the time, you can just post in plain text and not worry about it, but every once in a while, Markdown will distort what you've posted.\r\n\r\nMarkdown does give you the ability to _italicize_, **bold**, and otherwise decorate text and to embed links and images using a fairly simple syntax. I find, however, that I have to look up embedding every time I use it.\r\n\r\n(I personally prefer [Textile](http://textile.thresholdstate.com/). You still have to learn to use it effectively, but it more closely matches what experienced net users have grown to expect from applications like Outlook and Thunderbird. For instance, if I want bold text, surround it with single asterisks [\\*] rather than the double asterisks [\\*\\*] that Markdown requires.)\r\n\r\n## Pods\r\n\r\nA Diaspora\\* pod is the server or server cluster where your account resides. There are dozens or even hundreds of pods out there. Most of them are pretty similar in what they offer. A few offer experimental features, such as post previews, pod-only posts, or encrypted messaging. It is my hope that many of these features will be picked up by the main codebase, so that all pods will have them.\r\n\r\nYou'll rarely need to know this, but every Diaspora\\* account has an address that looks like username@podname.com. If you want people to be able to add you as a contact, publish your Diaspora\\* address. They'll be able to add you that way.\r\n\r\n## Facebook\r\n\r\nAll of the pods I have used have the ability to connect to certain external accounts, such as Twitter and #Facebook. This means that you can post from D\\* to FB or T. You don't have to abandon your \"friends\" on other #socnets because you join D\\*.\r\n\r\nIf you read many online articles, you will come across some that seem to believe that Diaspora\\*'s purpose is to become a Facebook-killer. Do not believe them. If and when people tire of Facebook, it will be because of something that FB does, not because socnet X is better. If you look at D\\* as a substitute for Facebook, it will be like a meat-eater who tries to replace meat with soy-based meat substitutes. You won't like it. Instead, I recommend that you get to know people who are on D\\* and that you invite your existing contacts, but that you **enjoy D\\* for its own value**. If you find that it then makes FB unnecessary, that is good. If, on the other hand, you still want to keep your FB account, that is also good.\r\n\r\n## Controversies\r\n\r\nThere are occasional squabbles over the directions the project is taking. Unlike the squabbles at Twitter, which took place behind closed doors and resulted in a number of highly-skilled people leaving and the recently announced restrictions on how client applications can display Twitter-sourced content, Diaspora\\*'s squabbles tend to happen in public. My advice is simple: stay out of the squabbles, find your own philosophical point of view, and support this and any other project that agrees with that point of view. If the time comes when this or any other project no longer fits your POV, leave quietly.\r\n\r\nWhen I felt that GPlus was hostile to my POV, I closed my accounts. When I felt that Facebook was hostile to my POV, I closed my account. I do not go around trash-talking either project, or assuming that anyone in said projects is intentionally \"evil,\" and I would not recommend doing that to D\\* or any other project.\r\n\r\n## Future\r\n\r\nAt some point in the future, the Diaspora\\* developers will be changing the federation protocol. Federation is what enables a user on Pod X to interact with users on pods Y, Z, etc. They are working to improve scalability (ability to handle more content posted from more users in the same period of time) and content dispersion (ability for content to travel between a wider number of pods seamlessly). It is a tough task. If you are interested in #Ruby programming or Ruby on Rails ( #RoR ), I would encourage you to get involved.\r\n\r\nThey are also planning to make D\\* a far more visual-oriented socnet. That means that posts with images, graphics, and video will be far more interesting, and will be displayed in a manner that caters to those things. There is an experimental pod where they test out many of the visual designs that may make it into the D* codebase. I will not link it here, because people may misunderstand that it is experimental and not really intended to be your home pod.\r\n\r\nIf you're interested in the technical side and the future directions, they have a moderated and directed code-chat on IRC every (other?) Thursday at 10AM Pacific in the room #diaspora-meeting on Freenode. Sean can jump in on the comments to correct me on this.\r\n\r\n## Conclusion\r\n\r\nThis is long, but I think this is a good intro to Diaspora\\*. I wish there had been someone who could write something like this when I joined. I should also put in a disclaimer. This is my personal opinion, and not the official stance of any podmin or of the Diaspora\\* developers. You are free to disagree, but please start a new thread for it. This is posted in the hope that people who newly join Diaspora\\* will get a head start.\r\n\r\nThere are a number of tutorials at [Diasporal](http://diasporial.com/). I would encourage you to visit the site and check them out. If you are a blogger, or if you write for a magazine (online or dead-tree), I would encourage you to write about Diaspora\\* once you've taken some time to get to know the place.","public":true,"created_at":"2012-07-04T23:41:33Z","interacted_at":"2012-07-05T04:21:21Z","provider_display_name":null,"post_type":"StatusMessage","image_url":null,"object_url":null,"favorite":false,"nsfw":false,"author":{"id":5508,"guid":"25d1ca8dd064f3dd","name":"lnxwalt@calispora.org","diaspora_id":"lnxwalt@calispora.org","avatar":{"small":"https://pod.fulll.name/images/user/default.png","medium":"https://pod.fulll.name/images/user/default.png","large":"https://pod.fulll.name/images/user/default.png"}},"o_embed_cache":null,"mentioned_people":[],"photos":[],"frame_name":"note","root":null,"title":"# Intro To Using Diaspora\\*\r\n\r\n## Federated Social Networking\r\n\r\nDiaspora\\* is a social network (socnet), similar in many ways to Facebook, #MySpace, #Orkut, and Google Plus ( #GPlus). In fact, those of us who were already using D\\* when GPlus came out were quite familiar with its layout and functionality. It was almost as if they had started developing by grabbing D\\* code and stripping out federation.\r\n\r\nWhen I say federated, I mean that there is not one central Diaspora\\* server (or server cluster) that all users belong to. Instead, there are many [Diaspora\\* servers](http://podupti.me/) to choose from, with different operators ( #podmin), privacy policies, terms of service, and so on. Federation works much like when you decide to mail someone. It doesn't matter to me whether you use Gmail, Hotmail, Ymail, or GMX. I can send messages to you because electronic mail is federated. It is the same way with Diaspora\\*. You may be on [JoinDiaspora](http://joindiaspora.com/), [Calispora](http://calispora.org/), [Diasp.org](http://diasp.org/), [Diasp.eu](http://diasp.eu/), [Serendipitous](http://ser.endipito.us/) or another pod. You can still connect to people whose accounts are on other pods.\r\n\r\nI have written before about [federation](https://joindiaspora.com/posts/1679098).\r\n\r\nThis is an advantage, because it means that you're not beholden to a single organization's policies. If you decide that you dislike the _podmin_ on Pod X, you can open an account on Pod Y instead or even set up your own pod. (_**Moving** your account is not yet implemented_, but I believe you can export your contacts and use the export to help you repopulate that list on your new pod.) If podmin X decides to shut down pod X, again you can open an account on another pod or host your own.\r\n\r\n## @ mentions\r\n\r\nHit the at-sign and the first few letters of the person's display name (it used to be the first few of the person's username, but then they decided to hide that ... personally, I wish they'd switch back)\r\n\r\nWhen you mention someone, make sure you set the privacy to include the group that person is in. There was a bug (possibly fixed) where you could mention someone in a post they weren't allowed to see. I do not believe that @ mentions work in comments yet.\r\n\r\nTwitter, where at-mentions were invented (by users and 3rd-party clients) doesn't have the problem of at-mentions affecting groups simply because it does not have any form of privacy groups.\r\n\r\n## Hashtags\r\n\r\nDiaspora\\* supports #hashtags. Because your pod intercepts them, being on a bigger pod means that clicking a hashtag will give a larger results set than if you clicked on the hashtag from a smaller pod. It is a known problem of the current federation mechanism, and is being fixed.\r\n\r\nTwitter, where hashtags were invented (by users and 3rd-party clients), doesn't have this problem only because everyone is one the same instance of T. #StatusNet, which is like a federated clone of #Twitter, also has the same issue to some degree.\r\n\r\n## Aspects\r\n\r\nPrivacy groups for posts; these were the obvious inspiration for #GPlus's circles, and they work similarly. For example, you may wish to place your boss and others that you know from work into a work aspect. You may also wish to place people you know from college, church, or other such activities into aspects specific to their roles in your life, and to place family members into aspects specific to people in that role.\r\n\r\nIf you didn't already understand aspects, consider this: if posts are wide-open, anyone who becomes a contact can see them. So if you have your boss as a contact, and you post a photo of your trip to the beach won a day you called in sick, _you may get fired for stupidity_. What you do is you put your boss into a work aspect, and only post things into that aspect that are acceptable in a work context.\r\n\r\n## Posting syntax\r\n\r\nDiaspora\\* uses something called [Markdown](http://www.simpleeditions.com/59001/markdown-an-introduction) for its posts. Most of the time, you can just post in plain text and not worry about it, but every once in a while, Markdown will distort what you've posted.\r\n\r\nMarkdown does give you the ability to _italicize_, **bold**, and otherwise decorate text and to embed links and images using a fairly simple syntax. I find, however, that I have to look up embedding every time I use it.\r\n\r\n(I personally prefer [Textile](http://textile.thresholdstate.com/). You still have to learn to use it effectively, but it more closely matches what experienced net users have grown to expect from applications like Outlook and Thunderbird. For instance, if I want bold text, surround it with single asterisks [\\*] rather than the double asterisks [\\*\\*] that Markdown requires.)\r\n\r\n## Pods\r\n\r\nA Diaspora\\* pod is the server or server cluster where your account resides. There are dozens or even hundreds of pods out there. Most of them are pretty similar in what they offer. A few offer experimental features, such as post previews, pod-only posts, or encrypted messaging. It is my hope that many of these features will be picked up by the main codebase, so that all pods will have them.\r\n\r\nYou'll rarely need to know this, but every Diaspora\\* account has an address that looks like username@podname.com. If you want people to be able to add you as a contact, publish your Diaspora\\* address. They'll be able to add you that way.\r\n\r\n## Facebook\r\n\r\nAll of the pods I have used have the ability to connect to certain external accounts, such as Twitter and #Facebook. This means that you can post from D\\* to FB or T. You don't have to abandon your \"friends\" on other #socnets because you join D\\*.\r\n\r\nIf you read many online articles, you will come across some that seem to believe that Diaspora\\*'s purpose is to become a Facebook-killer. Do not believe them. If and when people tire of Facebook, it will be because of something that FB does, not because socnet X is better. If you look at D\\* as a substitute for Facebook, it will be like a meat-eater who tries to replace meat with soy-based meat substitutes. You won't like it. Instead, I recommend that you get to know people who are on D\\* and that you invite your existing contacts, but that you **enjoy D\\* for its own value**. If you find that it then makes FB unnecessary, that is good. If, on the other hand, you still want to keep your FB account, that is also good.\r\n\r\n## Controversies\r\n\r\nThere are occasional squabbles over the directions the project is taking. Unlike the squabbles at Twitter, which took place behind closed doors and resulted in a number of highly-skilled people leaving and the recently announced restrictions on how client applications can display Twitter-sourced content, Diaspora\\*'s squabbles tend to happen in public. My advice is simple: stay out of the squabbles, find your own philosophical point of view, and support this and any other project that agrees with that point of view. If the time comes when this or any other project no longer fits your POV, leave quietly.\r\n\r\nWhen I felt that GPlus was hostile to my POV, I closed my accounts. When I felt that Facebook was hostile to my POV, I closed my account. I do not go around trash-talking either project, or assuming that anyone in said projects is intentionally \"evil,\" and I would not recommend doing that to D\\* or any other project.\r\n\r\n## Future\r\n\r\nAt some point in the future, the Diaspora\\* developers will be changing the federation protocol. Federation is what enables a user on Pod X to interact with users on pods Y, Z, etc. They are working to improve scalability (ability to handle more content posted from more users in the same period of time) and content dispersion (ability for content to travel between a wider number of pods seamlessly). It is a tough task. If you are interested in #Ruby programming or Ruby on Rails ( #RoR ), I would encourage you to get involved.\r\n\r\nThey are also planning to make D\\* a far more visual-oriented socnet. That means that posts with images, graphics, and video will be far more interesting, and will be displayed in a manner that caters to those things. There is an experimental pod where they test out many of the visual designs that may make it into the D* codebase. I will not link it here, because people may misunderstand that it is experimental and not really intended to be your home pod.\r\n\r\nIf you're interested in the technical side and the future directions, they have a moderated and directed code-chat on IRC every (other?) Thursday at 10AM Pacific in the room #diaspora-meeting on Freenode. Sean can jump in on the comments to correct me on this.\r\n\r\n## Conclusion\r\n\r\nThis is long, but I think this is a good intro to Diaspora\\*. I wish there had been someone who could write something like this when I joined. I should also put in a disclaimer. This is my personal opinion, and not the official stance of any podmin or of the Diaspora\\* developers. You are free to disagree, but please start a new thread for it. This is posted in the hope that people who newly join Diaspora\\* will get a head start.\r\n\r\nThere are a number of tutorials at [Diasporal](http://diasporial.com/). I would encourage you to visit the site and check them out. If you are a blogger, or if you write for a magazine (online or dead-tree), I would encourage you to write about Diaspora\\* once you've taken some time to get to know the place.","next_post":"/posts/11730/next","previous_post":"/posts/11730/previous","interactions":{"likes":[],"reshares":[],"comments_count":0,"likes_count":0,"reshares_count":4}},"title":"A post from Florian Staudacher","next_post":"/posts/11774/next","previous_post":"/posts/11774/previous","interactions":{"likes":[],"reshares":[],"comments_count":0,"likes_count":0,"reshares_count":0,"comments":[]}},{"id":11725,"guid":"909471c6070243be","text":"If you think you know of a #Diaspora #Bug please remember to be as specific as possible when describing it so we can help!!","public":true,"created_at":"2012-07-04T23:29:43Z","interacted_at":"2012-07-04T23:29:43Z","provider_display_name":null,"post_type":"Reshare","image_url":null,"object_url":null,"favorite":false,"nsfw":false,"author":{"id":2,"guid":"7445f9a0a6c28ebb","name":"Florian Staudacher","diaspora_id":"raven24@pod.fulll.name","avatar":{"small":"https://pod.fulll.name/uploads/images/thumb_small_5f612f44a0a026b119f8.png","medium":"https://pod.fulll.name/uploads/images/thumb_medium_5f612f44a0a026b119f8.png","large":"https://pod.fulll.name/uploads/images/thumb_large_5f612f44a0a026b119f8.png"}},"o_embed_cache":null,"mentioned_people":[],"photos":[],"frame_name":"status","root":{"id":11718,"guid":"c1770c590b097c28","text":"If you think you know of a #Diaspora #Bug please remember to be as specific as possible when describing it so we can help!!","public":true,"created_at":"2012-07-04T22:00:49Z","interacted_at":"2012-07-05T08:19:07Z","provider_display_name":null,"post_type":"StatusMessage","image_url":null,"object_url":null,"favorite":false,"nsfw":false,"author":{"id":5653,"guid":"7410329c39e6810f","name":"Hans","diaspora_id":"hans@hfase.com","avatar":{"small":"https://hfase.com/uploads/images/thumb_small_f2b2d6b041732c5f91eb.jpg","medium":"https://hfase.com/uploads/images/thumb_medium_f2b2d6b041732c5f91eb.jpg","large":"https://hfase.com/uploads/images/thumb_large_f2b2d6b041732c5f91eb.jpg"}},"o_embed_cache":null,"mentioned_people":[],"photos":[],"frame_name":"status","root":null,"title":"If you think you know of a #Diaspora #Bug please remember to be as specific as possible when describing it so we can help!!","next_post":"/posts/11718/next","previous_post":"/posts/11718/previous","interactions":{"likes":[],"reshares":[{"reshare":{"actor_url":null,"author_id":2,"comments_count":0,"created_at":"2012-07-04T23:29:43Z","diaspora_handle":"raven24@pod.fulll.name","favorite":false,"frame_name":null,"guid":"909471c6070243be","id":11725,"image_height":null,"image_url":null,"image_width":null,"interacted_at":"2012-07-04T23:29:43Z","likes_count":0,"o_embed_cache_id":null,"objectId":null,"object_url":null,"pending":false,"processed_image":null,"provider_display_name":null,"public":true,"random_string":null,"remote_photo_name":null,"remote_photo_path":null,"reshares_count":0,"root_guid":"c1770c590b097c28","status_message_guid":null,"text":null,"unprocessed_image":null,"updated_at":"2012-07-04T23:29:43Z"}}],"comments_count":0,"likes_count":2,"reshares_count":2}},"title":"A post from Florian Staudacher","next_post":"/posts/11725/next","previous_post":"/posts/11725/previous","interactions":{"likes":[],"reshares":[],"comments_count":0,"likes_count":0,"reshares_count":0,"comments":[]}}] \ No newline at end of file +[{"id":15086,"guid":"198095988ad26f21","text":"test of #left4dead on #linux results in \"faster zombies\" http://is.gd/uHeUC6 with linux outperforming windows","public":true,"created_at":"2012-08-02T22:13:16Z","interacted_at":"2012-08-03T15:02:59Z","provider_display_name":null,"post_type":"Reshare","nsfw":false,"author":{"id":2,"guid":"7445f9a0a6c28ebb","name":"Florian Staudacher","diaspora_id":"raven24@pod.fulll.name","avatar":{"small":"https://pod.fulll.name/uploads/images/thumb_small_5f612f44a0a026b119f8.png","medium":"https://pod.fulll.name/uploads/images/thumb_medium_5f612f44a0a026b119f8.png","large":"https://pod.fulll.name/uploads/images/thumb_large_5f612f44a0a026b119f8.png"}},"o_embed_cache":null,"mentioned_people":[],"photos":[],"root":{"id":15028,"guid":"1b2a98db23582947","text":"test of #left4dead on #linux results in \"faster zombies\" http://is.gd/uHeUC6 with linux outperforming windows","public":true,"created_at":"2012-08-02T14:25:56Z","interacted_at":"2012-08-02T21:54:53Z","provider_display_name":null,"post_type":"StatusMessage","nsfw":false,"author":{"id":1769,"guid":"a2f9a3a7cb3dcd5a","name":"el [spare pope] olmo","diaspora_id":"el_olmo@pod.fulll.name","avatar":{"small":"https://pod.fulll.name/uploads/images/thumb_small_343f6520778765c4b3f9.jpg","medium":"https://pod.fulll.name/uploads/images/thumb_medium_343f6520778765c4b3f9.jpg","large":"https://pod.fulll.name/uploads/images/thumb_large_343f6520778765c4b3f9.jpg"}},"o_embed_cache":null,"mentioned_people":[],"photos":[],"root":null,"title":"test of #left4dead on #linux results in \"faster zombies\" http://is.gd/uHeUC6 with linux outperforming windows","interactions":{"likes":[{"id":32638,"guid":"b2c1e789b1eec9ea","author":{"id":2,"guid":"7445f9a0a6c28ebb","name":"Florian Staudacher","diaspora_id":"raven24@pod.fulll.name","avatar":{"small":"https://pod.fulll.name/uploads/images/thumb_small_5f612f44a0a026b119f8.png","medium":"https://pod.fulll.name/uploads/images/thumb_medium_5f612f44a0a026b119f8.png","large":"https://pod.fulll.name/uploads/images/thumb_large_5f612f44a0a026b119f8.png"}},"created_at":"2012-08-02T21:54:53Z"}],"reshares":[{"reshare":{"author_id":2,"comments_count":0,"created_at":"2012-08-02T22:13:16Z","diaspora_handle":"raven24@pod.fulll.name","guid":"198095988ad26f21","id":15086,"interacted_at":"2012-08-03T15:02:59Z","likes_count":2,"o_embed_cache_id":null,"provider_display_name":null,"public":true,"reshares_count":0,"root_guid":"1b2a98db23582947","text":null,"updated_at":"2012-08-03T15:02:59Z"}}],"comments_count":0,"likes_count":6,"reshares_count":1}},"title":"A post from Florian Staudacher","interactions":{"likes":[],"reshares":[],"comments_count":0,"likes_count":2,"reshares_count":0,"comments":[]}},{"id":14755,"guid":"0ffef04549e81bfa","text":"... in case you ever need the network device name, ip and mac address, here you go: \r\nhttps://gist.github.com/3202188\r\n\r\n(uses ifconfig, grep and sed with some regular expression magic) \r\n#bash #script #network #ip #grep #sed #regexp #linux","public":true,"created_at":"2012-07-29T22:28:17Z","interacted_at":"2012-08-01T18:01:49Z","provider_display_name":null,"post_type":"StatusMessage","nsfw":false,"author":{"id":2,"guid":"7445f9a0a6c28ebb","name":"Florian Staudacher","diaspora_id":"raven24@pod.fulll.name","avatar":{"small":"https://pod.fulll.name/uploads/images/thumb_small_5f612f44a0a026b119f8.png","medium":"https://pod.fulll.name/uploads/images/thumb_medium_5f612f44a0a026b119f8.png","large":"https://pod.fulll.name/uploads/images/thumb_large_5f612f44a0a026b119f8.png"}},"o_embed_cache":null,"mentioned_people":[],"photos":[],"root":null,"title":"... in case you ever need the network device name, ip and mac address, here you go: \r\nhttps://gist.github.com/3202188\r\n\r\n(uses ifconfig, grep and sed with some regular expression magic) \r\n#bash #script #network #ip #grep #sed #regexp #linux","interactions":{"likes":[],"reshares":[],"comments_count":8,"likes_count":4,"reshares_count":0,"comments":[{"id":20912,"guid":"ba86c52ca4d293c4","text":"It only shows network devices named eth* and doesn't work with localized versions of ifconfig in non-english language environments","author":{"id":6243,"guid":"c7bf295dae900b7a","name":"Florian Diesch","diaspora_id":"diesch@joindiaspora.com","avatar":{"small":"https://joindiaspora.s3.amazonaws.com/uploads/images/thumb_small_7f090bd1002004896464.png","medium":"https://joindiaspora.s3.amazonaws.com/uploads/images/thumb_medium_7f090bd1002004896464.png","large":"https://joindiaspora.s3.amazonaws.com/uploads/images/thumb_large_7f090bd1002004896464.png"}},"created_at":"2012-07-30T02:33:06Z"},{"id":21012,"guid":"81fc5d869de5ea05","text":"For now, I only need it just the way it is (in my collection of VM management scripts), but feel free to change it to work with whatever version or language of `ifconfig` you need. I leave that \"as an exercise to the reader\" ... it's always a good time to start learning `sed` regular expressions \n;)","author":{"id":2,"guid":"7445f9a0a6c28ebb","name":"Florian Staudacher","diaspora_id":"raven24@pod.fulll.name","avatar":{"small":"https://pod.fulll.name/uploads/images/thumb_small_5f612f44a0a026b119f8.png","medium":"https://pod.fulll.name/uploads/images/thumb_medium_5f612f44a0a026b119f8.png","large":"https://pod.fulll.name/uploads/images/thumb_large_5f612f44a0a026b119f8.png"}},"created_at":"2012-07-31T01:51:24Z"},{"id":21164,"guid":"d74aac53420cd66f","text":"[inxi](https://code.google.com/p/inxi/)","author":{"id":3920,"guid":"b636315dc6f90ece","name":"Kiridesce","diaspora_id":"iridesce@kosmospora.net","avatar":{"small":"https://kosmospora.net/uploads/images/thumb_small_7b3c16e2107449bf9717.jpeg","medium":"https://kosmospora.net/uploads/images/thumb_medium_7b3c16e2107449bf9717.jpeg","large":"https://kosmospora.net/uploads/images/thumb_large_7b3c16e2107449bf9717.jpeg"}},"created_at":"2012-08-01T18:01:49Z"}]}},{"id":14514,"guid":"c6b5e0a20421d719","text":"lol! \r\nhttp://youtu.be/6RrpGgaT5kk\r\n\r\n#acapella #movie #dub","public":true,"created_at":"2012-07-27T14:09:31Z","interacted_at":"2012-07-28T21:25:56Z","provider_display_name":null,"post_type":"StatusMessage","nsfw":false,"author":{"id":2,"guid":"7445f9a0a6c28ebb","name":"Florian Staudacher","diaspora_id":"raven24@pod.fulll.name","avatar":{"small":"https://pod.fulll.name/uploads/images/thumb_small_5f612f44a0a026b119f8.png","medium":"https://pod.fulll.name/uploads/images/thumb_medium_5f612f44a0a026b119f8.png","large":"https://pod.fulll.name/uploads/images/thumb_large_5f612f44a0a026b119f8.png"}},"o_embed_cache":{"data":{"provider_url":"http://www.youtube.com/","thumbnail_url":"http://i3.ytimg.com/vi/6RrpGgaT5kk/hqdefault.jpg","title":"'The Matrix' Lobby Scene with A capella Multitrack - Matt Mulholland","html":"","author_name":"mattmulholland26","height":236,"thumbnail_width":480,"width":420,"version":"1.0","author_url":"http://www.youtube.com/user/mattmulholland26","provider_name":"YouTube","type":"video","thumbnail_height":360,"trusted_endpoint_url":"http://www.youtube.com/oembed"}},"mentioned_people":[],"photos":[],"root":null,"title":"lol! \r\nhttp://youtu.be/6RrpGgaT5kk\r\n\r\n#acapella #movie #dub","interactions":{"likes":[],"reshares":[],"comments_count":1,"likes_count":2,"reshares_count":0,"comments":[{"id":20833,"guid":"3c2d21708b6cfa29","text":"Inception Trailer A Capella Re-Dub: http://www.youtube.com/watch?v=d2yD4yDsiP4","author":{"id":2896,"guid":"24e82915d58368fe","name":"Alexey Andreyev","diaspora_id":"yetanotherandreyev@diasp.org","avatar":{"small":"https://diasp.org/uploads/images/thumb_small_9f29c5326741a32889fa.jpg","medium":"https://diasp.org/uploads/images/thumb_medium_9f29c5326741a32889fa.jpg","large":"https://diasp.org/uploads/images/thumb_large_9f29c5326741a32889fa.jpg"}},"created_at":"2012-07-28T21:25:56Z"}]}},{"id":14113,"guid":"4404d1bb88d36735","text":"Keep Calm and use #Linux
[ ![Image](http://farm5.staticflickr.com/4146/5051936082_3eb4a9f065_b.jpg) ](http://goo.gl/HSS18)
","public":true,"created_at":"2012-07-23T15:50:00Z","interacted_at":"2012-07-24T15:16:25Z","provider_display_name":null,"post_type":"Reshare","nsfw":false,"author":{"id":2,"guid":"7445f9a0a6c28ebb","name":"Florian Staudacher","diaspora_id":"raven24@pod.fulll.name","avatar":{"small":"https://pod.fulll.name/uploads/images/thumb_small_5f612f44a0a026b119f8.png","medium":"https://pod.fulll.name/uploads/images/thumb_medium_5f612f44a0a026b119f8.png","large":"https://pod.fulll.name/uploads/images/thumb_large_5f612f44a0a026b119f8.png"}},"o_embed_cache":null,"mentioned_people":[],"photos":[],"root":{"id":14099,"guid":"d1970bb173aae310","text":"Keep Calm and use #Linux
[ ![Image](http://farm5.staticflickr.com/4146/5051936082_3eb4a9f065_b.jpg) ](http://goo.gl/HSS18)
","public":true,"created_at":"2012-07-23T13:12:51Z","interacted_at":"2012-07-23T13:37:24Z","provider_display_name":null,"post_type":"StatusMessage","nsfw":false,"author":{"id":175,"guid":"4d11bd252c174338f2002a4c","name":"\u24b6\u24c5\u24c4\u24c1\u24c4\u24c3\u24be\u24c8 \u2301 \u24b6\u24c5\u24bd\u24c7\u24c4\u24b9\u24be\u24c8\u24be\u24b6","diaspora_id":"apolonisaphrodisia@joindiaspora.com","avatar":{"small":"https://joindiaspora.s3.amazonaws.com/uploads/images/thumb_small_8107d3419ac23bd16253.gif","medium":"https://joindiaspora.s3.amazonaws.com/uploads/images/thumb_medium_8107d3419ac23bd16253.gif","large":"https://pod.fulll.name/images/user/default.png"}},"o_embed_cache":null,"mentioned_people":[],"photos":[],"root":null,"title":"Keep Calm and use #Linux
[ ![Image](http://farm5.staticflickr.com/4146/5051936082_3eb4a9f065_b.jpg) ](http://goo.gl/HSS18)
","interactions":{"likes":[],"reshares":[],"comments_count":0,"likes_count":0,"reshares_count":2}},"title":"A post from Florian Staudacher","interactions":{"likes":[],"reshares":[],"comments_count":0,"likes_count":2,"reshares_count":1,"comments":[]}},{"id":14110,"guid":"bb89c419e60fd801","text":"awesome #youtube #video \r\nhttp://youtu.be/daVDrGsaDME\r\n\r\n#car #engine #stopmotion","public":true,"created_at":"2012-07-23T15:05:36Z","interacted_at":"2012-07-24T12:48:48Z","provider_display_name":null,"post_type":"StatusMessage","nsfw":false,"author":{"id":2,"guid":"7445f9a0a6c28ebb","name":"Florian Staudacher","diaspora_id":"raven24@pod.fulll.name","avatar":{"small":"https://pod.fulll.name/uploads/images/thumb_small_5f612f44a0a026b119f8.png","medium":"https://pod.fulll.name/uploads/images/thumb_medium_5f612f44a0a026b119f8.png","large":"https://pod.fulll.name/uploads/images/thumb_large_5f612f44a0a026b119f8.png"}},"o_embed_cache":{"data":{"provider_url":"http://www.youtube.com/","thumbnail_url":"http://i1.ytimg.com/vi/daVDrGsaDME/hqdefault.jpg","title":"11 Months, 3000 pictures and a lot of coffee.","html":"","author_name":"nothinghereok","height":315,"thumbnail_width":480,"width":420,"version":"1.0","author_url":"http://www.youtube.com/user/nothinghereok","provider_name":"YouTube","type":"video","thumbnail_height":360,"trusted_endpoint_url":"http://www.youtube.com/oembed"}},"mentioned_people":[],"photos":[],"root":null,"title":"awesome #youtube #video \r\nhttp://youtu.be/daVDrGsaDME\r\n\r\n#car #engine #stopmotion","interactions":{"likes":[],"reshares":[],"comments_count":0,"likes_count":1,"reshares_count":0,"comments":[]}},{"id":12830,"guid":"5a4089375be2db14","text":"jQuery Core: Version 1.9 and Beyond - http://blog.jquery.com/2012/06/28/jquery-core-version-1-9-and-beyond/ - \r\n_jQuery 2.0: This version will support the same APIs as jQuery 1.9 does, but removes support for IE 6/7/8 oddities such as borked event model, IE7 \u201cattroperties\u201d, HTML5 shims, etc. \r\nOur goal is for 1.9 and 2.0 to be interchangeable as far as the API set they support. When 2.0 comes out, your decision on which version to choose should be as simple as this: If you need IE 6/7/8 support, choose 1.9; otherwise you can use either 1.9 or 2.0._ \r\nI hope IE dies a quick but painfull death... \r\n#jquery #ie #browser #web","public":true,"created_at":"2012-07-13T20:36:35Z","interacted_at":"2012-07-13T20:36:35Z","provider_display_name":null,"post_type":"StatusMessage","nsfw":false,"author":{"id":2,"guid":"7445f9a0a6c28ebb","name":"Florian Staudacher","diaspora_id":"raven24@pod.fulll.name","avatar":{"small":"https://pod.fulll.name/uploads/images/thumb_small_5f612f44a0a026b119f8.png","medium":"https://pod.fulll.name/uploads/images/thumb_medium_5f612f44a0a026b119f8.png","large":"https://pod.fulll.name/uploads/images/thumb_large_5f612f44a0a026b119f8.png"}},"o_embed_cache":null,"mentioned_people":[],"photos":[],"root":null,"title":"jQuery Core: Version 1.9 and Beyond - http://blog.jquery.com/2012/06/28/jquery-core-version-1-9-and-beyond/ - \r\n_jQuery 2.0: This version will support the same APIs as jQuery 1.9 does, but removes support for IE 6/7/8 oddities such as borked event model, IE7 \u201cattroperties\u201d, HTML5 shims, etc. \r\nOur goal is for 1.9 and 2.0 to be interchangeable as far as the API set they support. When 2.0 comes out, your decision on which version to choose should be as simple as this: If you need IE 6/7/8 support, choose 1.9; otherwise you can use either 1.9 or 2.0._ \r\nI hope IE dies a quick but painfull death... \r\n#jquery #ie #browser #web","interactions":{"likes":[],"reshares":[],"comments_count":0,"likes_count":0,"reshares_count":0,"comments":[]}},{"id":12763,"guid":"82adaf03843115e8","text":"http://www.evolutionoftheweb.com\r\n\r\n![www](http://2.bp.blogspot.com/-wsNl1RvehSs/T_7DBHg_o6I/AAAAAAAAAYg/UL2N8GMWO3k/s640/evolution+of+web.png)\r\n\r\n#www #web #ITNews #Browser #Internet #technology #IT","public":true,"created_at":"2012-07-13T09:30:02Z","interacted_at":"2012-07-29T23:46:30Z","provider_display_name":null,"post_type":"Reshare","nsfw":false,"author":{"id":2,"guid":"7445f9a0a6c28ebb","name":"Florian Staudacher","diaspora_id":"raven24@pod.fulll.name","avatar":{"small":"https://pod.fulll.name/uploads/images/thumb_small_5f612f44a0a026b119f8.png","medium":"https://pod.fulll.name/uploads/images/thumb_medium_5f612f44a0a026b119f8.png","large":"https://pod.fulll.name/uploads/images/thumb_large_5f612f44a0a026b119f8.png"}},"o_embed_cache":null,"mentioned_people":[],"photos":[],"root":{"id":12751,"guid":"389f84ae16581df6","text":"http://www.evolutionoftheweb.com\r\n\r\n![www](http://2.bp.blogspot.com/-wsNl1RvehSs/T_7DBHg_o6I/AAAAAAAAAYg/UL2N8GMWO3k/s640/evolution+of+web.png)\r\n\r\n#www #web #ITNews #Browser #Internet #technology #IT","public":true,"created_at":"2012-07-12T17:34:10Z","interacted_at":"2012-07-13T05:49:09Z","provider_display_name":null,"post_type":"StatusMessage","nsfw":false,"author":{"id":4079,"guid":"bfe281001b5a8561","name":"Anonymiss","diaspora_id":"anonymiss@despora.de","avatar":{"small":"https://despora.de/uploads/images/thumb_small_d25c7b27e7bbf307a8cc.jpg","medium":"https://despora.de/uploads/images/thumb_medium_d25c7b27e7bbf307a8cc.jpg","large":"https://despora.de/uploads/images/thumb_large_d25c7b27e7bbf307a8cc.jpg"}},"o_embed_cache":null,"mentioned_people":[],"photos":[],"root":null,"title":"http://www.evolutionoftheweb.com\r\n\r\n![www](http://2.bp.blogspot.com/-wsNl1RvehSs/T_7DBHg_o6I/AAAAAAAAAYg/UL2N8GMWO3k/s640/evolution+of+web.png)\r\n\r\n#www #web #ITNews #Browser #Internet #technology #IT","interactions":{"likes":[],"reshares":[],"comments_count":0,"likes_count":0,"reshares_count":1}},"title":"A post from Florian Staudacher","interactions":{"likes":[],"reshares":[],"comments_count":0,"likes_count":2,"reshares_count":0,"comments":[]}},{"id":12463,"guid":"cb0a304194c719d8","text":"Relativistic Baseball - http://what-if.xkcd.com/1/ - \r\nWhat would happen if you tried to hit a baseball pitched at 90% the speed of light? \r\n#xkcd #whatif","public":true,"created_at":"2012-07-10T09:31:54Z","interacted_at":"2012-07-29T23:52:08Z","provider_display_name":null,"post_type":"StatusMessage","nsfw":false,"author":{"id":2,"guid":"7445f9a0a6c28ebb","name":"Florian Staudacher","diaspora_id":"raven24@pod.fulll.name","avatar":{"small":"https://pod.fulll.name/uploads/images/thumb_small_5f612f44a0a026b119f8.png","medium":"https://pod.fulll.name/uploads/images/thumb_medium_5f612f44a0a026b119f8.png","large":"https://pod.fulll.name/uploads/images/thumb_large_5f612f44a0a026b119f8.png"}},"o_embed_cache":null,"mentioned_people":[],"photos":[],"root":null,"title":"Relativistic Baseball - http://what-if.xkcd.com/1/ - \r\nWhat would happen if you tried to hit a baseball pitched at 90% the speed of light? \r\n#xkcd #whatif","interactions":{"likes":[],"reshares":[],"comments_count":0,"likes_count":3,"reshares_count":1,"comments":[]}},{"id":12349,"guid":"b16efb0fc6427338","text":"yay, new \"simon's cat\"! \r\n \r\nhttp://youtu.be/XrivBjlv6Mw \r\n#simonscat #cat","public":true,"created_at":"2012-07-09T12:03:38Z","interacted_at":"2012-07-10T21:59:32Z","provider_display_name":null,"post_type":"StatusMessage","nsfw":false,"author":{"id":2,"guid":"7445f9a0a6c28ebb","name":"Florian Staudacher","diaspora_id":"raven24@pod.fulll.name","avatar":{"small":"https://pod.fulll.name/uploads/images/thumb_small_5f612f44a0a026b119f8.png","medium":"https://pod.fulll.name/uploads/images/thumb_medium_5f612f44a0a026b119f8.png","large":"https://pod.fulll.name/uploads/images/thumb_large_5f612f44a0a026b119f8.png"}},"o_embed_cache":{"data":{"provider_url":"http://www.youtube.com/","thumbnail_url":"http://i1.ytimg.com/vi/XrivBjlv6Mw/hqdefault.jpg","title":"Simon's Cat in 'Window Pain'","html":"","author_name":"simonscat","height":236,"thumbnail_width":480,"width":420,"version":"1.0","author_url":"http://www.youtube.com/user/simonscat","provider_name":"YouTube","type":"video","thumbnail_height":360,"trusted_endpoint_url":"http://www.youtube.com/oembed"}},"mentioned_people":[],"photos":[],"root":null,"title":"yay, new \"simon's cat\"! \r\n \r\nhttp://youtu.be/XrivBjlv6Mw \r\n#simonscat #cat","interactions":{"likes":[],"reshares":[],"comments_count":0,"likes_count":2,"reshares_count":1,"comments":[]}},{"id":12172,"guid":"198034364c7226a1","text":"Ex-Nokia staff to build MeeGo-based smartphones - http://www.theverge.com/2012/7/7/3143099/jolla-meego-startup-ex-nokia-employees - \r\n_A group of ex-Nokia staff and MeeGo enthusiasts has formed Jolla (Finnish for \"dinghy\"), a mobile startup with the aim of bringing new MeeGo devices to the market._ \r\nThank you, thank you so much!\r\n#nokia #meego #maemo #mer #linux #smartphone","public":true,"created_at":"2012-07-07T22:16:11Z","interacted_at":"2012-07-09T11:02:08Z","provider_display_name":null,"post_type":"StatusMessage","nsfw":false,"author":{"id":2,"guid":"7445f9a0a6c28ebb","name":"Florian Staudacher","diaspora_id":"raven24@pod.fulll.name","avatar":{"small":"https://pod.fulll.name/uploads/images/thumb_small_5f612f44a0a026b119f8.png","medium":"https://pod.fulll.name/uploads/images/thumb_medium_5f612f44a0a026b119f8.png","large":"https://pod.fulll.name/uploads/images/thumb_large_5f612f44a0a026b119f8.png"}},"o_embed_cache":null,"mentioned_people":[],"photos":[],"root":null,"title":"Ex-Nokia staff to build MeeGo-based smartphones - http://www.theverge.com/2012/7/7/3143099/jolla-meego-startup-ex-nokia-employees - \r\n_A group of ex-Nokia staff and MeeGo enthusiasts has formed Jolla (Finnish for \"dinghy\"), a mobile startup with the aim of bringing new MeeGo devices to the market._ \r\nThank you, thank you so much!\r\n#nokia #meego #maemo #mer #linux #smartphone","interactions":{"likes":[],"reshares":[],"comments_count":5,"likes_count":9,"reshares_count":3,"comments":[{"id":18837,"guid":"e70d7b0bbb779547","text":"Can they join efforts with Mer and PlasmaActive? I don't really see a need to reinvent the wheel.","author":{"id":1864,"guid":"6d48d8a46633e586","name":"Shmerl","diaspora_id":"bahaltener@joindiaspora.com","avatar":{"small":"https://joindiaspora.s3.amazonaws.com/uploads/images/thumb_small_7d3b625db04eca524c67.png","medium":"https://joindiaspora.s3.amazonaws.com/uploads/images/thumb_medium_7d3b625db04eca524c67.png","large":"https://joindiaspora.s3.amazonaws.com/uploads/images/thumb_large_7d3b625db04eca524c67.png"}},"created_at":"2012-07-08T02:30:40Z"},{"id":18842,"guid":"421e799bef69f18b","text":"Looks like they do work with Mer. Good news!","author":{"id":1864,"guid":"6d48d8a46633e586","name":"Shmerl","diaspora_id":"bahaltener@joindiaspora.com","avatar":{"small":"https://joindiaspora.s3.amazonaws.com/uploads/images/thumb_small_7d3b625db04eca524c67.png","medium":"https://joindiaspora.s3.amazonaws.com/uploads/images/thumb_medium_7d3b625db04eca524c67.png","large":"https://joindiaspora.s3.amazonaws.com/uploads/images/thumb_large_7d3b625db04eca524c67.png"}},"created_at":"2012-07-08T06:02:18Z"},{"id":18944,"guid":"16320b7c377ebb5a","text":"Tizen has normal Linux stack (X.org or Wayland based), so if you build all the dependencies, you can run Qt based programs there. The downside will be, that Qt isn't included in Tizen by default so far. They promote using EFL.","author":{"id":1864,"guid":"6d48d8a46633e586","name":"Shmerl","diaspora_id":"bahaltener@joindiaspora.com","avatar":{"small":"https://joindiaspora.s3.amazonaws.com/uploads/images/thumb_small_7d3b625db04eca524c67.png","medium":"https://joindiaspora.s3.amazonaws.com/uploads/images/thumb_medium_7d3b625db04eca524c67.png","large":"https://joindiaspora.s3.amazonaws.com/uploads/images/thumb_large_7d3b625db04eca524c67.png"}},"created_at":"2012-07-09T02:59:06Z"}]}},{"id":11937,"guid":"2aad765debb1e80e","text":"to all podmins: \r\nplease read this announcement: https://groups.google.com/d/msg/diaspora-dev/kMOuJk5h_v4/5Gx1Dsib6EQJ \r\nthis hopefully provides the solution to clean the database from even the most stubborn mixed-case hashtags. \r\n#diaspora #podmin #hashtags #actionrequired","public":true,"created_at":"2012-07-06T11:56:30Z","interacted_at":"2012-07-06T16:32:38Z","provider_display_name":null,"post_type":"StatusMessage","nsfw":false,"author":{"id":2,"guid":"7445f9a0a6c28ebb","name":"Florian Staudacher","diaspora_id":"raven24@pod.fulll.name","avatar":{"small":"https://pod.fulll.name/uploads/images/thumb_small_5f612f44a0a026b119f8.png","medium":"https://pod.fulll.name/uploads/images/thumb_medium_5f612f44a0a026b119f8.png","large":"https://pod.fulll.name/uploads/images/thumb_large_5f612f44a0a026b119f8.png"}},"o_embed_cache":null,"mentioned_people":[],"photos":[],"root":null,"title":"to all podmins: \r\nplease read this announcement: https://groups.google.com/d/msg/diaspora-dev/kMOuJk5h_v4/5Gx1Dsib6EQJ \r\nthis hopefully provides the solution to clean the database from even the most stubborn mixed-case hashtags. \r\n#diaspora #podmin #hashtags #actionrequired","interactions":{"likes":[],"reshares":[],"comments_count":3,"likes_count":2,"reshares_count":1,"comments":[{"id":18691,"guid":"8a907544696e4faf","text":"thanks!","author":{"id":365,"guid":"dfc51824b3a76b71","name":"Sven Fischer","diaspora_id":"strubbl@sxspora.de","avatar":{"small":"http://sxspora.de/uploads/images/thumb_small_5c105bceab19eff9b0a3.jpg","medium":"http://sxspora.de/uploads/images/thumb_medium_5c105bceab19eff9b0a3.jpg","large":"http://sxspora.de/uploads/images/thumb_large_5c105bceab19eff9b0a3.jpg"}},"created_at":"2012-07-06T14:53:56Z"},{"id":18695,"guid":"8547aa6d2738ecb4","text":"before 2589. now of course 0. I prepended the bundle command with RAILS_ENV=production DB=\"mysql\". Otherwise it didn't work because a diaspora_development does not exist.","author":{"id":365,"guid":"dfc51824b3a76b71","name":"Sven Fischer","diaspora_id":"strubbl@sxspora.de","avatar":{"small":"http://sxspora.de/uploads/images/thumb_small_5c105bceab19eff9b0a3.jpg","medium":"http://sxspora.de/uploads/images/thumb_medium_5c105bceab19eff9b0a3.jpg","large":"http://sxspora.de/uploads/images/thumb_large_5c105bceab19eff9b0a3.jpg"}},"created_at":"2012-07-06T15:10:44Z"},{"id":18704,"guid":"247b0520a7824450","text":"oh, sorry ... yeah I thought that was implied","author":{"id":2,"guid":"7445f9a0a6c28ebb","name":"Florian Staudacher","diaspora_id":"raven24@pod.fulll.name","avatar":{"small":"https://pod.fulll.name/uploads/images/thumb_small_5f612f44a0a026b119f8.png","medium":"https://pod.fulll.name/uploads/images/thumb_medium_5f612f44a0a026b119f8.png","large":"https://pod.fulll.name/uploads/images/thumb_large_5f612f44a0a026b119f8.png"}},"created_at":"2012-07-06T16:32:38Z"}]}},{"id":11934,"guid":"e75e4e4719bf9405","text":"qtruby is intriguing ... I think I'll need to build something with it ;) \r\n(writing this from a QWebView created by a ruby script ^^) \r\n#ruby #qt #programming","public":true,"created_at":"2012-07-06T11:15:04Z","interacted_at":"2012-07-06T11:15:05Z","provider_display_name":null,"post_type":"StatusMessage","nsfw":false,"author":{"id":2,"guid":"7445f9a0a6c28ebb","name":"Florian Staudacher","diaspora_id":"raven24@pod.fulll.name","avatar":{"small":"https://pod.fulll.name/uploads/images/thumb_small_5f612f44a0a026b119f8.png","medium":"https://pod.fulll.name/uploads/images/thumb_medium_5f612f44a0a026b119f8.png","large":"https://pod.fulll.name/uploads/images/thumb_large_5f612f44a0a026b119f8.png"}},"o_embed_cache":null,"mentioned_people":[],"photos":[],"root":null,"title":"qtruby is intriguing ... I think I'll need to build something with it ;) \r\n(writing this from a QWebView created by a ruby script ^^) \r\n#ruby #qt #programming","interactions":{"likes":[],"reshares":[],"comments_count":0,"likes_count":0,"reshares_count":0,"comments":[]}},{"id":11782,"guid":"23416f5cd259bfcc","text":"can one or more podmins please test this pull request on a *copy* of their database? -> https://github.com/diaspora/diaspora/pull/3434 \r\nit's about hashtags mit mixed-case letters in them, and the PR ccontains some changes to the rake task that is supposed to clean those up, which should hopefully eliminate mixed-case hashtags one and for all. \r\nto verify the successful run, the rake task should complete and in your database there should be no more mixed-case hashtags. You can check this by running this statement before and after the rake task ran: \r\n\r\n SELECT * FROM tags WHERE LOWER(name) != name\r\n\r\nBefore, you should see a list of all hashtags that will be processed, and after, the query shoud return an empty result. \r\n\r\n#diaspora #podmin #pleasetest #hashtags","public":true,"created_at":"2012-07-05T10:01:50Z","interacted_at":"2012-07-08T19:18:00Z","provider_display_name":null,"post_type":"StatusMessage","nsfw":false,"author":{"id":2,"guid":"7445f9a0a6c28ebb","name":"Florian Staudacher","diaspora_id":"raven24@pod.fulll.name","avatar":{"small":"https://pod.fulll.name/uploads/images/thumb_small_5f612f44a0a026b119f8.png","medium":"https://pod.fulll.name/uploads/images/thumb_medium_5f612f44a0a026b119f8.png","large":"https://pod.fulll.name/uploads/images/thumb_large_5f612f44a0a026b119f8.png"}},"o_embed_cache":null,"mentioned_people":[],"photos":[],"root":null,"title":"can one or more podmins please test this pull request on a *copy* of their database? -> https://github.com/diaspora/diaspora/pull/3434 \r\nit's about hashtags mit mixed-case letters in them, and the PR ccontains some changes to the rake task that is supposed to clean those up, which should hopefully eliminate mixed-case hashtags one and for all. \r\nto verify the successful run, the rake task should complete and in your database there should be no more mixed-case hashtags. You can check this by running this statement before and after the rake task ran: \r\n\r\n SELECT * FROM tags WHERE LOWER(name) != name\r\n\r\nBefore, you should see a list of all hashtags that will be processed, and after, the query shoud return an empty result. \r\n\r\n#diaspora #podmin #pleasetest #hashtags","interactions":{"likes":[],"reshares":[],"comments_count":6,"likes_count":2,"reshares_count":0,"comments":[{"id":18584,"guid":"217ad7b7ab5fa869","text":"Oh! Duhh! Sorry, let me merge that and try again.","author":{"id":5653,"guid":"7410329c39e6810f","name":"Hans","diaspora_id":"hans@hfase.com","avatar":{"small":"https://hfase.com/uploads/images/thumb_small_f2b2d6b041732c5f91eb.jpg","medium":"https://hfase.com/uploads/images/thumb_medium_f2b2d6b041732c5f91eb.jpg","large":"https://hfase.com/uploads/images/thumb_large_f2b2d6b041732c5f91eb.jpg"}},"created_at":"2012-07-05T10:36:46Z"},{"id":18586,"guid":"0268792e018c3ec3","text":"\"MySQL returned an empty result set (i.e. zero rows). ( Query took 0.0003 sec )\"\n\nMuch better! :D Thanks!!","author":{"id":5653,"guid":"7410329c39e6810f","name":"Hans","diaspora_id":"hans@hfase.com","avatar":{"small":"https://hfase.com/uploads/images/thumb_small_f2b2d6b041732c5f91eb.jpg","medium":"https://hfase.com/uploads/images/thumb_medium_f2b2d6b041732c5f91eb.jpg","large":"https://hfase.com/uploads/images/thumb_large_f2b2d6b041732c5f91eb.jpg"}},"created_at":"2012-07-05T10:39:12Z"},{"id":18587,"guid":"8b39d807abd7302e","text":"yeah, that looks good!","author":{"id":2,"guid":"7445f9a0a6c28ebb","name":"Florian Staudacher","diaspora_id":"raven24@pod.fulll.name","avatar":{"small":"https://pod.fulll.name/uploads/images/thumb_small_5f612f44a0a026b119f8.png","medium":"https://pod.fulll.name/uploads/images/thumb_medium_5f612f44a0a026b119f8.png","large":"https://pod.fulll.name/uploads/images/thumb_large_5f612f44a0a026b119f8.png"}},"created_at":"2012-07-05T10:44:19Z"}]}},{"id":11774,"guid":"dbcb53c18a1c40bc","text":"# Intro To Using Diaspora\\*\r\n\r\n## Federated Social Networking\r\n\r\nDiaspora\\* is a social network (socnet), similar in many ways to Facebook, #MySpace, #Orkut, and Google Plus ( #GPlus). In fact, those of us who were already using D\\* when GPlus came out were quite familiar with its layout and functionality. It was almost as if they had started developing by grabbing D\\* code and stripping out federation.\r\n\r\nWhen I say federated, I mean that there is not one central Diaspora\\* server (or server cluster) that all users belong to. Instead, there are many [Diaspora\\* servers](http://podupti.me/) to choose from, with different operators ( #podmin), privacy policies, terms of service, and so on. Federation works much like when you decide to mail someone. It doesn't matter to me whether you use Gmail, Hotmail, Ymail, or GMX. I can send messages to you because electronic mail is federated. It is the same way with Diaspora\\*. You may be on [JoinDiaspora](http://joindiaspora.com/), [Calispora](http://calispora.org/), [Diasp.org](http://diasp.org/), [Diasp.eu](http://diasp.eu/), [Serendipitous](http://ser.endipito.us/) or another pod. You can still connect to people whose accounts are on other pods.\r\n\r\nI have written before about [federation](https://joindiaspora.com/posts/1679098).\r\n\r\nThis is an advantage, because it means that you're not beholden to a single organization's policies. If you decide that you dislike the _podmin_ on Pod X, you can open an account on Pod Y instead or even set up your own pod. (_**Moving** your account is not yet implemented_, but I believe you can export your contacts and use the export to help you repopulate that list on your new pod.) If podmin X decides to shut down pod X, again you can open an account on another pod or host your own.\r\n\r\n## @ mentions\r\n\r\nHit the at-sign and the first few letters of the person's display name (it used to be the first few of the person's username, but then they decided to hide that ... personally, I wish they'd switch back)\r\n\r\nWhen you mention someone, make sure you set the privacy to include the group that person is in. There was a bug (possibly fixed) where you could mention someone in a post they weren't allowed to see. I do not believe that @ mentions work in comments yet.\r\n\r\nTwitter, where at-mentions were invented (by users and 3rd-party clients) doesn't have the problem of at-mentions affecting groups simply because it does not have any form of privacy groups.\r\n\r\n## Hashtags\r\n\r\nDiaspora\\* supports #hashtags. Because your pod intercepts them, being on a bigger pod means that clicking a hashtag will give a larger results set than if you clicked on the hashtag from a smaller pod. It is a known problem of the current federation mechanism, and is being fixed.\r\n\r\nTwitter, where hashtags were invented (by users and 3rd-party clients), doesn't have this problem only because everyone is one the same instance of T. #StatusNet, which is like a federated clone of #Twitter, also has the same issue to some degree.\r\n\r\n## Aspects\r\n\r\nPrivacy groups for posts; these were the obvious inspiration for #GPlus's circles, and they work similarly. For example, you may wish to place your boss and others that you know from work into a work aspect. You may also wish to place people you know from college, church, or other such activities into aspects specific to their roles in your life, and to place family members into aspects specific to people in that role.\r\n\r\nIf you didn't already understand aspects, consider this: if posts are wide-open, anyone who becomes a contact can see them. So if you have your boss as a contact, and you post a photo of your trip to the beach won a day you called in sick, _you may get fired for stupidity_. What you do is you put your boss into a work aspect, and only post things into that aspect that are acceptable in a work context.\r\n\r\n## Posting syntax\r\n\r\nDiaspora\\* uses something called [Markdown](http://www.simpleeditions.com/59001/markdown-an-introduction) for its posts. Most of the time, you can just post in plain text and not worry about it, but every once in a while, Markdown will distort what you've posted.\r\n\r\nMarkdown does give you the ability to _italicize_, **bold**, and otherwise decorate text and to embed links and images using a fairly simple syntax. I find, however, that I have to look up embedding every time I use it.\r\n\r\n(I personally prefer [Textile](http://textile.thresholdstate.com/). You still have to learn to use it effectively, but it more closely matches what experienced net users have grown to expect from applications like Outlook and Thunderbird. For instance, if I want bold text, surround it with single asterisks [\\*] rather than the double asterisks [\\*\\*] that Markdown requires.)\r\n\r\n## Pods\r\n\r\nA Diaspora\\* pod is the server or server cluster where your account resides. There are dozens or even hundreds of pods out there. Most of them are pretty similar in what they offer. A few offer experimental features, such as post previews, pod-only posts, or encrypted messaging. It is my hope that many of these features will be picked up by the main codebase, so that all pods will have them.\r\n\r\nYou'll rarely need to know this, but every Diaspora\\* account has an address that looks like username@podname.com. If you want people to be able to add you as a contact, publish your Diaspora\\* address. They'll be able to add you that way.\r\n\r\n## Facebook\r\n\r\nAll of the pods I have used have the ability to connect to certain external accounts, such as Twitter and #Facebook. This means that you can post from D\\* to FB or T. You don't have to abandon your \"friends\" on other #socnets because you join D\\*.\r\n\r\nIf you read many online articles, you will come across some that seem to believe that Diaspora\\*'s purpose is to become a Facebook-killer. Do not believe them. If and when people tire of Facebook, it will be because of something that FB does, not because socnet X is better. If you look at D\\* as a substitute for Facebook, it will be like a meat-eater who tries to replace meat with soy-based meat substitutes. You won't like it. Instead, I recommend that you get to know people who are on D\\* and that you invite your existing contacts, but that you **enjoy D\\* for its own value**. If you find that it then makes FB unnecessary, that is good. If, on the other hand, you still want to keep your FB account, that is also good.\r\n\r\n## Controversies\r\n\r\nThere are occasional squabbles over the directions the project is taking. Unlike the squabbles at Twitter, which took place behind closed doors and resulted in a number of highly-skilled people leaving and the recently announced restrictions on how client applications can display Twitter-sourced content, Diaspora\\*'s squabbles tend to happen in public. My advice is simple: stay out of the squabbles, find your own philosophical point of view, and support this and any other project that agrees with that point of view. If the time comes when this or any other project no longer fits your POV, leave quietly.\r\n\r\nWhen I felt that GPlus was hostile to my POV, I closed my accounts. When I felt that Facebook was hostile to my POV, I closed my account. I do not go around trash-talking either project, or assuming that anyone in said projects is intentionally \"evil,\" and I would not recommend doing that to D\\* or any other project.\r\n\r\n## Future\r\n\r\nAt some point in the future, the Diaspora\\* developers will be changing the federation protocol. Federation is what enables a user on Pod X to interact with users on pods Y, Z, etc. They are working to improve scalability (ability to handle more content posted from more users in the same period of time) and content dispersion (ability for content to travel between a wider number of pods seamlessly). It is a tough task. If you are interested in #Ruby programming or Ruby on Rails ( #RoR ), I would encourage you to get involved.\r\n\r\nThey are also planning to make D\\* a far more visual-oriented socnet. That means that posts with images, graphics, and video will be far more interesting, and will be displayed in a manner that caters to those things. There is an experimental pod where they test out many of the visual designs that may make it into the D* codebase. I will not link it here, because people may misunderstand that it is experimental and not really intended to be your home pod.\r\n\r\nIf you're interested in the technical side and the future directions, they have a moderated and directed code-chat on IRC every (other?) Thursday at 10AM Pacific in the room #diaspora-meeting on Freenode. Sean can jump in on the comments to correct me on this.\r\n\r\n## Conclusion\r\n\r\nThis is long, but I think this is a good intro to Diaspora\\*. I wish there had been someone who could write something like this when I joined. I should also put in a disclaimer. This is my personal opinion, and not the official stance of any podmin or of the Diaspora\\* developers. You are free to disagree, but please start a new thread for it. This is posted in the hope that people who newly join Diaspora\\* will get a head start.\r\n\r\nThere are a number of tutorials at [Diasporal](http://diasporial.com/). I would encourage you to visit the site and check them out. If you are a blogger, or if you write for a magazine (online or dead-tree), I would encourage you to write about Diaspora\\* once you've taken some time to get to know the place.","public":true,"created_at":"2012-07-05T09:37:15Z","interacted_at":"2012-07-05T09:37:15Z","provider_display_name":null,"post_type":"Reshare","nsfw":false,"author":{"id":2,"guid":"7445f9a0a6c28ebb","name":"Florian Staudacher","diaspora_id":"raven24@pod.fulll.name","avatar":{"small":"https://pod.fulll.name/uploads/images/thumb_small_5f612f44a0a026b119f8.png","medium":"https://pod.fulll.name/uploads/images/thumb_medium_5f612f44a0a026b119f8.png","large":"https://pod.fulll.name/uploads/images/thumb_large_5f612f44a0a026b119f8.png"}},"o_embed_cache":null,"mentioned_people":[],"photos":[],"root":{"id":11730,"guid":"57288b4adf721900","text":"# Intro To Using Diaspora\\*\r\n\r\n## Federated Social Networking\r\n\r\nDiaspora\\* is a social network (socnet), similar in many ways to Facebook, #MySpace, #Orkut, and Google Plus ( #GPlus). In fact, those of us who were already using D\\* when GPlus came out were quite familiar with its layout and functionality. It was almost as if they had started developing by grabbing D\\* code and stripping out federation.\r\n\r\nWhen I say federated, I mean that there is not one central Diaspora\\* server (or server cluster) that all users belong to. Instead, there are many [Diaspora\\* servers](http://podupti.me/) to choose from, with different operators ( #podmin), privacy policies, terms of service, and so on. Federation works much like when you decide to mail someone. It doesn't matter to me whether you use Gmail, Hotmail, Ymail, or GMX. I can send messages to you because electronic mail is federated. It is the same way with Diaspora\\*. You may be on [JoinDiaspora](http://joindiaspora.com/), [Calispora](http://calispora.org/), [Diasp.org](http://diasp.org/), [Diasp.eu](http://diasp.eu/), [Serendipitous](http://ser.endipito.us/) or another pod. You can still connect to people whose accounts are on other pods.\r\n\r\nI have written before about [federation](https://joindiaspora.com/posts/1679098).\r\n\r\nThis is an advantage, because it means that you're not beholden to a single organization's policies. If you decide that you dislike the _podmin_ on Pod X, you can open an account on Pod Y instead or even set up your own pod. (_**Moving** your account is not yet implemented_, but I believe you can export your contacts and use the export to help you repopulate that list on your new pod.) If podmin X decides to shut down pod X, again you can open an account on another pod or host your own.\r\n\r\n## @ mentions\r\n\r\nHit the at-sign and the first few letters of the person's display name (it used to be the first few of the person's username, but then they decided to hide that ... personally, I wish they'd switch back)\r\n\r\nWhen you mention someone, make sure you set the privacy to include the group that person is in. There was a bug (possibly fixed) where you could mention someone in a post they weren't allowed to see. I do not believe that @ mentions work in comments yet.\r\n\r\nTwitter, where at-mentions were invented (by users and 3rd-party clients) doesn't have the problem of at-mentions affecting groups simply because it does not have any form of privacy groups.\r\n\r\n## Hashtags\r\n\r\nDiaspora\\* supports #hashtags. Because your pod intercepts them, being on a bigger pod means that clicking a hashtag will give a larger results set than if you clicked on the hashtag from a smaller pod. It is a known problem of the current federation mechanism, and is being fixed.\r\n\r\nTwitter, where hashtags were invented (by users and 3rd-party clients), doesn't have this problem only because everyone is one the same instance of T. #StatusNet, which is like a federated clone of #Twitter, also has the same issue to some degree.\r\n\r\n## Aspects\r\n\r\nPrivacy groups for posts; these were the obvious inspiration for #GPlus's circles, and they work similarly. For example, you may wish to place your boss and others that you know from work into a work aspect. You may also wish to place people you know from college, church, or other such activities into aspects specific to their roles in your life, and to place family members into aspects specific to people in that role.\r\n\r\nIf you didn't already understand aspects, consider this: if posts are wide-open, anyone who becomes a contact can see them. So if you have your boss as a contact, and you post a photo of your trip to the beach won a day you called in sick, _you may get fired for stupidity_. What you do is you put your boss into a work aspect, and only post things into that aspect that are acceptable in a work context.\r\n\r\n## Posting syntax\r\n\r\nDiaspora\\* uses something called [Markdown](http://www.simpleeditions.com/59001/markdown-an-introduction) for its posts. Most of the time, you can just post in plain text and not worry about it, but every once in a while, Markdown will distort what you've posted.\r\n\r\nMarkdown does give you the ability to _italicize_, **bold**, and otherwise decorate text and to embed links and images using a fairly simple syntax. I find, however, that I have to look up embedding every time I use it.\r\n\r\n(I personally prefer [Textile](http://textile.thresholdstate.com/). You still have to learn to use it effectively, but it more closely matches what experienced net users have grown to expect from applications like Outlook and Thunderbird. For instance, if I want bold text, surround it with single asterisks [\\*] rather than the double asterisks [\\*\\*] that Markdown requires.)\r\n\r\n## Pods\r\n\r\nA Diaspora\\* pod is the server or server cluster where your account resides. There are dozens or even hundreds of pods out there. Most of them are pretty similar in what they offer. A few offer experimental features, such as post previews, pod-only posts, or encrypted messaging. It is my hope that many of these features will be picked up by the main codebase, so that all pods will have them.\r\n\r\nYou'll rarely need to know this, but every Diaspora\\* account has an address that looks like username@podname.com. If you want people to be able to add you as a contact, publish your Diaspora\\* address. They'll be able to add you that way.\r\n\r\n## Facebook\r\n\r\nAll of the pods I have used have the ability to connect to certain external accounts, such as Twitter and #Facebook. This means that you can post from D\\* to FB or T. You don't have to abandon your \"friends\" on other #socnets because you join D\\*.\r\n\r\nIf you read many online articles, you will come across some that seem to believe that Diaspora\\*'s purpose is to become a Facebook-killer. Do not believe them. If and when people tire of Facebook, it will be because of something that FB does, not because socnet X is better. If you look at D\\* as a substitute for Facebook, it will be like a meat-eater who tries to replace meat with soy-based meat substitutes. You won't like it. Instead, I recommend that you get to know people who are on D\\* and that you invite your existing contacts, but that you **enjoy D\\* for its own value**. If you find that it then makes FB unnecessary, that is good. If, on the other hand, you still want to keep your FB account, that is also good.\r\n\r\n## Controversies\r\n\r\nThere are occasional squabbles over the directions the project is taking. Unlike the squabbles at Twitter, which took place behind closed doors and resulted in a number of highly-skilled people leaving and the recently announced restrictions on how client applications can display Twitter-sourced content, Diaspora\\*'s squabbles tend to happen in public. My advice is simple: stay out of the squabbles, find your own philosophical point of view, and support this and any other project that agrees with that point of view. If the time comes when this or any other project no longer fits your POV, leave quietly.\r\n\r\nWhen I felt that GPlus was hostile to my POV, I closed my accounts. When I felt that Facebook was hostile to my POV, I closed my account. I do not go around trash-talking either project, or assuming that anyone in said projects is intentionally \"evil,\" and I would not recommend doing that to D\\* or any other project.\r\n\r\n## Future\r\n\r\nAt some point in the future, the Diaspora\\* developers will be changing the federation protocol. Federation is what enables a user on Pod X to interact with users on pods Y, Z, etc. They are working to improve scalability (ability to handle more content posted from more users in the same period of time) and content dispersion (ability for content to travel between a wider number of pods seamlessly). It is a tough task. If you are interested in #Ruby programming or Ruby on Rails ( #RoR ), I would encourage you to get involved.\r\n\r\nThey are also planning to make D\\* a far more visual-oriented socnet. That means that posts with images, graphics, and video will be far more interesting, and will be displayed in a manner that caters to those things. There is an experimental pod where they test out many of the visual designs that may make it into the D* codebase. I will not link it here, because people may misunderstand that it is experimental and not really intended to be your home pod.\r\n\r\nIf you're interested in the technical side and the future directions, they have a moderated and directed code-chat on IRC every (other?) Thursday at 10AM Pacific in the room #diaspora-meeting on Freenode. Sean can jump in on the comments to correct me on this.\r\n\r\n## Conclusion\r\n\r\nThis is long, but I think this is a good intro to Diaspora\\*. I wish there had been someone who could write something like this when I joined. I should also put in a disclaimer. This is my personal opinion, and not the official stance of any podmin or of the Diaspora\\* developers. You are free to disagree, but please start a new thread for it. This is posted in the hope that people who newly join Diaspora\\* will get a head start.\r\n\r\nThere are a number of tutorials at [Diasporal](http://diasporial.com/). I would encourage you to visit the site and check them out. If you are a blogger, or if you write for a magazine (online or dead-tree), I would encourage you to write about Diaspora\\* once you've taken some time to get to know the place.","public":true,"created_at":"2012-07-04T23:41:33Z","interacted_at":"2012-07-05T04:21:21Z","provider_display_name":null,"post_type":"StatusMessage","nsfw":false,"author":{"id":5508,"guid":"25d1ca8dd064f3dd","name":"lnxwalt@calispora.org","diaspora_id":"lnxwalt@calispora.org","avatar":{"small":"https://pod.fulll.name/images/user/default.png","medium":"https://pod.fulll.name/images/user/default.png","large":"https://pod.fulll.name/images/user/default.png"}},"o_embed_cache":null,"mentioned_people":[],"photos":[],"root":null,"title":"# Intro To Using Diaspora\\*\r\n\r\n## Federated Social Networking\r\n\r\nDiaspora\\* is a social network (socnet), similar in many ways to Facebook, #MySpace, #Orkut, and Google Plus ( #GPlus). In fact, those of us who were already using D\\* when GPlus came out were quite familiar with its layout and functionality. It was almost as if they had started developing by grabbing D\\* code and stripping out federation.\r\n\r\nWhen I say federated, I mean that there is not one central Diaspora\\* server (or server cluster) that all users belong to. Instead, there are many [Diaspora\\* servers](http://podupti.me/) to choose from, with different operators ( #podmin), privacy policies, terms of service, and so on. Federation works much like when you decide to mail someone. It doesn't matter to me whether you use Gmail, Hotmail, Ymail, or GMX. I can send messages to you because electronic mail is federated. It is the same way with Diaspora\\*. You may be on [JoinDiaspora](http://joindiaspora.com/), [Calispora](http://calispora.org/), [Diasp.org](http://diasp.org/), [Diasp.eu](http://diasp.eu/), [Serendipitous](http://ser.endipito.us/) or another pod. You can still connect to people whose accounts are on other pods.\r\n\r\nI have written before about [federation](https://joindiaspora.com/posts/1679098).\r\n\r\nThis is an advantage, because it means that you're not beholden to a single organization's policies. If you decide that you dislike the _podmin_ on Pod X, you can open an account on Pod Y instead or even set up your own pod. (_**Moving** your account is not yet implemented_, but I believe you can export your contacts and use the export to help you repopulate that list on your new pod.) If podmin X decides to shut down pod X, again you can open an account on another pod or host your own.\r\n\r\n## @ mentions\r\n\r\nHit the at-sign and the first few letters of the person's display name (it used to be the first few of the person's username, but then they decided to hide that ... personally, I wish they'd switch back)\r\n\r\nWhen you mention someone, make sure you set the privacy to include the group that person is in. There was a bug (possibly fixed) where you could mention someone in a post they weren't allowed to see. I do not believe that @ mentions work in comments yet.\r\n\r\nTwitter, where at-mentions were invented (by users and 3rd-party clients) doesn't have the problem of at-mentions affecting groups simply because it does not have any form of privacy groups.\r\n\r\n## Hashtags\r\n\r\nDiaspora\\* supports #hashtags. Because your pod intercepts them, being on a bigger pod means that clicking a hashtag will give a larger results set than if you clicked on the hashtag from a smaller pod. It is a known problem of the current federation mechanism, and is being fixed.\r\n\r\nTwitter, where hashtags were invented (by users and 3rd-party clients), doesn't have this problem only because everyone is one the same instance of T. #StatusNet, which is like a federated clone of #Twitter, also has the same issue to some degree.\r\n\r\n## Aspects\r\n\r\nPrivacy groups for posts; these were the obvious inspiration for #GPlus's circles, and they work similarly. For example, you may wish to place your boss and others that you know from work into a work aspect. You may also wish to place people you know from college, church, or other such activities into aspects specific to their roles in your life, and to place family members into aspects specific to people in that role.\r\n\r\nIf you didn't already understand aspects, consider this: if posts are wide-open, anyone who becomes a contact can see them. So if you have your boss as a contact, and you post a photo of your trip to the beach won a day you called in sick, _you may get fired for stupidity_. What you do is you put your boss into a work aspect, and only post things into that aspect that are acceptable in a work context.\r\n\r\n## Posting syntax\r\n\r\nDiaspora\\* uses something called [Markdown](http://www.simpleeditions.com/59001/markdown-an-introduction) for its posts. Most of the time, you can just post in plain text and not worry about it, but every once in a while, Markdown will distort what you've posted.\r\n\r\nMarkdown does give you the ability to _italicize_, **bold**, and otherwise decorate text and to embed links and images using a fairly simple syntax. I find, however, that I have to look up embedding every time I use it.\r\n\r\n(I personally prefer [Textile](http://textile.thresholdstate.com/). You still have to learn to use it effectively, but it more closely matches what experienced net users have grown to expect from applications like Outlook and Thunderbird. For instance, if I want bold text, surround it with single asterisks [\\*] rather than the double asterisks [\\*\\*] that Markdown requires.)\r\n\r\n## Pods\r\n\r\nA Diaspora\\* pod is the server or server cluster where your account resides. There are dozens or even hundreds of pods out there. Most of them are pretty similar in what they offer. A few offer experimental features, such as post previews, pod-only posts, or encrypted messaging. It is my hope that many of these features will be picked up by the main codebase, so that all pods will have them.\r\n\r\nYou'll rarely need to know this, but every Diaspora\\* account has an address that looks like username@podname.com. If you want people to be able to add you as a contact, publish your Diaspora\\* address. They'll be able to add you that way.\r\n\r\n## Facebook\r\n\r\nAll of the pods I have used have the ability to connect to certain external accounts, such as Twitter and #Facebook. This means that you can post from D\\* to FB or T. You don't have to abandon your \"friends\" on other #socnets because you join D\\*.\r\n\r\nIf you read many online articles, you will come across some that seem to believe that Diaspora\\*'s purpose is to become a Facebook-killer. Do not believe them. If and when people tire of Facebook, it will be because of something that FB does, not because socnet X is better. If you look at D\\* as a substitute for Facebook, it will be like a meat-eater who tries to replace meat with soy-based meat substitutes. You won't like it. Instead, I recommend that you get to know people who are on D\\* and that you invite your existing contacts, but that you **enjoy D\\* for its own value**. If you find that it then makes FB unnecessary, that is good. If, on the other hand, you still want to keep your FB account, that is also good.\r\n\r\n## Controversies\r\n\r\nThere are occasional squabbles over the directions the project is taking. Unlike the squabbles at Twitter, which took place behind closed doors and resulted in a number of highly-skilled people leaving and the recently announced restrictions on how client applications can display Twitter-sourced content, Diaspora\\*'s squabbles tend to happen in public. My advice is simple: stay out of the squabbles, find your own philosophical point of view, and support this and any other project that agrees with that point of view. If the time comes when this or any other project no longer fits your POV, leave quietly.\r\n\r\nWhen I felt that GPlus was hostile to my POV, I closed my accounts. When I felt that Facebook was hostile to my POV, I closed my account. I do not go around trash-talking either project, or assuming that anyone in said projects is intentionally \"evil,\" and I would not recommend doing that to D\\* or any other project.\r\n\r\n## Future\r\n\r\nAt some point in the future, the Diaspora\\* developers will be changing the federation protocol. Federation is what enables a user on Pod X to interact with users on pods Y, Z, etc. They are working to improve scalability (ability to handle more content posted from more users in the same period of time) and content dispersion (ability for content to travel between a wider number of pods seamlessly). It is a tough task. If you are interested in #Ruby programming or Ruby on Rails ( #RoR ), I would encourage you to get involved.\r\n\r\nThey are also planning to make D\\* a far more visual-oriented socnet. That means that posts with images, graphics, and video will be far more interesting, and will be displayed in a manner that caters to those things. There is an experimental pod where they test out many of the visual designs that may make it into the D* codebase. I will not link it here, because people may misunderstand that it is experimental and not really intended to be your home pod.\r\n\r\nIf you're interested in the technical side and the future directions, they have a moderated and directed code-chat on IRC every (other?) Thursday at 10AM Pacific in the room #diaspora-meeting on Freenode. Sean can jump in on the comments to correct me on this.\r\n\r\n## Conclusion\r\n\r\nThis is long, but I think this is a good intro to Diaspora\\*. I wish there had been someone who could write something like this when I joined. I should also put in a disclaimer. This is my personal opinion, and not the official stance of any podmin or of the Diaspora\\* developers. You are free to disagree, but please start a new thread for it. This is posted in the hope that people who newly join Diaspora\\* will get a head start.\r\n\r\nThere are a number of tutorials at [Diasporal](http://diasporial.com/). I would encourage you to visit the site and check them out. If you are a blogger, or if you write for a magazine (online or dead-tree), I would encourage you to write about Diaspora\\* once you've taken some time to get to know the place.","interactions":{"likes":[],"reshares":[],"comments_count":0,"likes_count":0,"reshares_count":4}},"title":"A post from Florian Staudacher","interactions":{"likes":[],"reshares":[],"comments_count":0,"likes_count":0,"reshares_count":0,"comments":[]}},{"id":11725,"guid":"909471c6070243be","text":"If you think you know of a #Diaspora #Bug please remember to be as specific as possible when describing it so we can help!!","public":true,"created_at":"2012-07-04T23:29:43Z","interacted_at":"2012-07-04T23:29:43Z","provider_display_name":null,"post_type":"Reshare","nsfw":false,"author":{"id":2,"guid":"7445f9a0a6c28ebb","name":"Florian Staudacher","diaspora_id":"raven24@pod.fulll.name","avatar":{"small":"https://pod.fulll.name/uploads/images/thumb_small_5f612f44a0a026b119f8.png","medium":"https://pod.fulll.name/uploads/images/thumb_medium_5f612f44a0a026b119f8.png","large":"https://pod.fulll.name/uploads/images/thumb_large_5f612f44a0a026b119f8.png"}},"o_embed_cache":null,"mentioned_people":[],"photos":[],"root":{"id":11718,"guid":"c1770c590b097c28","text":"If you think you know of a #Diaspora #Bug please remember to be as specific as possible when describing it so we can help!!","public":true,"created_at":"2012-07-04T22:00:49Z","interacted_at":"2012-07-05T08:19:07Z","provider_display_name":null,"post_type":"StatusMessage","nsfw":false,"author":{"id":5653,"guid":"7410329c39e6810f","name":"Hans","diaspora_id":"hans@hfase.com","avatar":{"small":"https://hfase.com/uploads/images/thumb_small_f2b2d6b041732c5f91eb.jpg","medium":"https://hfase.com/uploads/images/thumb_medium_f2b2d6b041732c5f91eb.jpg","large":"https://hfase.com/uploads/images/thumb_large_f2b2d6b041732c5f91eb.jpg"}},"o_embed_cache":null,"mentioned_people":[],"photos":[],"root":null,"title":"If you think you know of a #Diaspora #Bug please remember to be as specific as possible when describing it so we can help!!","interactions":{"likes":[],"reshares":[{"reshare":{"author_id":2,"comments_count":0,"created_at":"2012-07-04T23:29:43Z","diaspora_handle":"raven24@pod.fulll.name","guid":"909471c6070243be","id":11725,"interacted_at":"2012-07-04T23:29:43Z","likes_count":0,"o_embed_cache_id":null,"provider_display_name":null,"public":true,"reshares_count":0,"root_guid":"c1770c590b097c28","text":null,"updated_at":"2012-07-04T23:29:43Z"}}],"comments_count":0,"likes_count":2,"reshares_count":2}},"title":"A post from Florian Staudacher","interactions":{"likes":[],"reshares":[],"comments_count":0,"likes_count":0,"reshares_count":0,"comments":[]}}] diff --git a/spec/javascripts/jasmine_helpers/factory.js b/spec/javascripts/jasmine_helpers/factory.js index 2419df3f1..1659574ff 100644 --- a/spec/javascripts/jasmine_helpers/factory.js +++ b/spec/javascripts/jasmine_helpers/factory.js @@ -81,13 +81,11 @@ var factory = { "interacted_at" : '2012-01-03T19:53:13Z', "public" : false, "guid" : this.guid(), - "image_url" : null, "o_embed_cache" : null, "open_graph_cache": null, "photos" : [], "text" : "jasmine is bomb", "id" : this.id.next(), - "object_url" : null, "root" : null, "post_type" : "StatusMessage", "interactions" : { diff --git a/spec/lib/diaspora/shareable_spec.rb b/spec/lib/diaspora/shareable_spec.rb index 29e4c0503..4df87e80a 100644 --- a/spec/lib/diaspora/shareable_spec.rb +++ b/spec/lib/diaspora/shareable_spec.rb @@ -2,22 +2,6 @@ require "spec_helper" describe Diaspora::Shareable do describe "scopes" do - describe ".all_public" do - it "includes all public posts" do - post1 = FactoryGirl.create(:status_message, author: alice.person, public: true) - post2 = FactoryGirl.create(:status_message, author: bob.person, public: true) - post3 = FactoryGirl.create(:status_message, author: eve.person, public: true) - expect(Post.all_public.map(&:id)).to match_array([post1.id, post2.id, post3.id]) - end - - it "doesn't include any private posts" do - FactoryGirl.create(:status_message, author: alice.person, public: false) - FactoryGirl.create(:status_message, author: bob.person, public: false) - FactoryGirl.create(:status_message, author: eve.person, public: false) - expect(Post.all_public.map(&:id)).to eq([]) - end - end - context "having multiple objects with equal db IDs" do before do # Determine the next database key ID, free on both Photo and StatusMessage diff --git a/spec/models/photo_spec.rb b/spec/models/photo_spec.rb index 06c96ced1..e6b9a169b 100644 --- a/spec/models/photo_spec.rb +++ b/spec/models/photo_spec.rb @@ -256,6 +256,11 @@ describe Photo, :type => :model do expect(@user).to receive(:photos_from).with(@user.person, limit: :all, max_time: nil).and_call_original Photo.visible(@user, @user.person) end + + it "does not contain pending photos" do + pending_photo = @user.post(:photo, pending: true, user_file: File.open(photo_fixture_name), to: @aspect) + expect(Photo.visible(@user, @user.person).ids).not_to include(pending_photo.id) + end end context "without a current user" do diff --git a/spec/models/post_spec.rb b/spec/models/post_spec.rb index 3be7c1ed3..afd154694 100644 --- a/spec/models/post_spec.rb +++ b/spec/models/post_spec.rb @@ -42,6 +42,21 @@ describe Post, :type => :model do end end + describe ".all_public" do + it "includes all public posts" do + post1 = FactoryGirl.create(:status_message, author: alice.person, public: true) + post2 = FactoryGirl.create(:status_message, author: bob.person, public: true) + post3 = FactoryGirl.create(:status_message, author: eve.person, public: true) + expect(Post.all_public.ids).to match_array([post1.id, post2.id, post3.id]) + end + + it "doesn't include any private posts" do + FactoryGirl.create(:status_message, author: alice.person, public: false) + FactoryGirl.create(:status_message, author: bob.person, public: false) + FactoryGirl.create(:status_message, author: eve.person, public: false) + expect(Post.all_public.ids).to eq([]) + end + end describe '.for_a_stream' do it 'calls #for_visible_shareable_sql' do diff --git a/spec/models/user/querying_spec.rb b/spec/models/user/querying_spec.rb index eeb447aa3..1a54d996a 100644 --- a/spec/models/user/querying_spec.rb +++ b/spec/models/user/querying_spec.rb @@ -45,22 +45,11 @@ describe User::Querying, :type => :model do expect(alice.visible_shareable_ids(Post)).not_to include(invisible_post.id) end - it "does not contain pending posts" do - pending_post = bob.post(:status_message, :text => "hey", :public => true, :to => @bobs_aspect.id, :pending => true) - expect(pending_post).to be_pending - expect(alice.visible_shareable_ids(Post)).not_to include pending_post.id - end - - it "does not contain pending photos" do - pending_photo = bob.post(:photo, :pending => true, :user_file=> File.open(photo_fixture_name), :to => @bobs_aspect) - expect(alice.visible_shareable_ids(Photo)).not_to include pending_photo.id - end - it "respects the :type option" do - post = bob.post(:status_message, :text => "hey", :public => true, :to => @bobs_aspect.id, :pending => false) - reshare = bob.post(:reshare, :pending => false, :root_guid => post.guid, :to => @bobs_aspect) - expect(alice.visible_shareable_ids(Post, :type => "Reshare")).to include(reshare.id) - expect(alice.visible_shareable_ids(Post, :type => 'StatusMessage')).not_to include(reshare.id) + post = bob.post(:status_message, text: "hey", public: true, to: @bobs_aspect.id) + reshare = bob.post(:reshare, root_guid: post.guid, to: @bobs_aspect) + expect(alice.visible_shareable_ids(Post, type: "Reshare")).to include(reshare.id) + expect(alice.visible_shareable_ids(Post, type: "StatusMessage")).not_to include(reshare.id) end it "does not contain duplicate posts" do diff --git a/spec/serializers/post_serializer_spec.rb b/spec/serializers/post_serializer_spec.rb index b891f2b5d..924fe6c71 100644 --- a/spec/serializers/post_serializer_spec.rb +++ b/spec/serializers/post_serializer_spec.rb @@ -9,9 +9,6 @@ describe Export::PostSerializer do it { is_expected.to include %("public":#{post.public}) } it { is_expected.to include %("diaspora_handle":"#{post.diaspora_handle}") } it { is_expected.to include %("type":"#{post.type}") } - it { is_expected.to include %("image_url":#{post.image_url}) } - it { is_expected.to include %("image_height":#{post.image_height}) } - it { is_expected.to include %("image_width":#{post.image_width}) } it { is_expected.to include %("likes_count":#{post.likes_count}) } it { is_expected.to include %("comments_count":#{post.comments_count}) } it { is_expected.to include %("reshares_count":#{post.reshares_count}) }