Hallgat-aries

Webpage starter



A webpagestarter egy kis alkalmazás, mely az asztal jobbfelső sarkába fészkeli be magát,
és megnyitja a begépelt weboldalcímeket. Ha csak egy sima szót írsz be, akkor a google.com-on
keres találatokat. A földgömbre kattintva eltűnik a textbox.
Akár több weboldalcímet és keresni kívánt szót is megadhatunk a # jellel elválasztva.

A kis picturebox-ra kattintva váltogathatsz a módok között,
ugyanis ez a program használható óraként, RAM és CPU kijelzőként.(jelenleg 9 féle módja létezik)

támogatott parancsok: ("/cpu" , "/ram" , "/clock" , "/date" , "/dual","/exit")

Az épp használt configot (1 darab számot) kimenti egy config fájlba.

Az automatikus indításhoz hozz létre egy parancsikont, és másold be a Startup mappába.

LETÖLTÉS
Programodban így nyithatsz meg weboldalakat:

try
{
  System.Diagnostics.Process.Start("http://aries.ektf.hu");
}
  catch (Exception ex)
{
  //MessageBox.Show(ex.Message);
}


Windows Paródia





Windows Paródia,  jópár éve készült PowerPointtal, paraszt vindóz néven vált ismertté, mert valaki rálelt a honlapomon,
és elkezdte küldözgetni. Álmomban sem gondoltam volna, hogy ilyen népszerűségnek örvend majd,
csak akkor tudatosult bennem hogy mit szabadítottam a világra, amikor középsuliban az egyik tanárom a tanóra elején levetítette.

LETÖLTÉS PowerPoint diavettítés

LETÖLTÉS


Pizza Call








Pizza-, ügyfél-, valamint rendelésnyilvántartó program.
Konzolos, a könnyen kezelhetőség jegyében íródott.

LETÖLTÉS

Vise Calc


Működése:

1. Start:
A kifejezést kisbetűs String formájában kapja meg az algoritmus, melyből rögtön eltávolítja
a szóközöket , és a random számot jelző # karaktereket kicseréli egy véltlen számra.
Ezután a kompatibilis szavakat cseréli le vezérlőkarakterekre, így lesz például a "sin"-ből 'Š'.
Mostmár lehetőség van változók definiálására, a változók számok vagy kifejezések lehetnek,
melyekre a nevükkel lehet hivatkozni. A változók egymásra is hivatkozhatnak, de nem lehetnek rekurzívak.
(Támogatott kifejezések:  #, sin, asin, cos, acos, round, sqrt, tan, atan, pm, mp, log, lg,  pi, [,])
HIBÁK:  Üres kifejezés inputként

2. Szintaxiselemző:
A zárójelek szintaktikáját elemzi egy veremmel, és figyeli a törtszámok egybeírását.
HIBÁK: Hibás zárójelezés, két törtszám összeolvadása (pl  3.14.14 )


3.Indexer:
Az így nyert kifejezésből kigyűjti a számokat egy listába, a kifejezésben egy karakterrel helyettesíti
az összes számot. Értelemszerűen ez a karakter nem lehet operátor.
HIBÁK: Ismeretlen karakter, Nincs szám a kifejezésben

4. Infix To Postfix:
A kifejezésben minden műveletet és minden számot egyetlen karakter jelöl.
Mostmár egy verem segítségével postfixessé alakíthatjuk a kifejezést.
Ha van  '±' vagy '∓' karakter, akkor két kifejezést készít,
ahol ezen karakterek helyén +, a másik kifejezésben - szerepel.
A két kifejezést egy ellenörző karakterrel elválasztva egy stringbe teszi.

5. Calculator:
Ez értelemszerűen a számolás. A postfix stringen végigmegy az algoritmus,
Ha szám karakterhez ér, a verembe tárolja az aktuális az olvasott számot..
Mivel a számok sorrendje a posfix-szé alakítás közben nem változik,
ezért nem kell a listában keresni, csak haladni a legrégebbitől az új felé.
Nálam a verem maga végzi a számolást egy vezérlőkaraktert kapva,
hiba esetén egy stringet is visszaad, és ha van kifejezésvariáns, akkor
kiűríti a vermet, és a második kifejezésre ugrik.
HIBÁK: Szintaktikai hiba, 0-val való osztás, Negatív számból gyökvonás,
Törtszám-adik gyökvonás, Asin,acos,atan esetén 1-nél nagyobb szám,
Törtet nem lehet pontosan faktorizálni, negatív számot nem lehet faktorizálni,
Nem lehet 0-ból logaritmust vonni, nem lehet negatív számból logaritmust vonni

6. Kiiratás:
Az eredmény kiírása, legyen az szám, vagy hibaüzenet.
az eredményt(eredményeket) egy verem tárolja string formában.

LETÖLTÉSEK

Experimental Edition







Az Experimental változatban nyomon lehet követni az algoritmus működését,
meg lehet nézni az éppen használt verem elemeit, léptető üzemmódban
lépésről lépésre haladva lehet elemezni a folyamatot. Ez főleg nekem hasznos
mivel tudom hogy a folyamat mely részénél van gond.


LETÖLTÉS

Normal Edition



A számológép felhasználói változata gombokkal, léptető mód nélkül.

LETÖLTÉS

Lite Edition



Számológép gombok nélkül, a műveleteket hiánytalanul elvégzi, változókat viszont nem nehet definiálni.
(Támogatott kifejezések:  #, sin, asin, cos, acos, round, sqrt, tan, atan, pm, mp, log, lg,  pi, [,])

LETÖLTÉS

Experimental Modded Edition



Az experimental verzió kibővített változata, ez kezeli a logikai értékeket is.
Egyelőre tesztelés alatt áll.  Ismert hibája, hogy a logikai értékek számokként is használhatóak,
bár néhány esetben ez előny is lehet.
(Támogatott kifejezések:  #, sin, asin, cos, acos, round, sqrt, tan, atan, pm, mp, log, lg,  pi, [,],true,false,&,|,<=,>=,=,>,<)

LETÖLTÉS
Használt műveleti jelek szimbólumai , precedenciáik, és operandusaik száma:

            new operat('+', 1, 2);        //összeadás
            new operat('-', 1, 2);        //kivonás
            new operat('±', 1, 2);        //plus-minusz
            new operat('∓', 1, 2);       //minusz-plusz

            new operat('*', 2, 2);        //szorzás
            new operat('/', 2, 2);        //osztás
            new operat('Ľ', 2, 2);        //a log b

            new operat('Ŀ', 3, 2);        //log10
            new operat('%', 3, 2);        //maradékképzés
            new operat('^', 3, 2);        //hatványozás
            new operat('ϙ', 3, 2);        // n. gyök
            new operat('√', 3, 1);        //gyökvonás
            new operat('~', 3, 1);        //kerekítés  
            new operat('!', 3, 1);        //faktoriális
            new operat('Š', 3, 1);        //sin
            new operat('Č', 3, 1);        //cos
            new operat('Ť', 3, 1);        //tan
            new operat('ť', 3, 1);        //atan
            new operat('ŝ', 3, 1);        //asin
            new operat('ĉ', 3, 1);        //acos
            new operat('ǻ', 3, 1);        //abszolútérték

Megjegyzés: az operátorszimbólumok önkényesek, én a programomban ezeket használtam.
Kezdetben a gombok is ezeket szúrták be, de az aliasok bevezetése óta csak programon belül vannak 
használatban. A számológép elfogadja őket, de értelemszerűen egyszerűbb az aliasokat használni. 


Bővített műveleti jelek szimbólumai , precedenciáik, és operandusaik száma:

            op.Add(new operat('&', 1, 2));//és
            op.Add(new operat('|', 1, 2));//vagy

            op.Add(new operat('†', 2, 2));//kisebb egyenlő <=
            op.Add(new operat('‡', 2, 2));//nagyobb egyenlő>=
            op.Add(new operat('=', 2, 2));//egyenlő
            op.Add(new operat('<', 2, 2));//kisebb mint
            op.Add(new operat('>', 2, 2));//nagyobb mint

            op.Add(new operat('+', 3, 2));
            op.Add(new operat('-', 3, 2));
            op.Add(new operat('±', 3, 2));
            op.Add(new operat('∓', 3, 2));

            op.Add(new operat('*', 4, 2));
            op.Add(new operat('/', 4, 2));
            op.Add(new operat('Ľ', 4, 1)); //a log b

            op.Add(new operat('Ŀ', 5, 2)); //log10
            op.Add(new operat('%', 5, 2));
            op.Add(new operat('^', 5, 2));
            op.Add(new operat('ϙ', 5, 2)); //kétoperandusú gyök  pl 3. gyök 16
            op.Add(new operat('√', 5, 1));
            op.Add(new operat('~', 5, 1));
            op.Add(new operat('!', 5, 1));
            op.Add(new operat('Š', 5, 1)); //sin
            op.Add(new operat('Č', 5, 1)); //cos
            op.Add(new operat('Ť', 5, 1)); //tan
            op.Add(new operat('ť', 5, 1)); //atan
            op.Add(new operat('ŝ', 5, 1)); //asin
            op.Add(new operat('ĉ', 5, 1)); //acos
            op.Add(new operat('ǻ', 5, 1)); //ABS

            op.Add(new operat('█', 0, 0));//képletelválasztóelem
            op.Add(new operat('(', 0, 0));//ezek nem valós operátorok,
            op.Add(new operat(')', 0, 0));//de ezeket is így kell tárolni, 
					  hogy a verembe kerüljenek

RAM counter



Egyszerű CPU és RAM teljesítmény kiíró program.
A szürke részre duplán kattintva eltűnik a kerete.

LETÖLTÉS
using System;
//using System.Collections.Generic;
//using System.Data;
//using System.Text;
using System.Windows.Forms;
using System.Diagnostics;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            a = int.Parse((freeram() + committedram() + 1).ToString());
            progressBar1.Maximum = a;
        }

        static bool dot = false;
        static int a;
        static PerformanceCounter ram_free = new PerformanceCounter("Memory", "Available Bytes");
        static PerformanceCounter ram_notfree = new PerformanceCounter("Memory", "Committed Bytes");
        static PerformanceCounter cpuCounter = new PerformanceCounter("Processor","% Processor Time","_Total");

        public double freeram()
        {
            return ram_free.RawValue / 1048576;
        }

        public double committedram()
        {
            return ram_notfree.RawValue / 1048576;
        }

        public double getcpu()
        {
           
            return Math.Round(cpuCounter.NextValue());
        }

        public double getram()
        {
            return Math.Round(committedram() / a * 100);
        }
       
        public string dotter()
        {
            if (dot) { dot = false; return " °"; }
            else { dot = true; return ""; }

        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            textBoxFree.Text = freeram().ToString();
            textBoxComitted.Text = committedram().ToString();
            textBoxCPU.Text = getcpu().ToString();
            textBoxRampercent.Text = getram().ToString();

            this.Text = "RAM: " + textBoxRampercent.Text + "%|CPU: " + textBoxCPU.Text + '%'+dotter();

            progressBar1.Value = int.Parse(textBoxComitted.Text);
            progressBarCPU.Value = int.Parse(textBoxCPU.Text);
        }

        private void Mouse_Double(object sender, MouseEventArgs e)
        {
            if (this.FormBorderStyle == System.Windows.Forms.FormBorderStyle.FixedDialog) {  
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; }
            else {  this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; }
        }
    }
}


