log69 blogja

Ruby / split regex-szel

Ezért szeretem a Ruby-t, mert szinte mindent lehet, de egyszerűen és intuitív módon.

Szükségem volt arra, hogy szét daraboljak egy szöveget úgy, hogy külön a szöveg részek és külön az egybefüggő számok (digitek). Találomra betettem a split metódusba egy regex illesztést sima érték helyett és működött:


text = "hello33world222"

text.split(/\d+/)
=> ["hello", "world"]

text.scan(/\d+/)
=> ["33", "222"]

Web speech API

Hangfelismeréssel játszok az utolsó pár videómban, nyugodtan használjátok a kódjaimat. Tudnátok segíteni népszerűsíteni megosztással?

Egy oktató videó sorozatot csinálok (angolul mert több nyelvre nincs időm és a globális piacnak szánom), ha akartok kapcsolódni pl segíteni magyar oktató videókat csinálni a platformon vagy akár üzletileg más szempontból, nyugodtan keressetek.

Célom adott funkcionalitások megvalósítása nagyon egyszerű és rövid kóddal:

https://www.youtube.com/watch?v=o8NUoUszR38

frontfoo #2 / web app wizard / open source

Előző bejegyzésemben bemutattam nektek a fejlesztői platformom egy részét, amely segítségével nulláról írtam egy egyszerű és hatékony megoldást egy gyakorlati problémára az adatkezelés területén 1 óra alatt, vágatlanul, magyarázatokkal.

Viszont ez hosszú.

Az alábbi videómban kísérletet teszek arra, hogy drasztikusan leosszam ezt az időt.

Létrehoztam egy "web app wizard" nevű megoldást, amellyel web app-okat lehet generálni. Célom a rendkívül alap, egyszerű és átlátható kódbázis létrehozása volt, hogy pár klikkel tudjak létrehozni tetszőleges struktúrájú programot, amely tud adatot tárolni és keresni nagy hatékonyság és egyszerűség mellett.

frontfoo

További fejlesztéseimet szeretném megmutatni nektek. Szívesen veszek véleményt.

Gyors fejlesztői platform adat backend-del webes frontend fejlesztéshez:

Létrehozok "élőben" egy valós megoldást, ez a 10 perces bemutató szöveg után kezdődik és kb. 1 órás, mely egy lassú hangvételű programozás folyamatos magyarázattal a jobb követhetőségért. Alap webes ismeret szükséges. Nem rövid, viszont végig visz egy nulláról felépített teljes megoldáson, melynél az egyszerűség a cél egy működő alapmegoldást biztosítva.

videó itt | példa kód itt

Adatkezelőm plugin rendszere HTML és JavaScript-tel megvalósítva

Előző blog bejegyzésemhez még idetűzöm a plugin megoldásom leírását, melyhez szívesen veszek véleményt és kritikát.

Az adatkezelőmben lehet adatot tárolni, keresni és elemezni egyszerű módon céges funkciókkal megtámogatva. Viszont jogosan felmerülhet az igény arra, hogy minél kevesebb tanulás mellett azonnal és gyorsan be tudjunk illeszteni egy saját programozott megoldást, amely fogja az adatokat és önkényesen manipulálja.

A legjobb platformnak erre a HTML és JS kombót találtam, mert egyszerű vele a megjelenítés és az ipar nagy része használja.

Egyszerűsítés a végső megoldás mindig

Írtam egy szösszenetett egy apró kutatási irányomról face-en (szükséges a platform), ide is beteszem, kíváncsi vagyok kit mennyire érdekel az életében és munkájában az egyszerűsítés lehetősége.

Mit lehet tenni, ha a cég növekedésével hatványozottan nő a bonyolultsági szint és így a szükséges idő és energia?

Hatványozottan növelni a hatékonyságot úgy, hogy ne kelljen folyamatos befektetés. Ezzel folyamatosan növekvő megtakarított időt kapunk folyamatosan csökkenő ráfordítandó energiával.

Ezt hogy lehet megtenni?

Ruby 2.4.0

https://www.ruby-lang.org/en/news/2016/12/25/ruby-2-4-0-released/

Unify Fixnum and Bignum into Integer

Ruby had two visible Integer classes: Fixnum and Bignum. Ruby 2.4 unifies them into Integer. All C extensions which touch the Fixnum or Bignum class need to be fixed.

RUBY_VERSION => "2.3.3"

5.class => Fixnum

(55**55).class => Bignum

RUBY_VERSION => "2.4.0"

5.class => Integer

(55**55).class => Integer

OCS Inventory / CentOS 6

