DuckDuckGo AI Chat umožňuje "pokecat si" s GPT-3.5 Turbo od OpenAI nebo Claude 1.2 Instant od Anthropic. Bez vytváření účtu. Všechny chaty jsou soukromé. DuckDuckGo je neukládá ani nepoužívá k trénování modelů umělé inteligence.
VASA-1, výzkumný projekt Microsoftu. Na vstupu stačí jediná fotka a zvukový záznam. Na výstupu je dokonalá mluvící nebo zpívající hlava. Prý si technologii nechá jenom pro sebe. Žádné demo, API nebo placená služba. Zatím.
Nová čísla časopisů od nakladatelství Raspberry Pi: MagPi 140 (pdf) a HackSpace 77 (pdf).
ESPHome, tj. open source systém umožňující nastavovat zařízení s čipy ESP (i dalšími) pomocí konfiguračních souborů a připojit je do domácí automatizace, například do Home Assistantu, byl vydán ve verzi 2024.4.0.
LF AI & Data Foundation patřící pod Linux Foundation spustila Open Platform for Enterprise AI (OPEA).
Neziskové průmyslové konsorcium Khronos Group vydalo verzi 1.1 specifikace OpenXR (Wikipedie), tj. standardu specifikujícího přístup k platformám a zařízením pro XR, tj. platformám a zařízením pro AR (rozšířenou realitu) a VR (virtuální realitu). Do základu se z rozšíření dostalo XR_EXT_local_floor. Společnost Collabora implementuje novou verzi specifikace do platformy Monado, tj. open source implementace OpenXR.
Byla vydána nová verze 0.38.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 4.4 nebo novější a také libplacebo 6.338.2 nebo novější.
ClamAV (Wikipedie), tj. multiplatformní antivirový engine s otevřeným zdrojovým kódem pro detekci trojských koní, virů, malwaru a dalších škodlivých hrozeb, byl vydán ve verzích 1.3.1, 1.2.3 a 1.0.6. Ve verzi 1.3.1 je mimo jiné řešena bezpečnostní chyba CVE-2024-20380.
Digitální a informační agentura (DIA) oznámila (PDF, X a Facebook), že mobilní aplikace Portál občana je ode dneška oficiálně venku.
#HACKUJBRNO 2024, byly zveřejněny výsledky a výstupy hackathonu města Brna nad otevřenými městskými daty, který se konal 13. a 14. dubna 2024.
V Gemini sídlí v době psaní tohoto zápisku Android 7.1.1 s jádrem 3.18.41 (build 10.5.2018). Jak jsem psal minule, Android je předinstalován, ale dá se připravit dual- , triple- či quad- boot s tím, že se rozdělí disk. Od doby, kdy jsem to dělal já vývoj trochu pokročil, nabízí se triple boot a už je v nabídce i rooted android. Ano, takhle jednoduché je získat na Androidu roota. Já jsem ještě musel ještě v "scatter file" měnit u partišny SYS23 boot.img na root_boot.img . Takže máme rootlý android 7.
V oficiálních návodech se hovoří o programu Magisk Manager, který z pochopitelných důvodů nenajdete na Google Play . Když ho ručně stáhnete, postupujete podle celkem blbovzdorného návodu na webových stránkách. Po rebootu jako by se nic nestalo. Ale stalo. Po té, co jste spustili "Instalovat" a nechali proběhnout reboot, ožily moduly "Magisk Hide", který informaci, že je Android rootnutý schovává před zvědavými aplikacemi (některé bankovní aplikace nemají rootnutý Android rády) a hlavně "Superuser". Ze začátku mne překvapilo, že tam nevidím žádnou aplikaci. Když jsem ale nainstaloval a spustil první aplikaci, která si řekla o roota (blíže viz níže) a povolil, objevila se tam. A když jsem Total Commaneru roota odepřel, objevila se tam taky, s možností volbu změnit. Takhle nějak si to představuji.
Buď není žádné zabezpečení (heslo, gesto, pin), nebo musím před zadáváním hesla swajpovat po obrazovce. To je dost opruz.
V diskuzi i na fóru mi od minulého zápisku odpověděli a řešení je prosté. Místo swipe se praští do mezerníku. To jde. Spolu s prodloužením doby do zhasnutí obrazovky z výchozích 30s na 2 minuty (dá se dřív přes Fn-Esc čili OFF) je to jen minimální zdržení, jen občas na poprvé nezareaguje enter - netuším proč. Každopádně vyřešeno - jestli píšu "Heslo" nebo " Heslo" je mi dost jedno. Když to občas nechce vzít enter, stačí ještě ťuknout do escape. Bez opuštění základní psací polohy. OK.
Dlouhý stisk je k ničemu
Tak tady začal můj výlet do hlubin světa androidu.Na gemini mi vadila první řada, která je Esc - 1 ... 0, Del/BS. V Gemini tupě udělali a HW popsali Esc +ěščřžýáíé, čímž se ale klávesa ě, která má být mezi Q a W dostala až mezi W a E. Takže dost neintuitivní. Takže přesun o jedno doleva, máme Esc ěščřžýáíé a "rezervu dne". Co s ní uděláme ? No samozřejmě, že mrtvou klávesu, která tam patří, takže "'" a "ˇ".
České mrtvé klávesy - háček a čárka (na umlaut zatím kašlu, ale už mám adepta na jeho umístění) mají Unicode ekvivalenty - je to Combining Caron (neboli háček) a Combining Acute Accent čili čárka. A ty se normálně do mapy zapíší a hotovo.
Jo, zapíší a hotovo, co ta nula, co tam byla před tím ? Hmm. Vrátíme se ještě jednou na začátek k té dokumentaci Androidu. Dozvíme se, že Android zná víc modifikátorů než linux:
# Copyright (C) 2012 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Czech (EU - qwertz) keyboard layout.
# Modified by jirka
#
type OVERLAY
map key 86 PLUS
### ROW 1
key 1 {
label: '1'
base: '\u011b'
capslock: '\u011a'
rshift: '1'
lshift: '+'
alt: '!'
fn: '^'
}
key 2 {
label: '2'
base: '\u0161'
capslock: '\u0160'
shift: '2'
alt: '@'
fn: '\\'
}
key 3 {
label: '3'
base: '\u010d'
capslock: '\u010c'
shift: '3'
alt: '#'
fn: '|'
}
key 4 {
label: '4'
base: '\u0159'
capslock: '\u0158'
shift: '4'
alt: '$'
fn: '~'
}
key 5 {
label: '5'
base: '\u017e'
capslock: '\u017d'
shift: '5'
alt: '%'
fn: '('
}
key 6 {
label: '6'
base: '\u00fd'
capslock: '\u00dd'
shift: '6'
alt: '^'
fn: ')'
}
key 7 {
label: '7'
base: '\u00e1'
capslock: '\u00c1'
shift: '7'
alt: '&'
fn: '{'
}
key 8 {
label: '8'
base: '\u00ed'
capslock: '\u00cd'
shift: '8'
alt: '*'
fn: '}'
}
key 9 {
label: '9'
base: '\u00e9'
capslock: '\u00c9'
shift: '9'
alt: '('
fn: '%'
}
key 0 {
label: '0'
base: '\u0301'
capslock: '+'
rshift: '0'
lshift: '\u030c'
alt: ')'
fn: '='
}
key DEL {
base: fallback DEL
shift: fallback FORWARD_DEL
}
### ROW 2
key Q {
label: 'Q'
base: 'q'
shift, capslock: 'Q'
}
key W {
label: 'W'
base: 'w'
shift, capslock: 'W'
fn: '['
}
key E {
label: 'E'
base: 'e'
shift, capslock: 'E'
alt: '\u20ac'
fn: ']'
}
key R {
label: 'R'
base: 'r'
shift, capslock: 'R'
fn: '\u20ac'
}
key T {
label: 'T'
base: 't'
shift, capslock: 'T'
}
key Y {
label: 'Z'
base: 'z'
shift, capslock: 'Z'
fn: '<'
}
key U {
label: 'U'
base: 'u'
shift, capslock: 'U'
fn: '>'
}
key I {
label: 'I'
base: 'i'
shift, capslock: 'I'
fn: '/'
}
key O {
label: 'O'
base: 'o'
shift, capslock: 'O'
fn: '\''
}
key P {
label: 'P'
base: 'p'
shift, capslock: 'P'
fn: '\u00fa'
}
key ENTER {
label: '\n'
base: '\n'
}
### ROW 3
key TAB {
label: '\t'
base: '\t'
}
key A {
label: 'A'
base: 'a'
shift, capslock: 'A'
}
key S {
label: 'S'
base: 's'
shift, capslock: 'S'
fn: '@'
}
key D {
label: 'D'
base: 'd'
shift, capslock: 'D'
}
key F {
label: 'F'
base: 'f'
shift, capslock: 'F'
}
key G {
label: 'G'
base: 'g'
shift, capslock: 'G'
fn: '$'
}
key H {
label: 'H'
base: 'h'
shift, capslock: 'H'
fn: '*'
}
key J {
label: 'J'
base: 'j'
shift, capslock: 'J'
fn: '"'
}
key K {
label: 'K'
base: 'k'
shift, capslock: 'K'
fn: '!'
}
key L {
label: 'L'
base: 'l'
shift, capslock: 'L'
fn: ';'
}
key APOSTROPHE {
label: '-'
base: '\u016f'
lshift: '"'
rshift: '!'
fn: '-'
fn+shift: '_'
}
### ROW 4
#key SHIFT_LEFT {
#}
key Z {
label: 'Y'
base: 'y'
shift, capslock: 'Y'
fn: '#'
}
key X {
label: 'X'
base: 'x'
shift, capslock: 'X'
fn: '&'
alt: '#'
}
key C {
label: 'C'
base: 'c'
shift, capslock: 'C'
alt: '&'
}
key V {
label: 'V'
base: 'v'
shift, capslock: 'V'
alt: '@'
}
key B {
label: 'B'
base: 'b'
shift, capslock: 'B'
}
key N {
label: 'N'
base: 'n'
shift, capslock: 'N'
}
key M {
label: 'M'
base: 'm'
shift, capslock: 'M'
alt: '\u00b5'
fn: '`'
}
key PERIOD {
label: '.'
base: '.'
lshift: ':'
rshift: ';'
alt: '>'
shift+alt: '\u00f7'
fn: '\u0082'
# insert
}
key DPAD_UP {
base: fallback DPAD_UP
fn: fallback PAGE_UP
rshift: '\u0073'
}
#key SHIFT_RIGHT {
#}
### ROW 5
#key CTRL_LEFT {
#}
#key FUNCTION {
#}
#key ALT_LEFT {
# fn: fallback SHOW_DIALER
#}
key SPACE {
label: ' '
base: ' '
alt, meta: fallback SEARCH
ctrl: fallback LANGUAGE_SWITCH
}
key COMMA {
label: ','
base: ','
lshift: '?'
rshift: '!'
alt: '<'
shift+alt: '\u00d7'
}
#
key DPAD_LEFT {
base: fallback DPAD_LEFT
fn: fallback MOVE_HOME
rshift: '\u0071'
}
key DPAD_DOWN {
base: fallback DPAD_DOWN
fn: fallback PAGE_DOWN
rshift: '\u0081'
}
key DPAD_RIGHT {
base: fallback DPAD_RIGHT
fn: fallback MOVE_END
rshift: '\u0079'
}
Tiskni Sdílej: