V Brestu dnes začala konference vývojářů a uživatelů linuxové distribuce Debian DebConf25. Na programu je řada zajímavých přednášek. Sledovat je lze online.
Před 30 lety, tj. 14. července 1995, se začala používat přípona .mp3 pro soubory s hudbou komprimovanou pomocí MPEG-2 Audio Layer 3.
Výroba 8bitových domácích počítačů Commodore 64 byla ukončena v dubnu 1994. Po více než 30 letech byl představen nový oficiální Commodore 64 Ultimate (YouTube). S deskou postavenou na FPGA. Ve 3 edicích v ceně od 299 dolarů a plánovaným dodáním v říjnu a listopadu letošního roku.
Společnost Hugging Face ve spolupráci se společností Pollen Robotics představila open source robota Reachy Mini (YouTube). Předobjednat lze lite verzi za 299 dolarů a wireless verzi s Raspberry Pi 5 za 449 dolarů.
Dnes v 17:30 bude oficiálně vydána open source počítačová hra DOGWALK vytvořena v 3D softwaru Blender a herním enginu Godot. Release party proběhne na YouTube od 17:00.
McDonald's se spojil se společností Paradox a pracovníky nabírá také pomocí AI řešení s virtuální asistentkou Olivii běžící na webu McHire. Ian Carroll a Sam Curry se na toto AI řešení blíže podívali a opravdu je překvapilo, že se mohli přihlásit pomocí jména 123456 a hesla 123456 a získat přístup k údajům o 64 milionech uchazečů o práci.
Byla vydána (𝕏) červnová aktualizace aneb nová verze 1.102 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.102 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Byla vydána nová verze 2.4.64 svobodného multiplatformního webového serveru Apache (httpd). Řešeno je mimo jiné 8 bezpečnostních chyb.
Společnost xAI na síti 𝕏 představila Grok 4, tj. novou verzi svého AI LLM modelu Grok.
Ministerstvo vnitra odhalilo závažný kyberincident v IT systému resortu. Systém, do kterého se dostal útočník bez oprávnění, byl odpojen a nedošlo k odcizení dat [𝕏].
Odkazy
V dnešnom blogu si ukážeme možnosti modulu python-mode pre editor VIM. Jeho pomocou pridáme do editoru VIM možnosti automatickej kontroly zdrojových kódov, lepšiu navigáciu v kóde a dopĺňanie kódu.
Požiadavky pluginu sú relatívne štandardné. Je potrebné mať VIM vo verzii >= 7.0 s podporou pythonu. Okrem skutočne minimalistických inštalácii VIMu by mal fungovať prakticky všade.
Zdrojové kódy modulu sú dostupné github-e. Inštalovať modul je možné buď pomocou pathogenu, alebo manuálne. Používateľom pathogenu hádam nemusím vysvetľovať spôsob inštalácie, pre tých ostatných krátky návod ako pomerne bezbolestne pridať plugin do VIMu bez neporiadku v adresári ~/.vim
.
Zásuvný modul stiahneme príkazom git clone git://github.com/klen/python-mode.git
. Následne stačí adresár python-mode presunúť do podadresára ~/.vim/bundle/
(ak neexistuje musí sa vytvoriť) a pridať riadok set runtimepath+=$HOME/.vim/bundle/python-mode/
do ~/.vimrc
. Týmto je inštalácia prakticky hotová a pripravená na prípadnú migráciu na pathogen .
Pri prvom spustení je vhodné vygenerovať tagy z dokumentácie aby VIM vedel korektne vyhľadávať pri zadaní príkazu :help
. Tagy sa vygenerujú príkazom :helptags ~/.vim/bundle/python-mode/doc/
.
Pri používaní pluginu som narazil na pomerne nepríjemný problém, kvôli ktorému nie je možné do editoru vkladať unicode znaky. Problém sa týka len konzolového editoru (GVIM teda funguje správne). V prípade použitia konzolového VIMu sa dá tento problém odstrániť nahradením riadku locale.setlocale(locale.LC_CTYPE, "C")
riadkom locale.setlocale(locale.LC_CTYPE, "en_US.UTF-8")
v ~/.vim/bundle/python-mode/pylibs/pymode/lint.py
.
Pre dopĺňanie kódu nie je potrebné väčšinou nič nastavovať. Podpora virtuálneho prostredia (virtualenvwrapper) je štandardne zapnutá, stačí len spustiť VIM vo virtuálnom prostredí. Kód sa dopĺňa skratkou <Ctrl-Space>
. Plugin nepoužíva štandardné omnicomplete (<Ctrl-x>o
resp. <Ctrl-x>u
). Medzi nasledujúcim a predchádzajúcim výsledkom sa dá prechádzať štandardnými skratkami <Ctrl-n>
a <Ctrl+p>
.
Dopĺňanie kódu má na starosti knižnica rope. Nastavenia rope je možné upraviť v adresári .ropeproject/config.py
, ktorý sa automaticky vytvoril v podadresári s projektom.
Kontrola kódu prebieha štandardne pri uložení. Kód kontrolujú nástroje pyflakes
, pep8
, mccabe
, pylint
a code-checkers
. V štandardnom nastavení sa používa len prvá trojica. Nástroje, ktoré kontrolujú kód sa dajú zapnúť / vypnúť nastavením premennej g:pymode_lint_checker
v .vimrc
. Pomocou nej je možné napríklad úplne vyradiť niektorý z nástrojov na kontrolu kódu (minimálne pep8 je dosť ukecaný a občas vyhadzuje nezmyselné chyby). Nasledujúci kód vo .vimrc
vyradí z činnosti pep8:
let g:pymode_lint_checker = "pyflakes,mccabe"
Jednotlivé hlásenia je možné vypínať aj individuálne a to nastavením premennej g:pymode_lint_ignore
. Nasledujúci kód potlačí chybu E302 (2 voľné riadky zo definíciou funkcie / triedy) a všetky varovania:
let g:pymode_lint_ignore = "E302,W"
Dokumentácia sa prezerá klávesovou skratkou <Ctrl-c>d
. Po jej stlačení sa zobrazí dokumentácia k aktuálnemu symbolu pod kurzorom. Pre dokumentáciu knižníc je stále možné použiť klávesovu skratku <Shift-k>
. Krátky popis funkcií sa zobrazuje aj automaticky pri používaní dopĺňania kódu.
Navigácia v kóde nie je o nič zložitejšia než prezeranie dokumentácie. Opäť stačí presunúť kurzor na symbol a klávesovou skratkou <Ctrl-c>g
sa presunieme na jeho definíciu. Vyhľadať použitia symbolu je možné klávesovou skratkou <Ctrl-c>f
<Enter>
.
Hlavným zdrojom informácií o tomto plugine je súbor README.rst
. Dokumentácia integrovaná do VIMu bola v čase písania blogu neaktuálna. Ďalšie príkazy sa dajú zistiť príkazom :help ropevim.txt
.
Python-mode síce nie je najlepším pluginom na dopĺňanie kódu, prezeranie dokumentácie, kontrolu kódu a mnoho ďalšieho, ale patrí medzi najkompletnejšie moduly (riešenie všetko v jednom). V súčasnosti nie je repozitár na github-e aktívny. V kóde je pomerne veľké množstvo neopravených chýb (týkajú sa hlavne neaktualizovaných knižníc rope a ropevim).
Tiskni
Sdílej:
Pod win som plugin neskúšal, teoreticky tam môže nastať mnoho problémov od nenájdenia cesty ku knižniciam pythonu až po nekompatibilné volania dlopen. V konfigurácii som nič zlé nenašiel, možno niečo rozumné vypíše nasledujúci príkaz:
:call pymode#troubleshooting#Test()