Infó:
https://en.wikipedia.org/wiki/OCS_Inventory
http://www.ocsinventory-ng.org

Kliens oldalra az agent-jüket kell feltenni.

Szerver oldalra telepítés:

Host: SL 6.x 64 bit
DB: MySQL 5.7 (gyártó oldaláról csomagból telepítve)

1) Frissebb Perl telepítése forrásból (v5.18.2, csomagban csak 5.10 van):

http://www.cpan.org/src/README.html

cd /usr/local/src
wget http://www.cpan.org/src/5.0/perl-5.18.2.tar.gz
tar xf perl*
cd perl*
./Configure -des
make install

2) OCS Inventory csomagok telepítése (v2.1.1, Fedora 21 csomagokból)

Ruby / webes processzek közti osztott memória

Request-ek közti gyors permanens adat elérés a cél pár apróságra (eldobható statisztikák), amit nem akarok db-ben tárolni, mert ágyúval verébre lenne.

Redis vagy saját sima text fájlba írkálós megoldás? A tesztek alapján lehetne az utóbbi :)

Setup:

sudo apt install redis-server
sudo gem install redis

Saját megoldás:

http://paste.ubuntu.com/23211865/

Teszt:

irb

require "benchmark"
require "redis"

r = Redis.new

# 100k test (redis 4.5x gyorsabb)

r.set "test", (1..100_000).map{rand}

store "test", (1..100_000).map{rand}.join("\n")

Backup DVD-re parancssorból

Problémám volt brasero-val adat dvd készítésekor. Meg amúgy is jobban kedvelem a parancssort, mert be tudom automatizálni.

- az M kapcsoló folytatja, de első íráshoz Z kapcsolóval való írás kell
- M kapcsoló hibát dob ha nem talál kezdetleges szekciót, ezért a ||
- $1 a kiírandó mappa elérési útja
- a mappa tartalma íródik csak ki, a mappa nem
- többször meghívható folytatólagos íráshoz
- usb-s dvd íróval ellenőriztem többszöri írással
- gyors, nincs szórakozás klikkelgetésekkel, kiírja és kész

growisofs -speed=1 -M /dev/dvd -R -J "$1" || growisofs -speed=1 -Z /dev/dvd -R -J "$1"

Ruby / egyszerű labirintus generálás

Még egy régi C64-es könyvemben volt Basic-ben egy egyszerű algoritmus labirintus generálásra, melynek természetesen nem garantált az átjárhatósága két oldalról. Az egyszerűség a szépsége.

asch Basic interpreterjéről jutott eszembe, gondoltam bedobom ide. Ruby-ban így is lehet például:

2000.times{ print (rand < 0.5) ? "\\" : "/" }

Firefox / kényelmes lap görgetés

Szükségem volt régóta egy olyan függőleges scrollozásra a weboldalakon, ahol sokat is tudok menni ha akarok. Eddig ezt használtam:

mousewheel.default.delta_multiplier_y => 200 (a default 100 helyett)

Így gyors scroll-t kaptam, de le kellett mondanom a szöveg finom görgetéséről.

Régóta kerestem valami jobb megoldást. Pár hete játszok az about:config-ban a "wheel" kereső szóra hozott beállításokkal. Ezt próbáltam ki, melynek -1 az alapértéke:

mousewheel.acceleration.start => 1

Ezzel gyorsítja a görgetést ha gyorsabban tekerem, tehát a finom scroll is megvan, és kényelmes a lap gyorsabb átgörgetése is. Érdemes a 2-es értéket is kipróbálni, illetve változtatni a mousewheel.acceleration.factor értékét. Nekem a fenti elégséges.

No CSS

Javaslom mindenkinek a Firefox / View / Page Style / No Style menüpontját. Egy felüdülés a CSS kukázása rengeteg oldalon. Saját cuccaimnál sem sok minden tudja überelni :)

Böngészési élmény javítás / Firefox

Susend Background Tabs (1.0.1) kiegészítőt használtam sokáig Firefox-ban böngészéshez arra, hogy az inaktív tab-okon futó javascript kódot kikapcsolja és így csökkentse a CPU terhelést, és növelje az akksi időmet a laptopon. Ebben a kiegészítőben az volt a jó, hogy azoknál a tab-oknál nem állította meg a script-et, amelyeket kitűztem (pinned). Illetve a megállítás azonnal folytatódott a tab-ra klikknél és nem voltak JS hibák. Írta is hogy mindent fagyaszt de memóriában tart, nem mint a többi kiegészítő, ahol kitolják az egész JS session-t és így nem minden weboldallal kompatibilis a vissza töltés.