Aug
23
2010
2

Java C++ integracija

Kao što sam najavio u predhodnom postu, prilažem seminarski papir o integraciji Jave i C++-a. Naćićete ga posebno korisnim jer sadrži osnovne tehnike integracije i kratke ilustrativne primere koji će vam pomoći da se brzo podsetite ili vam dati kratak uvod i uputiti vas na nove tehnologije koje niste do sada znali…

Kroz dokument sam se samo dotakao sledećih tehnika:

  • integracija preko fajla
  • preko sistemske konzole
  • preko soketa
  • baza podataka
  • CORBA
  • Apache Thrift
  • JNI
  • JNA
  • SWIG
  • Qt Jambi

i priložio lične zaključke i filozofiju (Realno, ne bih bio to ja ako ne bi prosipao neku filozofiju :P ).

Nadam se da mi nećete zameriti što sam pomalo zbrzao dokument zbog manjka vremena. I takođe se nadam da ćete imati koristi od informacija koje se nalaze u istom.

Download java_cpp_integracija.pdf

Written by Stamat in: Programiranje,Radovi,Spika | Tags: , ,
Aug
17
2010
0

O programskim jezicima, njihovoj integraciji i programiranju

Svaki programski jezik je priča za sebe, počevši od toga da su ih razvijali različiti ljudi, sa različitim prohtevima u različitim okolnostima za različite svrhe. Oni su nastali kako bi olakšali rad svojih kreatora, a definicija pojma olakšanje varira od osobe do osobe kao što se da zaključiti. I sada se postavlja pitanje koje obično pitaju početnici u ovoj profesiji: “Koji je jezik najbolji?”. Često se rezočaraju kada im odgovorite da ne postoji programski jezik koji je najbolji ili pak da je svaki jezik najbolji u onome za šta je namenjen, ali u skladu s prethodno rečenim oba odgovora su prava. Javlja se još jedan zanimljiv fenomen, a to je da postoje iključivo Java programeri, isključivo C++, Python, C#… U industriji se pokazalo da uska specijalizacija obećava stabilnu karijeru, ali iskustvo me navodi da zaključim da ovakav pristup čini loše profesionalce. Programeri često zapadnu u zabludu da treba praktikovati i usavršavati samo jedan jezik ili tehnologiju, što je ekvivalnetno sa čovekom koji ulaže sve napore da ovlada samo čekićem od svih alata. Takvu osobu bi zvali samo kada je potrebno uraditi nešto u Javi ili zakucati ekser i takva osoba nije stručnjak već je alat. Svaki programski jezik je po osnovi sličan, tako da svako znanjem jednog kvalitetnog jezika je izuzetno lako naučiti sve ostale. Da to nije tako, postojanje UML-a (Unified Modeling Language) ili pseudo jezika, koji služe za modeliranje nezavisno od jezika, bi bilo apsurdno.
Problem koji se javlja kada se u istom timu sretnu dva programera usko specijalizovana za dva različita jezika jeste da često ni jedan od njih nije svestan procesa integracije, t.j. procesa razvoja projekta koji se zasniva na kolaboraciji dva ili više jezika i tehnologija, tačnije vidova komunikacije između funkcionalnih celina budućeg sistema razvijenih u različitim tehnologijama. Imao sam prilike sresti laike koji su tvrdili da je nemoguća kolaboracija između dva programa u različitim jezicima, no svako ko bi malčice bolje razmislio shvatio bi da svaki programski jezik osposobljen metodama za pisanje i čitanje fajlova, komunikaciju sa komandnom linijom sistema, kao i mrežnu komunikaciju te je izuzetno lako zaključiti da ovim vidovima ovakvi programi veoma lako mogu komunicirati. S druge strane stavljamo pitanje performansi izvršenja određenih poslova koje jezik generički obavja, dakle sigurno je brži C++ program za parsing teksta od Javinog i za izradu i za izvršavanje ili vam je lakše i brže izraditi GUI pomoću QT-a nego Swing-a. Poučeni ovim, prilikom kvalitetnog razvoja sistema treba imati u vidu važnost vašeg vremena kao programera i vremena korisnika te se koristiti alatima koji će vam omogućiti kvalitan i brz put ka željenim rezultatima. No kako bi uopšte razmišljali o razvoju uz pomoć više jezika mora se pre svega sačiniti kvalitetan model sistema, počevši od ciljeva koje treba rešiti, okvirne definicije sistema i razbijanja istog na fukcionalne celine do izbora tehnologija koje će potkrepiti prohteve za performansama, stabilnošću, bezbednošću, fleksibilnošću sistema i njegovih programera. Pri tome, vidovima komunikacije između funkcionalnih celina se mora posvetiti posebna pažnja jer se na njima zasniva i kolaboracija stručnjaka uključenih u razvoj projekta.
Integracija nije nužna već poželjna u koliko nemate vremena ni novca da zaposlite još programera ili trenirate vaš tim za tehnologiju izbora. Kroz dalji tekst biće predstavljene korisne multiplatformske tehnike integracije dva veoma popularna jezika današnjice Jave i C++-a, ali primetićete da mnoge od ovih tehnika ne zavise od ova dva jezika već se mogu primeniti u integraciji mnogih drugih. Potrebno je imati u vidu da integracija dolazi sa svojom cenom, u slučaju ova dva jezika to bi bio gubitak portabilnosti aplikacije, u nekom drugom možda dodatni interpreteri ili bilioteke, pa je nužno da integracija bude svesna odluka razvojnog tima.

