Devadesátková hra Brány Skeldalu prošla portací a je dostupná na platformě Steam. Vyšel i parádní blog autora o portaci na moderní systémy a platformy včetně Linuxu.
Lidi dělají divné věci. Například spouští Linux v Excelu. Využít je emulátor RISC-V mini-rv32ima sestavený jako knihovna DLL, která je volaná z makra VBA (Visual Basic for Applications).
Revolut nabídne neomezený mobilní tarif za 12,50 eur (312 Kč). Aktuálně startuje ve Velké Británii a Německu.
Společnost Amazon miliardáře Jeffa Bezose vypustila na oběžnou dráhu první várku družic svého projektu Kuiper, který má z vesmíru poskytovat vysokorychlostní internetové připojení po celém světě a snažit se konkurovat nyní dominantnímu Starlinku nejbohatšího muže planety Elona Muska.
Poslední aktualizací začal model GPT-4o uživatelům příliš podlézat. OpenAI jej tak vrátila k předchozí verzi.
Google Chrome 136 byl prohlášen za stabilní. Nejnovější stabilní verze 136.0.7103.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 8 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
Homebrew (Wikipedie), správce balíčků pro macOS a od verze 2.0.0 také pro Linux, byl vydán ve verzi 4.5.0. Na stránce Homebrew Formulae lze procházet seznamem balíčků. K dispozici jsou také různé statistiky.
Byl vydán Mozilla Firefox 138.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 138 je již k dispozici také na Flathubu a Snapcraftu.
Šestnáctý ročník ne-konference jOpenSpace se koná 3. – 5. října 2025 v Hotelu Antoň v Telči. Pro účast je potřeba vyplnit registrační formulář. Ne-konference neznamená, že se organizátorům nechce připravovat program, ale naopak dává prostor všem pozvaným, aby si program sami složili z toho nejzajímavějšího, čím se v poslední době zabývají nebo co je oslovilo. Obsah, který vytvářejí všichni účastníci, se skládá z desetiminutových
… více »Dnes si zopakujeme základy z blogu Wordcloud z dat z Facebooku, tentokráte se ale podíváme na právě probíhající olympiádu a stáhneme si z Twitteru nějaká ta data o hashtagu #zoh2014! A aby toho nebylo málo, použijeme na vykreslení místo tradičního Rka Tagul.
Jestli někdo tvrdí, že Facebook je evil, pravděpodobně nic neví o Twitteru. Sociální síť, která je podle mnohých spíše protokol, vznikla na otevřenosti a podpoře stovek neoficiálních klientů. A copak se nestalo po tom co měla dostatečný market share? Ano děti, hádáte správně - s příchodem API v 1.1 byl konec s jakoukoliv otevřeností, místo toho přišlo strašlivé přihlašování přes OAUth a konec většiny neoficiálních klientů a Twitter tím podle mého překonal i tak "evil" společnost jakou je Facebook.
K přístupu do Twitter API je nyní tedy potřeba vytvořit si aplikaci s pokud možno co nejvyšším oprávněním. Tu vytvoříme na adrese apps.twitter.com, pod tlačítkem Create New App. Vyplňte jen povinné pole, rozhodně nevyplňujte Callback adresu. Occess level doporučuji "Read, write, and direct messages" < při slabším mi většina dotazů házela Not Authorized, ale je možné, že sem měl chybu i někde jinde. S tím jak se Twitter API mění je takřka nemožné najít na internetu na 100 % funkční návod.
Po vytvoření aplikace nás zajímá především záložka API keys a hodnoty API key a API secret, které použijeme v Rku pro generování přístupového tokenu.
Potřebné balíčky nejprve nainstalujeme a následně načteme:
install.packages("ROAuth") install.packages("twitteR") install.packages("wordcloud") install.packages("tm") library("ROAuth") library("twitteR") library("wordcloud") library("tm")
Pro ty z vás, kteří nedejbože používají Rko na Windows je nezbytné stáhnout certifikát, a jelikož mi CUrl házel nějaké neurčité chyby ohledně přístupu k /etc/ssl/certs, tak jsem byl tento postup nucen také použít:
download.file(url="http://curl.haxx.se/ca/cacert.pem", destfile="cacert.pem")
Teď jedna z nejdůležitějších částí, vytvoření OAuthFactory a její nastavení. Zde byl problém především v tom, že ve většině návodů byly cesty bez https, pouze jako http, což nyní nefunguje, ale vrací po handshaku neurčitou chybu "Unauthorized". Nezapomeňte nahradit API_key a API_secret za vaše hodnoty:
cred <- OAuthFactory$new(consumerKey='API_key', consumerSecret='API_secret', requestURL='https://api.twitter.com/oauth/request_token', accessURL='https://api.twitter.com/oauth/access_token', authURL='https://api.twitter.com/oauth/authorize')
A teď to příjde, handshake:
cred$handshake(cainfo="cacert.pem")
Tento příkaz vygeneruje url s access_tokenem, která vám vrátí PIN, který musíte napsat do Rka. Jakmile přihlášení projde, uložte si token na horší časy:
save(cred, file="twitter_auth.Rdata")
Poté stačí už jen zaregistrovat OAuth, což vypíše něco jako TRUE:
registerTwitterOAuth(cred)
A můžeme se směle vrhnout na tahání dat, což je to jediné co nás zajímá, že. Budeme chtít stáhnout všechny twíty například z 8. 2. obsahující hashtag #zoh2014. Bude tedy třeba vyplnit parametry od, do - ty se vyplňují jako since a until, since nastaveníme na 8. 2., until pak na 9. 2. (který tam pak nebude):
r_stats <- searchTwitter("#zoh2014", n=3000, cainfo="cacert.pem", since='2014-02-08', until='2014-02-09')
A teď už jen převod na corpus, čištění a spočtení frekvence:
r_stats_text <- sapply(r_stats, function(x) x$getText()) r_stats_text_corpus <- Corpus(VectorSource(r_stats_text)) r_stats_text_corpus <- tm_map(r_stats_text_corpus, tolower) r_stats_text_corpus <- tm_map(r_stats_text_corpus, removePunctuation) r_stats_text_corpus <- tm_map(r_stats_text_corpus, function(x)removeWords(x,stopwords())) ap.tdm <- TermDocumentMatrix(r_stats_text_corpus) ap.m <- as.matrix(ap.tdm) ap.v <- sort(rowSums(ap.m), decreasing=TRUE) ap.d <- data.frame(word = names(ap.v), freq=ap.v) write.table(ap.d, file="zoh2014.csv", append=FALSE, sep= "\t")
V tomto bodě opustíme R a vydáme se do Tagulu.
Tagul je jendoduchý nástroj na wordcloudy, který má jednu zajímavou vlastnost: dokáže vyplnit wordcloudem obrázek, který mu připravíte. Zvládá od jednoduchých tvarů přes jakkoliv složité obrysy a má tu vlastnost, že používá barvu pozadí obrázku, který mu předhodíte. Z vygenerovaného CSV z posledního kroku v Rku si tedy zkopírujeme třeba posledních 150 slov a vložíme je do Tagulu. Dále si seženeme nějakou fotku, u kterou si podle potřeby upravíme. V našem případě to byly Olympijské kruhy, které jsem zvektorizoval a nastavil jednolitou barvu všech kruhů. Po vykreslení tedy dostaneme toto:
Měření bylo úspěšné a nikdo při něm nebyl zraněn. O kostičku se hlašte v komentářích!
Tiskni
Sdílej: