<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Twitter |</title><link>http://kalz.cc/tags/twitter/</link><atom:link href="http://kalz.cc/tags/twitter/index.xml" rel="self" type="application/rss+xml"/><description>Twitter</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Sat, 09 Sep 2023 18:23:30 +0200</lastBuildDate><image><url>http://kalz.cc/media/icon_hu_1c0e9cb08cfb822a.png</url><title>Twitter</title><link>http://kalz.cc/tags/twitter/</link></image><item><title>Exploring BlueSky as social network</title><link>http://kalz.cc/post/exploring-bluesky-as-social-network/</link><pubDate>Sat, 09 Sep 2023 18:23:30 +0200</pubDate><guid>http://kalz.cc/post/exploring-bluesky-as-social-network/</guid><description>&lt;p&gt;I have started using Twitter on the 24th of November of 2007 and have stopped posting any content exactly 15 years after. From my perception, the network which is called &amp;ldquo;X&amp;rdquo; now has been converted into a right-wing propaganda machine and I cannot understand my colleagues who are still active there. While I shifted some of my writing to LinkedIn, my writing there is longer and less spontaneus (professional pressure probably ;-). Although I did not really miss to post regularly, I have recently explored alternatives approaches like
and the
, but the approach and technology does not seem to be reliable yet. The more I was curious to explore
which is currently in a public beta for which invite codes are required. Finally, two days ago I have been invited and I had some time to explore BlueSky.&lt;/p&gt;
&lt;h4 id="vision-of-bluesky-and-first-impression"&gt;Vision of BlueSky and first impression&lt;/h4&gt;
&lt;p&gt;After we have seen so many problems with social networking sites (&amp;ldquo;If something is free, then you are the product!&amp;rdquo;), first and foremost it is essential to have a look at the organisation behind it and its technical vision and business model. BlueSky has been initially started under Twitter Inc. but after the takeover by EM the project went parted ways and the former founder of Twitter Jack Dorsey has established with others the Bluesky PBLLC, a Public Benefit LLC
. There is a background story on the non-profit status
. The potential to be taken over is low from my perspective due to the business model, the formulated vision and the technical basis (an open-source protocol).&lt;/p&gt;
&lt;p&gt;After logging in (No, I don´t have an invite code), the setup was very easy and due to the similarity with Twitter, the adoption process to tweet and seach was really fast. A tweet consists of 300 letters and you can add fotos, links and mention others. In addition, you can chose the language in which you are tweeting. So far, so good. After this initial experience, it is important to configure the service according to your needs, which I will explain next.&lt;/p&gt;
&lt;h4 id="adapting-personal-preferences"&gt;Adapting personal preferences&lt;/h4&gt;
&lt;p&gt;The first important configuration option is the configuration of your home feed. For some reasons, there is a threshold of likes defined before a reply to one of your feeds is visible. Also reposts and quotes can be activated to become visible. The second important configuration are the language options for the home feed. You can decide which languages you want to see in the feed. The third and most important configuration are available under the menu-items &amp;ldquo;Moderation&amp;rdquo;. Instead of trusting the owners of the platform regarding moderation like on &amp;ldquo;X&amp;rdquo;, on BlueSky the user decides which content should be shown. There are for example settings for explicit images, hate and spam and the user can configure what he wants to be shown. I think this is a very good sign and in general, the atmosphere on BlueSky is like in the old days before fake news, truth.social and alike. After this initial setup, one can search for useres of interest. Since it is not yet a public service, there are not yet as many interesting profiles on BlueSky for my domain of interest, but I expect a steady growth. Next I will explain some more advanced features.&lt;/p&gt;
&lt;h4 id="using-your-own-domain"&gt;Using your own domain&lt;/h4&gt;
&lt;p&gt;Instead of authenticating against the &amp;ldquo;bsky.social&amp;rdquo;-handle on the service, user who have access to their own domain name and the connected DNS-server can just add a TXT-entry and then the handle will be replaced by the individual domain.
, which describes the process. BlueSky also supports the buying and configuration of domain names soon.&lt;/p&gt;
&lt;h4 id="configuring-feeds"&gt;Configuring feeds&lt;/h4&gt;
&lt;p&gt;The process to configure your own feeds is at the moment still a little bit complicated. I have used the TweetDeck-lookalike &amp;ldquo;SkyDeck&amp;rdquo; for this process (see below). Via some combinations of conditions and regular expressions users can create feeds there which are the made public and are available in the app for the public.&lt;/p&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="blueskydeck"
srcset="http://kalz.cc/post/exploring-bluesky-as-social-network/blueskydeck_hu_8cc95e3f6bc81ee8.webp 320w, http://kalz.cc/post/exploring-bluesky-as-social-network/blueskydeck_hu_d81aa3700b817774.webp 480w, http://kalz.cc/post/exploring-bluesky-as-social-network/blueskydeck_hu_56599b83c3c2b7ae.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="http://kalz.cc/post/exploring-bluesky-as-social-network/blueskydeck_hu_8cc95e3f6bc81ee8.webp"
width="760"
height="526"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="feedcreation"
srcset="http://kalz.cc/post/exploring-bluesky-as-social-network/feedcreation_hu_3ce4a56d8d4d22f4.webp 320w, http://kalz.cc/post/exploring-bluesky-as-social-network/feedcreation_hu_33fc6c57112ea39c.webp 480w, http://kalz.cc/post/exploring-bluesky-as-social-network/feedcreation_hu_7d4af63a5951ccf5.webp 588w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="http://kalz.cc/post/exploring-bluesky-as-social-network/feedcreation_hu_3ce4a56d8d4d22f4.webp"
width="588"
height="760"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 id="summary"&gt;Summary&lt;/h4&gt;
&lt;p&gt;Overall, my impression of BlueSky is very positive and I will develop my account there for some time to make some more experiences, I hope that there will be an individual subscription option, because for an ad-free network, in which I can configure what I see and in which order, I would definetly be willing to pay.&lt;/p&gt;</description></item><item><title>Implications of the new Twitter Academic Research product track</title><link>http://kalz.cc/post/implications-of-the-new-twitter-academic-research-product-track/</link><pubDate>Fri, 02 Apr 2021 09:36:59 +0000</pubDate><guid>http://kalz.cc/post/implications-of-the-new-twitter-academic-research-product-track/</guid><description>&lt;p&gt;Twitter has recently announced that it will make the so called &amp;ldquo;full archive search&amp;rdquo; available for academic research. Until this change, it was either very costly (by paying for the enterprise version) or it took very long to build an archive of tweets (for example via the very good
). With the new product for researchers and the advanced version of the Twitter-API (v2) it is possible to collect tweets from the whole archive even until the first day of existence of Twitter. This changes the potential to use Twitter also for retrospective research completely. Since the setup is not that easy I will lead you through the steps required for starting your own research with the help of Twitter.&lt;/p&gt;
&lt;h1 id="step-by-step-instruction-towards-your-corpus-of-tweets"&gt;Step-by-step instruction towards your corpus of tweets&lt;/h1&gt;
&lt;ol&gt;
&lt;li&gt;To get started you need first of all an account with Twitter. Since you are planning to use Twitter in your resarch I expect that you will be already using Twitter and have an account. If you have a normal account you need to apply for a developer-account with the same credentials.&lt;/li&gt;
&lt;li&gt;To get a developer account, you need to
. It is important to understand the policy that Twitter sets for its developer account and it is especially useful to understand the concept of a &amp;ldquo;use case&amp;rdquo; in their policy. A use case can be understood as a group of activities which could be repeated for a different purpose. Collecting data from the full archive search would be for example a use case. Embedding Twitter feeds into a website would be a different use-case. The purpose is to keep the number of use-cases as small as possible.&lt;/li&gt;
&lt;li&gt;After having received a confirmation of the accepted developer account, you can apply for the academic
. In the application form you will be requested to provide links that prove that you are a researcher and you will need to specify some details about the purpose of your research with Twitter. An additional requirement is that your research should have a non-commercial purpose. After sending this form, you will receive in 24h a confirmation message that you will have access to the research track and via this an unbelievable amount of 10 Mio tweets which you can collect &lt;u&gt;per month&lt;/u&gt;!&lt;/li&gt;
&lt;li&gt;You will see the academic research product in your developer portal dashboard after acceptance. As a next step, you need to configure an app under the research track. Configuring an app provides you access to a number of keys and secret tokens. Your are not playing the Legend of Zelda here, but the these codes ensure that only authenticated users have access to the Twitter-API. The most important information here if the so called &amp;ldquo;bearer token&amp;rdquo; which you should copy to a textfile after you have configured your app. Ideally you make an additonal screenshot from it for your archive. Now your are ready to start collecting tweets. The only question is how you do this.&lt;/li&gt;
&lt;li&gt;The answer to your question is: R and nothing else. I am really fascinated by the creativity and cross-disciplinary broadness that the R-project has developed over time. I know that for many the learning curve is high compared to statistical software suites, but R gives you so much power for handling all kinds of data that is has opened also new research options for me. There are many existing packages for R to collect tweets, but none of them were at the time of the opening of the academic research track prepare to use the new API. Christoper Barrie and Justin Chuntingho have invested some brains to give you the easies approach to collect large number of tweets in the research track.&lt;/li&gt;
&lt;li&gt;The R-package
allows you to collect tweets in three lines of code. First of all you should install the package via their Github repository:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-R" data-lang="R"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;devtools&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;install_github&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;cjbarrie/academictwitteR&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;As a second step, you need to put your bearer-token in a variable.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-R" data-lang="R"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;bearer_token&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;-&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;&amp;#34;&lt;/span&gt; &lt;span class="c1"&gt;# Insert bearer token&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;As a third step your query will be defined.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;get_hashtag_tweets(&amp;#34;#twitterlehrerzimmer OR #twitterlehrerimmer OR #twlz&amp;#34;, &amp;#34;2013-12-01T00:00:00Z&amp;#34;, &amp;#34;2014-12-31T00:00:00Z&amp;#34;, bearer_token, data_path = &amp;#34;TWLZ21/data14/&amp;#34;, file = &amp;#34;TWLZ21/twlz14.rds&amp;#34;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;I have collected in this example all tweets that have been sent for three hashtags and I have defined the timespan for the collection between December 2013 and December 2014. Last but not least you provide a folder name and a file name which should be used to store the output.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Some words on computational capacity&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Since I have collected a larger number of tweets (around 700 000) and I have used a setup with a low amount of memory (1 GB), it was important to collect tweets in batches and then merge the data in a second step. I have during the process analyzed the performance of the computer and I have seen that I was running into memory limits. If you see this, you need to either choose a more powerful setup or make your timespans smaller to reduce the number of tweets per collection step. In the second featured post in this newsletter I will introduce a very flexible infrastructure for this kind of activities.&lt;/p&gt;</description></item></channel></rss>