Nastavak sledi u seminarskom papiru Integracija Jave i C++-a…

A šta bi John McCartly rekao o programiranju danas?

Written by Stamat in: Programiranje,Spika | Tags:
Aug
17
2010
0

Java vs. JavaScript or should I say Regular vs. Scripting.

A fine gentleman asked this question on a shelfari.com Computer and Programming group:

Java vs. JavaScript

if one studies java wud it b enough. i mean will java b able o cover all the applications on client side as javascript?

I was about 2 years late, but just to clear some stuff because people often asked me that same thing, here is the short answer I gave:

The main difference between these languages is that Java is a programming language and JavaScript is scripting language. What does this mean? A scripting language has an interpreter program which parses every line of code and executes it on the CPU, for instance JavaScript is a scripting language that is read and interpreted by web browser and then executed over the HTML creating Dynamic HTML or DHTML. Let’s say you want to move a <div> element when a key is pressed, you will use JavaScript. No other standardized language is capable of being interpreted by browser, so you can’t do that with Java without the Java to JavaScript AJAX, SOPA, JSON… based communication. And the easiest explanation is that the scripting languages script the behavior of running instance of a program. With this cleared what are the programing languages? Programing languages have a compiler, a program that parses the code and transcribes it into machine code (Asembly) so it can be run by CPU. But Java is a bit different than normal programing languages like C/C++, it has a compiler that compiles Java code into Java Byte-code, a compact translation of Java code that is later executed by a program called Java Virtual Machine or JVM which you get by installing Java Runtime Environment or JRE. So you can say that Java is a perfect blend of scripting and regular languages. It will minimize the size of the regular code for later interpretation so Java programs are usually small in size. And when we speak about java web programming in JSP (Java Server Pages), JSF (faces), Tapestry and other frameworks you basically use java code that is being interpreted by a serverside virtual machine. Because of JVM, java applications are able to work anywhere where JVM has been installed with small modifications for server side or mobile applications and that’s the main power of JAVA.
One more thing. You should know about OOP (Object Orientated Programming) concepts if you want to do java because in java everything is an object. On the otherhand JavaScript is structured programing language which can imitate the object notation and namespaces with JavaScript Object Notation, short JSON.
And if you want to become a programer never limit yourself to only one language/technology. A java expert is the same as Hammer expert, they’ll call you only to write java applications or hammer a nail in the wall thus you will become a tool not an programmer. All programing languages are similar in one way or another.  Learning to program is learning to ask questions and to think out of the box. If you know the basic logic of programming all you need are some cheatsheets or reference guides when switching between languages.
And by telling you to learn asking questions, you should learn using google, wikipedia and books… So if you dont understand something try googling it first then search through literature and than ask for help. Like they say Read The “Fine” Manual! :D Every language has it’s reference guide and other documentation if available free!

You’ve got to catch em all! Pokemon!

Aug
17
2010
1

Dropbox on Debian Lenny 64bit

The one of rare applications that stand for “simple=powerful” which mesmerize with their simplicity of usage and usefulness, mighty Dropbox!

The problem is there is no Debian amd64  dropbox with nautilus plugin. You can compile it yourself, or can search for already compiled version.
Recently I dug a compiled .deb for the mentioned arch and decided to upload it for you to use. Don’t let the version fool you, the Dropbox updates itself during the installation.

Download nautilus-dropbox_0.6.1-1_amd64.deb

Debian Testing/Unstable has it already in the repo, so just apt-get install dropbox

Written by Stamat in: Debian | Tags:
Aug
17
2010
1

Skype on Debian Testing/Unstable

Something just doesn’t work with the  latest version of Skype on Debian Testing/Unstable so if you have any problems starting it or logging in (I think it dies during the login) install the older version 2.0.0.72-1. This version is hard to find, so I uploaded it for you.

Download skype-debian_2.0.0.72-1_i386.deb

The installation process is the same…

For 32bit arch.  install the qt4 libs (libqt4-core and libqt4-gui) and this deb.

And for the 64 bit version install the 32bit lbs and force architecture.

apt-get install ia32-libs ia32-libs-gtk libasound2-plugins libqt4-core libqt4-gui
dpkg -i –force-architecture skype-debian_2.0.0.72-1_i386.deb

Written by Stamat in: Debian | Tags:
Aug
17
2010
1

Genius ColorPage Vivid 1200XE scanner driver and Debian

Story:

Few years ago I bought Genius ColorPage Vivid 1200XE scanner and it served me well.  But it was always connected to my Windows machine running XP. And for the time and my needs it was good until I completely switched all my PCs to Linux about a year ago. I installed SANE and it’s frontend  xSane but after connecting a dialog appeared saying something like “Cannot find/read file ccd569.fw”. I wasn’t so eager to find the solution so i left the scanner laying around… Few days ago I needed the services of my old pal and browsed the net for a quick solution instead of RTFM!

Solution:

The solution is quite simple. Download the XP driver and extract files from .exe archive. There will be two .cab files (data1.cab and data2.cab, as I recall) which must be extracted with cab extractor and there you have it, the ccd569.fw file.

If you hate doing the process described above, you can Download ccd569.fw firmware here.

Copy that file with root privileges to your /usr/share/sane/gt68xx/ directory, plugin your scanner and start xsane.
Everything should work fine now.

I presume that the same process follows the setup of other printers supported by SANE. You can find the list of devices here http://www1.sane-project.org/sane-mfgs.html

Firmware works on all CPU architectures of course.
Take care! :)

Written by Stamat in: Debian | Tags: ,
Aug
24
2009
2

Kako početi sa programiranjem?

Moram priznati da mi se smuči svaki put kada čujem: “Java je najbolji programski jezik”, “C# je najefikasniji”, “Windows je bolji od Linuxa”, “Ko ne zna JavaScript je noob”, “Moj IDE je bolji od tvog”… Liči li vam ovo na one klinačke fore: “Moj tata je jači od tvog”, “Pozvacu svog burazera da te prebije”, “Moj Action Man je bolji od tvog jer ispaljuje projektile iz ledja”…

Hahahaha! Znači složićete se da je rezlika između Eclipsa i Visual Studija ista kao i razlika imedju gore navedenih Action Mana. Možda je istina da su programeri večita deca ali ovakav stav je apsolutna glupost, zar ne?

1. Koji je najbolji programski jezik? – Tačan odgovor je NI JEDAN!!! Ako bi bili apsolutno precizni onda bi najbolji programski jezik bio Asembly!? Zašto? Uzmite u obzir da su svi jezici višeg reda nastali da bi se lakše programiralo u odnosu na Asembly. Svaki programski jezik je stvorila drugačija grupa ljudi s drugacijom ideologijom u svrhu resavanja drugačijih problema ili samo olakšavanja programiranja sebi. Dakle treba uzeti u obzir da svaki programski jezik rešava jednu oblast programiranja bolje nego i jedan drugi. Recimo C# je savrsen za programiranje aplikacija koje će trčati na windowsu jer je sve microsoft lepo zapakovao tako da programer teško može da pogreši u izboru biblioteka… Sa druge strane na Linuxu je recimo zanimljivo pisati u Pythonu jer je integrisan u većini distribucija sa gomilom već prisutnih biblioteka za interakciju sa sistemom. A onda recimo Java koja je amorfna (bezoblična)… lako ju je pretočiti iz desktop aplikacije u mobilnu ili web aplikaciju i radi svuda gde postoji mogućnost rada nekog kompatibilnog JREa (Java Runtime Enviroment) ali sve to za cenu sporijeg izvršenja aplikacije. Što se tilče Mac OSXa… za njega postoji X code koji je opet najbolje koristiti u slučaju programiranja za to okruženje… Kako za desktop tako i za Web developement… Primera je bezbroj kao i jezika a na vama je da birate…

2. Za koji programski jezik da se odlučim? – Pre svega se upoznajte sami sa sobom. Kao u svakoj važnoj životnoj dilemi, moraćete da izaberete ono što vam najviše odgovara ali tako da ne uzurpirate svoje predhodno stanje previše. Između više zala izabrati ono najmanje… ALI! Morate razlučiti koji od tih jezika ispunjava vaše potrebe, tačnije čime to želite da se bavite, kojom granom programiranja. Pogrešno je u ovakvoj situaciji pitati “Šta je to što se najviše ceni?”. Zapamtite, birate ono što vam najviše leži, što vas zanima i u čemu uživate a ne ono od čega se zarađuje previše, jer u suprotnom ćete završiti mučeći i proklinjući sebe.

Dakle sledeći logičan korak bi bio otići na wikipediju i videti “Šta to predstavlja programiranje?” Izaberite neku granu koja vam izgleda stabilno, :) i koja vas najviše zanima.

Naposled potražite na istom mestu koji programski jezici rešavaju probleme iz zadate grane programiranja? Hmmm ima ih podosta zar ne? Probajte da potražite rešenje na googlu i vidite šta vam izlazi u prvih par linkova… Uvek je dobra opcija početi sa najpopularnijim programslim jezikom, ali to ne znači da je najbolji.

Budite srećan programer, shvatite da je svaki program koji pišete vaša umetnička kreacija, uživajte u delu kreiranja, svaka linija koda je nešto posebno, osetite zadovoljstvo programiranja u jeziku koji vam leži… Ali pre svega se naoružajte zanjem! Jer programer koji programira u tehnologiji koju ne voli je identičan mački koju ste bacili u vodu… Voda je svuda oko ne a ona je prezire! Tako da od samog početka gledajte da se oslobodite napora i frustracija!

* Moja preporuka: Python – bićete jako zadovoljni čim se upoznate s pythonom, izrazito laka sintaksa, primorava vas da pišete uredan kod, radi odlično na svim operativnim sistemima, dosta primera, tutorijala, biblioteka, open-source projekata a što je najbitnije besplatan je!

Gledajte da uvek ciljate na besplatna rešenja jer ćete tako sebe osloboditi onog napora legalizacije i ostalih gluposti. Tako da se trudite da uvek ostanete slobodni po tom pitanju jer sa besplatnim tehnologijama samo ste tu vi i vaša mašta koja pravi inovativne nove programe koje ćete prodavati. Kako vam to zvuči, besplatna tehnologija, velika zarada?

3. Izabrali ste jezik, šta onda? – Sledeći korak je upoznati se sa tom tehnologijom!!! Ovaj korak je od izuzetne važnosti za vas! Raspitajte se po internetu o mogućnostima tog jezika ili jednostavno kupite štampanu knjigu o programiranju s toim jezikom. Ja mislim da nikada ne pijete neki nepoznati lek dok ne pročitate koji su negativni efekti i kako on deluje. Tako je isto i sa tehnologijama, potrudite se da naučite kako one funkcionišu, zašto je potrebno da se program kompajlira, kako se to izvodi, kako se program reprodukuje, itd…

4. Koji programsko okruženje da koristim? – Zapamtite da je sve na računaru u vidu 0 i 1 na najnižem nivou, na nivou Asemblija su komande, vrednosti i registri dok su na višem nivou svi programi u vidu tekstualnih fajlova! Svi moguci zapisi! :D Tako da je najbolje početi sa defoultnim text editorom vašeg operativnog sistema kao pto je Notepad ili gEdit… Kada budete znali pisati programe u ovim text editorima i kompajlirati ih putem konzole bićete spremni da krenete u izbor pravog razvojnog okriženja (IDE). Možete pokušati i malo ekstremniji pošetak a to je developement direktno iz konzole.

* Moja preporuka: Krenuti s običnim text editorom, preći kasnije na Notepad++ ili SciTe, i kada se dobro izvežbate kroz par jednostavnijih programa koje ste napisali možete preći na Eclipse recimo, ma da imajte u vidu da taj IDE čini neke stvari malo komplikovanijim i da je poprilično robustan.

Ako ste izabrali Python, IDLE je najbolji IDE za početak!

!!!ZAPAMTITE: Kada zauzmete određeni stav u životu, svi koji vam kažu da grešite greše jer vam uskrećuju slobodu posedovanja slobodnog mišljenja i sopstvene istine. Tako da kada izaberete jezik, svako ko vam kaže da taj jezik ne valja GREŠI! Ali zapamtite i to da svakog pravog intelektualca čini to da ima otvoreno mišljenje i bezuslovno razumevanje prema svemu, tako da budite sigurni da se upoznate i sa tehnologijom za koju vam neko ko kaže da grešite kaže da je najbolja, pa je tek onda odbacite ako vam se ne svidi! SVAKO IMA PRAVO NA SOPSTVENO VIĐENJE STVARI!

5. Koji operativni sistem je najbolji!? – Isto kao sa jezicima, NI JEDAN! Sve što je napravljeno od strane ljudi ima mane i može biti prevaziđeno evolucijom ljudskog mozga i okruženja! Svaka ljudska kreacija ima razlog!!!Birajte sistem koji vam najviše odgovara, i koji je u skladu sa programskim jezikom koji ste izabrali. Naravno besplatno rešenje će vas lišiti stresa legalizacije a open-source rešenje će vas osloboditi frustracije koja nastaje kada ste u nemogućstvu izmeniti. Iz istog razloga ja ne volim Windows. Osećam se kao da me je neko strpao u kutiju gde mogu da radim samo ono što mi je dozvoljeno od strane microsofta. I još da platim za takvo rešenje, haha mora da se šalite? Ali Windows je odličan u koliko nemate vremena da čačkate po sistemu da bi sebi omogućili neke osnove kao u Linuxu, Windows je fenomenalan jer ne troši vaše vreme, sednete za komp i znate zašto ste seli. Linuks vam daje slobodu koju nemate ni u jednom drugom sistemu, a to je da možete jednog dana da sednete i napravite potpuno svoje okruženje, svoj kernel, apsolutno sve svoje i takvo rešenje možete čak i prodati kao novi operativni sistem! MAC OSX je nešto između ova dva pomenuta, on je izrazito dobar jer je Apple pametan pa isporučuje sistem sa računarima koji je prilagođen tim komfiguracijama i radi savršeno na njima pa ako želite da se oslobodite mnoštva bagova i imate para da platite Applu za računar onda je to solidan izbor ali ne i najbolji! :D Ali onda se pozdravite sa mogućnošću menjanja hardvera, prčkanja po istom, prelemljavanja komponenata po volji, prčkanja po strukturi sistema, mogućstva izmene svega… a takvu jedinstvenu mogućnost vam nudi PC sa instaliranim LInuxom, mogućnost da bolje i lično upoznate tehnologije na kojima radite isto kao što poznajete stan u kome živite… mogućnost da naučite!

Nadam se da sam vam donekle pomogao u izboru i shvatanju nekih osnova… Sve ostalo je na vama i uvek će biti! :D

Još jedna bitna moja izreka je: Vi ste individualac i vaš univerzum se okreće oko vas ali tuđi univerzumi ne! :)

U svakom trenutku budite ponosni na ono što jeste i na ono što umete! :)

Written by Stamat in: Programiranje,Spika | Tags:
Apr
18
2009
12

Ubunchu – Ubuntu Manga (Strip)

Da mi je neko rekao da ćemo sutra svi izginuti u apokalipsi više bi mu veroavo nego da mi je rekao da se crta Ubuntu Manga (Japanski stil crtanja stripova). Još jedna zanimljivost koju je moj prijatelj Damir (gospodar Interneta) iskopao pre neki dan. Nisam verovao dok nisam otišao na link koji mi je poslao:
http://seotch.wordpress.com/2009/04/04/ubunchu01/

Veoma simpatična i pomalo dečija manga koja na interesantan način reklamira Ubuntu distribuciju i uporedjuje je sa Windows-om, Mac-om i CLI (comand line interface – interfejs komandne linije) Linuks distribucijama. Priča je smeštena u školki klub sistemskih administratora koji ima tri člana i svaki od njih podržava samo jedan operativni sistem. Akane, predsednica kluba podržava CLI Linux, Masato, podpredsednik zastupa Windows i Risa je Mac user…

Trenutno postoji samo prva epizoda koju sam na brzaka preveo na srpski, tako da ne zamerite na škrtom prevodu i fontu koji nema “ŠČĆŽĐ” pa sam izbegavao reči s tim slovima što sam više mogao.

Ubunchu! Epizoda 01: “Ubunchu” je stigao

Druga epizoda stiže tek idućeg meseca… Do tada prijatno čitanje

Written by Stamat in: Ubuntu/Debian | Tags:
Apr
12
2009
0

Empty Applications Menu Ubuntu bug

Problem:

No Application menu contents but the Places and System menu contents were ok. Main menu (alacarte) editor not responding.

Story:

I’ve been fooling around with my OS today and i overloaded the main partition with some data and after freeing it something happened and I’ve lost my application menu contents but the System and Places were fine…Tried to edit menu contents but Menu editor didn’t respond. Tried to install Debian menu and i managed to make only Menu editor work by copying Debian menu XML to  /home/<user>/.config/menus/applications.menu
Well I could navigate cause i am a happy Gnome-Do user and terminal friendly, but i like it all perfect so…
Killed myself Googling but no solution. And in the end disappointed, I was thinking about reinstalling it with a backup… But then i got the idea and did the following:

Solution:

- Make another account (System > Administration > Users and Groups)
- Fill only username, password and make it Administrator
- Logout
- Login to a new account
- sudo nautilus
- go to  /home/<new user>/.config (dont forget to select view hidden files in nautilus menu)
- new window and go to/home/<user>/.config and delete menus folder
- then copy the user-dirs.dirs and user-dirs.locale from  /home/<new user>/.config to /home/<user>/.config
- re-login to old account, delete new one
- sudo nautilus
- go to  /home/<user>/.config right click on files you have copied and edit permisions to old user

That’s about it… Hope it was useful! :D

Written by Stamat in: Ubuntu bugs solved,Ubuntu/Debian | Tags: , ,
Apr
08
2009
83

Kako postati haker?

Naći web tutorijal kako skinuti nečiji password za myspace, odraditi posao plašeći se da će vas neko traceovati, uništiti tuđu personalnu imovinu, završiti posao efikasno i nalepiti sebi na čelo nalepnicu na kojij velikim slovima piše JA SAM HAKER!!! Pogrešno!

Ovo samo znači da ne znate ni o čemu je reč a kamoli šta je to biti haker. Hakeri nisu nafurani likovi s filmova koji kucaju po nekim konzolama i meti jedu fajlove u vidu pakmena koji se kreće po ekranu. Naprotiv. Ako čitate ovo vi možda već i jeste haker!?

Hakeri su ljudi koje zanima kako stvari funkcionišu.

Koristeći znanje o funkcionisanju stvari oko sebe oni njihovim prilagođavanjem i usavršavanjem pomažu ne samo sebi nego i društvu. Oni se trude da prozru u tuđu umotvorinu i zabave radi naprave je boljom ili ugodijom.
Volite da gledate “how it`s made” na Discovery channel-u, vi ste haker.

Zapamtite, hakovanje nema direktne veze s računarima i programiranjem.

Hakovanje je filozofija i način života.
Recimo, haker ste ako vas zanima kako ljudi funkcionišu, kako misle, tada možete dobro da slažete i da izvučete bilo koju konverzaciju u svoju korist i to se zove Social Engineering (doslovni prevod – socijalno inžinjerstvo). Haker ste ako umete da popravite svakakve elektronske i mehaničke spravice. Tačnije ako razumete kako one funkcionišu znaćete gde je kvar. Haker ste ako vidite da vam se baterija na MP3 playeru izuzetno brzo troši i vi odlučite da nadjete kolo koje namerno crpi bateriju i izdvojite ga ili ugradite bateriju većeg kapaciteta. Haker ste ako znate da zakalemite biljku ili ukrstite dve različite vrste cveća. Haker ste ako znate da ukrstite dve različite vrste psa i dobijete treću. Haker ste ako razmišljate o tome kako univerzum funkcioniše. Haker ste ako ako znate pametno da postavite pitanje. Haker ste ako korisno koristite Internet…. Naravno haker ste ako znate da pronadjete bezbednosnu rupu u informacionom sistemu i pomognete da se zakrpi ili prijavite bug. Haker ste ako šaljete kvalitetan feedback na kvarove na vašem računaru i sistemu. Haker ste ako znate da razvijete aplikaciju koja će vam pomoći da lakše koristite računar i onda tu aplikaciju besplatno podelite sa drugima…
Ima zilion stavki i posedujući jednu ili više ovih “hakerskih” možete se predstaviti kao haker.

Zašto ljudi žele da budu hakeri?

Hakeri su ikononizovani u medijima kao neuhvatljivi upadači u sisteme i radi nekog višeg razloga (dobrog ili lošeg), moderni odmetnici veličani u okviru cyber punk kulture. Ljudima treba oslonac, potrebno je da poseduju nešto, neko zvanje ili titulu da bi se osetili dobro povodom sebe u moru ljudi gde ne mogu znati ko je gore a ko dole. Mediji veličaju neke stvari i ljudi poistovećujući se s istim kreću bez imalo logičnog razmišljanja da teže  nametnutoj im stvari i to se zove manipulacija medijima (verovali ili ne i to je hakovanje kao deo socijalnog inžinjeringa). Zato je mene nekolicina smešnih fancy ljudi “pitala”: “A kako ja to da postanem haker? Ja hoću da uhakujem ortaku facebook ili myspace”.
Hakeri nisu kriminalci, Krekeri su (Crackers, ne krekeri kao slani keks).

Krekeri zvani još i Black Hat Hackers (Hakeri Crnih Šešira ma da se ja ne slažem s tim da se oni svrstavaju u hakere i ako upotpunjuju to što znaju kako odredjeni sistemi funkcionišu) su zli momci koji imaju nameru da poruše neki sajt, da krekuju password od nečijeg naloga, da prodaju informacije, da se služe tudjim manama i tako varaju nedužne ljude. Oni to obično rade za novac ili iz opšte pakosti prouzrokovane manjkom razumevanja. Krekeri nisu ništa drukčiji od običnih uličnih prevaranata, lopova, presretača i špiuna.
Klasičan primer, okupi se grupa albanskih krekera da poruše neki naš .gov sajt…

Kompjuterski hakeri s druge strane istraživanjem bagova i rupa u sistemima ukazuju na muguću pretnju i pomažu da se ista ispravi. Provaljivanje passworda za facebook je za hakere toliko trivijalna i smešna stvar koju desetogodišnjak može da uradi i takav vid akticnost može samo predstavljati bruku. (Naravno podrazumeva se da znate na koje se načine to može izvesti i to je dobra stvar jer samim tim znate kako krekeri funkcionišu)

Lično, držim se onoga da čovek mora iskusiti nešto da bi zaista o tome pravo sudio tako da sam bio i u jednim i u drugim vodama. Kao svaki klinac ponet mišlju nametnutom medijima i  možda nekim vidom klinačkog egoizma odradio sam par Crackerskih poslića za neke sitne novce da bi tada kupio broš devojci koju volim. Ni ljubav ni poslovi (incident s policijom) se nisu bajno završili, jer sam s devojkom raskinuo ubrzo tako da nisam stigao da joj dam broš, koji sam kasnije poklonio drugoj dvojci pa se i ta veza loše završila. U svakom slučaju valjda sam od tih dogodovština postao malo zreliji čovek i usvojio novu misao a to je: Ono što ne želiš sebi ne čini ni drugima. A haker sam po prirodi još od 5-6 godine kad sam sklapao svoja prva elektrišna kola s baterijom, prekidačem i lampicom, tako da sam takva interesovanja gajio još od onda.

Kako poćeti???

Nikad nije kasno da se zapitate kako funkcioniše svet oko vas, pa čak i da uđete u sfere kompjutera i njihove profesionalne primene. Ponudiću vam par koraka, ali imajte u vidu da oni zavise od osobe do osobe i predpostaviću da svi koji ovo čitaju misle na hakere koji se bave računarima.

- Obavezno naučite Engleski – znanje ovog jezika će vam omogućiti mnogo opširniju literaturu za čitanje i veći opseg ljudi s kojima možete podeliti iskustva. Uzmite za primer da knjige u Srbiji zaostaju za svetskim izdanjima 2-3 godine što je u informacionim tehnologijama jako jako puno.
- Poželjno je biti maštovit i domišljat
- Naučite da postavljate pitanja – na mnoga od njih već znate odgovor i ako vam se to činilo daleko
- Naučite da korisno koristite Google i Wikipediju -čto ide u skladu s tim da znate dobro postaviti pitanje jer to doslovno znači da znate da izdvojite bitno od nebitnog tako da ćete lakše naći ono što vas interesuje
- Potražite neke hakerske blogove u sferi vašeg interesovanja
- Pridružite se nekom hakerskom društvu – ma koliko to delovalo laičko verujte mi da svuda ima kvalitetnih ljudi i možda će to biti pravi početni teren za vaš razvitak
- Shvatite da nije sve u društvu i pokušajte da se osamostalite
- Upoznajte se malo bolje s Internetom i zapitajte se kako radi – loše je to što većina ljudi ne zna kako se procesi na Internetu odvijaju i oni deluju glupo i primitivno kao kad bi nekome iz prašume tražili objašnjenje šta je to televizor.
- Naučite neki programski jezik – Izuzetno je važno znati programirati ne zbog samog posla nego sbog specifičnog načina razmišljanja. Damir i ja vam preporučujemo Python za početak. Jezik ima laku logičnu sintaksu, i samom strukturom vas primorava na učenje čistog koda, ali sam svedok koliko je močnih aolikacija urađeno u njemu stoga tvrdim da je izuzetno moćan i fleksibilan.
- Pokušajte napraviti vaš prvi program – programiranje je izuzetno zabavno
- Bilo bi poželjno da probate preći na Linux – jer samim korišćenjem istog će te naučiti mnogo toga čto korišćenjem windowsa ne možete i nije vam dozvoljeno da primetite.Tako da ćete samim korišćenjem povećavati svoje znanje. Predlažem neku Debian distribuciju iz razloga što Debian ima najveće društvo i korisnika i developera tako da ukoliko vas nešto interesuje sigurno niste jedini. Biće kasnije više reči o Linuksu.
- Upoznajte se sa strukturom računarskog hardvera i osnovima elektoronike – u životu treba biti svestran pa čak se i zapitati šta je u stvari ta magična kutija za kojom sedite svaki dan…

Svaki početak je težak i treba biti uporan i istrajan, kao što rekoh u naslovu bloga… Istina je negde tamo ali treba se pomučiti i naći je.
Kada prikupite ova osnovna znanja i iskustva možete se nazvati Hakerom i s ponosom nostiti simbol Hakera. Nastavićete svojim putem tamo kud vas mašta i želje vode…

Simbol Hakera

—”GLAJDER” (klizač) je simbol Hakera. Sad se pitate šta je pobogu ova apsurna tačkasta tvorevina. Nije teško zaključiti da je ovo formacija ćelija u jednom starom programu koji se zove Game of Life i o kome više možete pronaći ovde.
Igrač postavi ćelije po izboru i pusti “igru” da se razvija sama. Pravilo je jednostavno, ćelija se deli i ako nema suseda ona ugine. Glajderi su formacije ćelija takve da su sposobne da zadrže svoj “oblik” i održavaju se krećući se same samostalno od većih grupavja.
Sada možete primetiti metaforu. Hakeri su ljudi koji su svestrani po interesovanjima i razumevanjima i iznikli iz dručtva, postali su veći od te primitivne tvorevine, sposobni su da opstaju sami.

Sledeći link će vam možda šire i bolje pojasniti filozofiju Hakera i dobar je za početi http://www.catb.org/~esr/faqs/hacker-howto.html
Očekujte sadržaje koji će vas uvesti u svet programiranja i detaljnije zaći u Python i druge programske i skripting jezike kao i izbor,instalaciju i korišćenje Linuxa i open source softvera…

Written by Stamat in: Hakovi,Spika | Tags:

Powered by WordPress | Aeros Theme | TheBuckmaker.com