Openbox környezet telepítése


Openbox asztali környezet kialakítása linux alatt. Kiinduló rendszer: Ubuntu 11.10.


Alap openbox környezet feltelepítése:

 sudo apt-get install openbox obmenu obconf menu
Tulajdonképpen ezzel kész is vagyunk, 
de csak egy üres asztalt kapunk jobbgombbal előhívató menüvel.
Még háttérképünk sincs.

Telepítsük fel a feh képnézegetőt a háttérképkezeléshez, és az
xcompmgr-t egyszerű grafikus effektusok használatához.

 sudo apt-get install feh xcompmgr
Már van grafikus motorunk, és háttérkép kezelésre alkalmas képnézegetőnk,
azonban a programindítási lehetőségeink elég fapadosak.

Telepítsük fel a synapse launchert, ami keresés alapú programindító,
a tint2 panelt, és ízlés szerint a docky oldalpanelt.
Szükség esetén a conky-t, és a Tilda terminált is feltehetjük. 

 sudo apt-get install tint2 docky synapse conky conky-all tilda
Az alapokkal kész is lennénk. Ugyanakkor kell egy script, ami mindent elindít,
és gyakorlatilag összerakja az asztali környezetünket a modulokból.
Én írtam egy olyan scriptet, ami ellenőrzi azt is, hogy épp milyen környezetben indul,
így gnome, gnome-shell vagy Unity alatt nem fog minden szolgáltatást elindítani,
lévén hogy ezeket a funkciókat azok a robosztus asztali környezetek alapból tudják.

Másold ki ezt a scriptet egy fájlba, adj neki futási jogot, és indítópultban tedd be automatikus indításra:
(Ha openbox alatt ügyködsz: synapset indítsd terminalból, synapseban meg már rákereshetsz az indítópultra)

Openbox felület indító script
Nyilván ha valamelyik programot nem használod, azt töröld ki a scriptből.

A tint2 újabban nem képes a hangerő ikont megjeleníteni, ezért egy trükkhöz kell folyamodnunk.
Készítsünk még egy scriptet, "opensound" néven! Kapjon futtatási jogot, és tegyük az indító script mellé!

Hang ikon script
Az obmenu paranccsal indítható a jobbgomb menü szerkesztése,
az obconf paranccsal indítható az openbox környezet testreszabása.

Ha nautilust használsz, és gondod lenne azzal, hogy a nautilus átveszi az asztal kezelését,
telepítsd a gnome-tweak-tool-t. (ez sajna leszedi magával a fél gnome-shellt is)
Ezzel grafikusan kikapcsolhatjuk a nautilus asztalkezelését.

 sudo apt-get install gnome-tweak-tool
SAJÁT KONFIGFÁJLAIM:

~/.config/tint2/tint2rc
~/.config/openbox/menu.xml

Persze lehet kísérletezni saját konfigokkal is.

Rooter


Ennek a programnak nem sok értelme van. A linux konzolban elindítva olyan bash-t ad, mintha te lennél a root.
Sajna nem támogatja a tabot.  Első paraméter a szerver neve, második paraméter az óhajtott ál-fehasználónév.
A program még egy látszólagos root mappát is létrehoz, valamint kicseréli a parancsokban a mappaneveket,
ezért olyan, mintha a root mappában dolgoznánk.

#!/bin/bash

RUN=1
if [ $# -eq 0 ]
then
SERVERNAME=server
ROOT=root
else

    if [ $# -eq 1 ]
    then
    SERVERNAME=$1
    ROOT=root
    else
    SERVERNAME=$1
    ROOT=$2
    fi
fi

RUNDATE=`date +%Y-%m-%d' '%H:%M:%S`
DIRNAME=r00t3rdir
NAME=`whoami`
HOME=`pwd`
ROOTDIR="$HOME/$DIRNAME"


if [ -x r00t3rdir ]
then
echo
else
mkdir $DIRNAME
chmod 750 $DIRNAME
fi

echo
echo Hello $NAME !
echo $RUNDATE
sleep 1
clear

while [ $RUN -eq 1 ]
do

    DIR=`pwd`    #| grep -v $NAME

    if [ ${#DIR} -eq 0 ]
    then
    DIR='~'
    fi

TEST=`pwd | grep -v $DIRNAME`
if [  ${#TEST} -eq 0 ]
then
echo -n $ROOT\@$SERVERNAME\:~\#" "
else
echo -n $ROOT\@$SERVERNAME\:$DIR\#" "
fi

read X
JOB=`echo $X | replace "/root" "$HOME/$DIRNAME"`


if [ ${#JOB} -gt 0 ]
then


case $JOB in

whoami)
    echo ${ROOT}
;;
l)
clear
;;
c)
clear
;;
id)
echo "uid=0(${ROOT}) gid=0(${ROOT}) csoportok=0(${ROOT})"
;;

"pwd")
if [ ${#TEST} -eq 0 ]
then
echo /root
else
pwd
fi
;;

wtf)
echo -------------------------------------------------------------------------
echo '|                        ROOTER v1.0 by hallgat                       X |'
echo -------------------------------------------------------------------------
echo \|'                        'Registered to: ${NAME}                      \|
echo '|                                                                       |'
echo '| usage:                                                                |'
echo '|        rooter.sh [server name] [desired name]                         |'
echo '|                                                                       |'
echo \|'           'Server: ${SERVERNAME}  Name: ${ROOT}                     \|
echo '|                                                                       |'
echo '|         Kepernyotorles: s,l   Ez a help: wtf   Kilepes: bye           |'
echo '|                                                                       |'
echo '|                      '$RUNDATE                                   \|
echo '|                                                                       |'
echo -------------------------------------------------------------------------
;;
"cd /root")
if [ -x r00t3rdir ]
then
cd $HOME/r00t3rdir
else
cd
mkdir $DIRNAME
chmod 750 $DIRNAME
fi

;;
"cd \~")
if [ -x r00t3rdir ]
then
cd $HOME/r00t3rdir
else
cd
mkdir $DIRNAME
chmod 750 $DIRNAME
fi
;;
"cd")
if [ -x r00t3rdir ]
then
cd $HOME/r00t3rdir
else
cd
mkdir $DIRNAME
chmod 750 $DIRNAME
fi
;;
"man rooter")

echo -------------------------------------------------------------------------
echo '|                        ROOTER v1.0 by hallgat                       X |'
echo -------------------------------------------------------------------------
echo \|'                        'Registered to: ${NAME}                      \|
echo '|                                                                       |'
echo '| usage:                                                                |'
echo '|        rooter.sh [server name] [desired name]                         |'
echo '|                                                                       |'
echo \|'           'Server: ${SERVERNAME}  Name: ${ROOT}                     \|
echo '|                                                                       |'
echo '|         Kepernyotorles: s,l   Ez a help: wtf   Kilepes: bye           |'
echo '|                                                                       |'
echo '|                       '$RUNDATE                                   \|
echo '|                                                                       |'
echo -------------------------------------------------------------------------

;;
bye)
RUN=0
;;
":)")
echo ':)'
;;
*)

TEST=`pwd | grep -v $DIRNAME`
if [  ${#TEST} -eq 0 ]
then
    LSE=`echo $JOB | grep ^ls`
    if [ ${#LSE} -gt 0 ]
    then
    $JOB | replace $NAME $ROOT | replace users root
    else
    $JOB
    fi
else
$JOB
fi
;;
esac

fi

done

cd
echo
echo Good bye $NAME !
echo
sleep 1
clear     





Hallgat Ádám - Eszterházy Károly Főiskola - Eger - ...