Përmbajtje:
- Hapi 1: Çfarë ju nevojitet
- Hapi 2: Vendosja e bazës tuaj të të dhënave
- Hapi 3: Vendosja e NetBeans
- Hapi 4: Kodimi i klasës sonë kryesore
- Hapi 5: Përcaktimi i metodës sonë Krijo ()
- Hapi 6: Kodimi i Aplikacionit Tonë
- Hapi 7: Përpilimi dhe paketimi i skedarit tonë të kavanozit
- Hapi 8: Urime
Video: Aplikacioni Java u zhvillua në një bazë të dhënash të Google Drive: 8 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:27
A keni dashur ndonjëherë të krijoni një aplikacion që funksionon në një bazë të dhënash dinamike me të cilën është e lehtë të punoni, lejon përdoruesit jo-teknologjikë të futin të dhëna në to dhe nuk i zvogëlojnë burimet e kompanisë? Epo, atëherë kam një zgjidhje për ju. Sot, ne do të ndërtojmë një aplikacion që funksionon në Google Drive (mirë, veçanërisht Google Sheets) dhe që mund të përdoret për qëllime të ndryshme. Megjithëse ky mësim do të përqëndrohet në ndërtimin e një aplikacioni të bazuar në ngjarje për të treguar një listë të ngjarjeve që ndodhin rreth një kampusi kolegji, ky projekt lehtë mund të rishkruhet për të funksionuar në shumë mënyra, qoftë një aplikacion llogaritës për një aplikacion që monitoron stoqet për produktet. Unë kam bashkangjitur një kopje të aplikacionit tim nëse dëshironi të shihni se çfarë do të bëjmë. Zbërtheni skedarin zip dhe drejtojeni JAR brenda tij. Dhe tani, pa zhurmë të mëtejshme, le të fillojmë!
Hapi 1: Çfarë ju nevojitet
Për të filluar me këtë projekt, do t'ju duhet burimet e mëposhtme:
-
Netbeans
Unë rekomandoj shkarkimin e Java EE pasi ofron mbështetje për serverin, por nëse nuk doni disa skedarë të panevojshëm ose hapësirë shtesë në disk, Java SE do të funksionojë gjithashtu. Netbeans do të shërbejë si IDE për kodimin dhe përpilimin e aplikacionit tonë
-
Jsoup
Unë e kam përfshirë këtë në Instructables për tu shkarkuar. Anshtë një analizues HTML që do të na lejojë të tërheqim informacionin nga tabela e publikuar
-
SDK Java (V8)
Shkarkoni çdo skedar që i përshtatet sistemit tuaj. Nëse tashmë e keni Java SDK në një version të mëparshëm, unë rekomandoj përditësimin. Disa nga funksionet e mia përdorin shprehje të reja lambda vendase në v8, dhe kodi mund të mos funksionojë pa to në varësi të asaj që bëni
-
Visual Studio (Opsionale)
Plotësisht opsionale. Edhe pse NetBeans funksionon mahnitshëm për përpilimin dhe paketimin e aplikacionit tonë, unë nuk jam një tifoz i madh i studios së zhvillimit. Unë preferoj të kodoj në VS, pasi ka një ndërfaqe më të bukur. Nëse nuk ju pëlqen kjo, ka shumë IDE të tjera në internet, kështu që gjeni gjithçka që ju pëlqen më së miri
-
Kodi fillestar
Unë kam përfshirë kodin fillestar në burimet e kësaj, dhe gjithashtu e kam botuar atë në GitHub. Në këtë, unë kam skedarin kryesor (Ngjarje) që siguron strukturën për skedarin që në të vërtetë drejton aplikacionin, si dhe EventTester, i cili përdor JavaFX për të krijuar GUI për aplikacionin. Nëse dëshironi të merrni përvojën e plotë, nuk rekomandoj kopjimin dhe ngjitjen. Merrni kohën tuaj dhe lexoni këtë
Të tjerët:
Njohuri themelore të Java. Do të jetë e dobishme të jeni të ditur në Java, si shkrimi i funksioneve, krijimi i objekteve, etj
Hapi 2: Vendosja e bazës tuaj të të dhënave
Për të filluar projektin, së pari duhet të hyjmë në Google Drive dhe të krijojmë fletën që do të përdorim për të drejtuar aplikacionin tonë. Drejtohuni tek drive.google.com dhe klikoni ikonën "E Re" në këndin e sipërm të majtë dhe zgjidhni "Fletët" nën këtë.
Pasi të jetë ngarkuar fleta juaj, vazhdoni dhe riemëroni këtë në diçka që mund të njihet lehtësisht. Pasi ta keni bërë këtë, vazhdoni dhe plotësoni rreshtin e sipërm me emrat e të dhënave tuaja, siç janë gjërat që do të vendosni në secilën kolonë. Duke parë shembullin tim këtu, unë kam etiketuar rreshtin e parë me gjëra të tilla si "Emri i Ngjarjes", "Data", etj.
Pasi ta keni bërë këtë, filloni të mbushni spreadsheet -in tuaj me të dhënat që dëshironi të plotësoni. Mos harroni të formatoni të gjitha të dhënat tuaja në mënyrë të ngjashme, në mënyrë që kodi të jetë në gjendje të punojë me të pa hedhur gabime. Për shembull, nëse planifikoni të përdorni datat në kodin tuaj, kini kujdes që çdo datë të formatohet njësoj, përndryshe kodi nuk do të jetë në gjendje ta analizojë atë.
Pasi të keni futur të dhënat tuaja, publikoni spreadsheet -in duke shkuar te "File" -> "Publish to the web." Nga këtu, ju do të dëshironi të zgjidhni të gjithë dokumentin dhe të siguroheni që ai të botohet si një skedar HTML, në këtë mënyrë aplikacioni ynë është në gjendje të tërheqë të dhënat në mënyrë korrekte. Pas publikimit të spreadsheet -it tuaj, sigurohuni që të mbani shënim lidhjen që ofron. Kjo do të jetë e nevojshme më vonë në aplikacion.
Hapi 3: Vendosja e NetBeans
Tani që kemi spreadsheet -in tonë, është koha për të krijuar NetBeans në mënyrë që të fillojmë të kodojmë. Pasi të shkarkoni dhe instaloni NetBeans dhe Java SDK tuaj, shkoni përpara dhe krijoni një projekt të ri. Kur zgjidhni një lloj, zgjidhni kategorinë "Java" dhe projektin "Java Application". Zgjedhni çfarëdo që do të donit që projekti juaj të quhej (timin e kam quajtur thjesht "Event"). Zgjidhni kutinë e zgjedhjes pranë "përdorni dosjen e dedikuar për ruajtjen e bibliotekave", si dhe atë përveç "Krijo klasën kryesore". Pas kësaj, NetBeans duhet të krijojë një drejtori projekti dhe projekti për ne që të fillojmë të punojmë, ashtu si ai në figurë.
Para se të fillojmë kodimin, do të na duhet gjithashtu të sigurohemi që NetBeans ka bibliotekën JSoup që do t’i duhet për të analizuar spreadsheet -in tonë. Në NetBeans, klikoni me të djathtën në ikonën "Bibliotekat" nën drejtorinë e projektit tuaj. Nën menunë që shfaqet, zgjidhni butonin për të shtuar një skedar.jar. Tani, lundroni kudo ku keni vendosur shkarkimin tuaj jsoup (ka shumë të ngjarë dosjen tuaj të Shkarkimeve, përveç nëse e keni specifikuar diku tjetër). Zgjidhni këtë skedar dhe shtoni atë bibliotekë. Nëse zgjeroni dosjen tuaj të Bibliotekave në NetBeans, tani duhet të shihni jsoup.jar në këtë zonë. Pasi ta kemi bërë këtë, tani mund të fillojmë të kodojmë aplikacionin tonë.
Hapi 4: Kodimi i klasës sonë kryesore
Pra, hapi i parë në kodimin e aplikacionit tonë është krijimi i klasës tuaj kryesore. Klasa juaj kryesore do të jetë aty ku ne krijojmë objektet tona, kemi metodat që ndërveprojnë me JSoup, dhe më shumë. Duke supozuar se të gjithë që lexojnë këtë kanë përvojë në kodim, shkoni përpara dhe përdorni importet e mëposhtme:
import java.util. Koleksione;
import java.util. List;
import java.util. ArrayList;
import java.util. Date;
import java.util.stream. Stream;
import java.util.stream. Mbledhësit;
import java.text. SimpleDateFormat;
import java.text. ParseException;
import org.jsoup. Jsoup;
import org.jsoup.nodes. Dokument;
import org.jsoup.nodes. Element;
importoni org.jsoup.select. Elementet;
import javafx.beans.property. SimpleStringProperty;
Kjo mund të duket shumë, dhe në varësi të projektit tuaj, gjithçka mund të mos jetë e nevojshme. Ndërsa vazhdojmë të kodojmë, NetBeans do t'ju njoftojë nëse keni ndonjë import të papërdorur, kështu që ne gjithmonë mund t'i fshijmë ato më vonë. Sidoqoftë, kjo është ajo që na nevojitet tani për tani.
Pasi të kemi marrë deklaratat tona të importit, le të vazhdojmë dhe të deklarojmë klasën tonë. Nëse planifikoni të përdorni Datat ose ndonjë objekt jo-themelor kur zhvilloni objektin tuaj specifik për klasën, unë rekomandoj të shtoni një "zbaton të krahasueshme" në deklaratën tuaj të klasës. Kjo do t'ju lejojë të krahasoni Objektet, gjë që do t'ju lejojë të renditni një listë të ClassObjects më vonë. Pasi ta keni bërë këtë, vazhdoni dhe deklaroni të gjitha variablat e shembullit që do t'ju nevojiten. Për çdo varg publik që krijoni, do t'ju duhet gjithashtu të krijoni SimpleStringProperty për të. Këto janë objekte JavaFX që do të na lejojnë të punojmë me objektet tona të klasës kryesore më vonë.
Tani, vazhdoni dhe deklaroni se keni qasje në funksionet. Sa i përket variablave tuaj bazë, ju mund t'i emërtoni funksionet tuaja çfarëdo që të zgjidhni. Sidoqoftë, për funksionet e hyrjes SSP, duhet të përdorni formatin getFunctionNameHere (). Kjo ndodh sepse më vonë do të përdorim JavaFX për t'u lidhur me këto funksione, dhe funksionet që do të përdorim kërkojnë që ne të fillojmë funksionet tona SSP me get. Ju mund të shihni një shembull më lart.
Pasi të keni përcaktuar të gjitha variablat tuaja të aksesit, vazhdoni dhe përcaktoni çdo funksion tjetër që mund t'ju nevojitet. Kjo është shumë specifike për përdoruesit, pasi funksionet që ju nevojiten ndryshojnë nga projekti në projekt. Nëse keni nevojë për frymëzim, kontrolloni Javadoc tim ose kodin aktual dhe shihni disa nga funksionet që kam bërë. Për shembull, unë krijova një funksion renditjeje i cili rendit një listë sipas datës, si dhe funksione që kthejnë vetëm Ngjarje me statuset e grupit të publikut, dhe më shumë. Megjithëse është në rregull t'i bëni këto statike në mënyrë që të bëni disa testime, unë rekomandoj që të mos keni asnjë metodë statike sapo të përfundoni korrigjimin, për të shmangur gabimet kur të arrijmë në hapin tjetër të projektit.
Hapi 5: Përcaktimi i metodës sonë Krijo ()
Tani vjen ndoshta pjesa më e rëndësishme e kodit, ku ne do të përcaktojmë metodën tonë të krijimit (), e cila është ajo që në të vërtetë do të hyjë në faqen tonë në internet dhe do të na marrë të dhënat. Importantshtë e rëndësishme të theksohet se do t'ju duhet të shtoni një linjë përjashtimesh në deklaratën tuaj të metodës, kështu që ne nuk duhet të shkruajmë blloqe të provës në kodin tonë. Për të filluar, shkoni përpara dhe shpallni një listë bosh të objektit tuaj. Në rastin tim, dukej si
Ngjarjet e ngjarjeve = ArrayList e re ()).
Tani, shkoni dhe gjeni atë URL që keni kopjuar më parë në tabelën e publikuar. Shpallni këtë lidhje si një varg në Java dhe quajeni atë si të doni. Tani, vazhdoni dhe shpallni një dokument të ri Jsoup. Ju mund ta bëni këtë duke krijuar një objekt të ri dokumenti, si p.sh
Document = dokument i ri ();
Tani, vazhdoni dhe vendosni dokumentin tuaj që të lidhet me URL -në tonë dhe të marrë të dhënat. Për ta bërë këtë, provoni:
Document doc = Jsoup.connect (url).get ();
Tani, ne duhet të marrim trupin e dokumentit tonë, i cili është vendi ku ruhen të dhënat aktuale.
Trupi i vargut = doc.body (). Tekst ();
Tani, ne duhet të fillojmë të nxjerrim të dhëna nga trupi. Meqenëse të dhënat tona janë në një tabelë (pasi ishte një spreadsheet), ne duhet ta tërheqim tabelën nga trupi. Le te perpiqemi
Tabela e elementeve = doc.select ("tabela"). Merrni (0);
Kjo zgjedh tabelën e parë. Në këtë rast, ekziston vetëm një. Tani, shkruani
Rreshtat e elementeve = tabela.zgjedh ("tr");
Kjo na jep të gjitha rreshtave në tabelën në fjalë.
Pra, tani, të gjitha të dhënat tona janë brenda këtij variabli të rreshtave. Kjo është mirë dhe gjithçka, por e gjithë qëllimi i shkrimit të këtij funksioni brenda kësaj klase është që ne të krijojmë objekte prej saj. Pra, para se të mund ta kthejmë këtë, duhet të krijojmë një Listë nga rreshtat tanë. Për ta bërë këtë, ne mund të përdorim një lak for. Duhet të vërej se kjo më mori një sprovë të vogël dhe gabime për të dalë në rregull. Kuptova se kur tërhiqem nga rreshtat, disa nga të dhënat tona nuk janë të dobishme për këtë situatë, pasi sigurojnë gjëra të tilla si emri i fletës individuale, rreshti i parë me idetë tona të të dhënave mbi të, etj. Në fund, unë vendosa fillestarin duke futur numrin për lakun for në 2, kështu që i anashkalon këto artikuj dhe mund të krijojë artikujt tanë. Në fund, unë zhvillova një vështrim me kodin
për (int i = 2; i <rreshtat. madhësia (); i ++) {
Rreshti i elementit = rreshtat. Merrni (i);
Elementet cols = row.select ("td");
Tani, për të krijuar një objekt, bëni diçka si
Emri i objektit = Objekti i ri (cols.get (0).text ());
Në thelb, cols.get (0) do të marrë të dhënat nga rreshti (i) kolona (0) dhe do t'i kthejë ato në një varg i cili më pas mund të kalohet në konstruktorin e objektit.
Pas vendosjes së konstruksionit tuaj, shtojeni atë në Listën që krijuam më herët me list.add (), si p.sh
ngjarjet.shto (emri);
Tani, mbyllni lakin tuaj for dhe thërrisni çdo funksion që ju nevojitet tani. Për shembull, unë thirra funksionin tim të renditjes për t'i rregulluar Ngjarjet sipas datës. Pasi ta keni bërë këtë, ktheni Listën tuaj dhe pastaj mbaroni me këtë seksion!
Hapi 6: Kodimi i Aplikacionit Tonë
Krijoni një skedar të ri dhe emërtojeni atë çfarëdo që zgjidhni. Ju do të keni nevojë për importet e mëposhtme:
import java.util. List;
import java.util. ArrayList;
import java.util. Date;
import javafx.geometry. Pos;
importo javafx.scene.layout. HBox;
import javafx.application. Application;
import javafx.collections.transformation. FilteredList;
import javafx.scene.text. Font; importoni javafx.scene.control.*;
import javafx.collections. FXCollections;
import javafx.collections. ObservableList;
import javafx.geometry. Insets;
import javafx.scene. Group;
import javafx.scene. Scene;
importo javafx.scene.control. Label;
import javafx.scene.control.cell. PropertyValueFactory;
import javafx.scene.layout. VBox;
import javafx.stage. Stage;
E di që kjo mund të duket shumë, por më besoni, ato janë të nevojshme për ne që të ekzekutojmë krijimin e aplikacionit tonë. Vazhdoni të deklaroni klasën tuaj dhe sigurohuni që ajo të zgjerojë Aplikimin, pasi ky është një komponent i domosdoshëm i projektit. Në fillim, deklaroni një ndryshore të instancës së re që është TableView e objektit tuaj, si p.sh
tabela private TableView = TableView e re ();
Gjithashtu, deklaroni një metodë kryesore, të cilën ne do ta përdorim për të nisur aplikacionin. Në thelb, duhet të duket si fotografia në krye.
Tani, ne duhet të krijojmë metodën tonë të fillimit. Sigurohuni që të hedh Exception, meqenëse ne do ta quajmë metodën create () nga klasa jonë e mëparshme. Bëni një ngjarje të re me parametra bosh, thjesht që të mund ta quajmë metoda e krijimit me të. Përcaktoni një listë të re dhe vendoseni atë të barabartë me rezultatin e krijimit (). Tani, krijoni një listë të re ObservableList, e cila do të përdoret për të mbushur tabelën tonë me të dhënat tona. Përcaktoni atë si:
Të dhënat ObservableList = FXCollections.observableArrayList ();
Tani, krijoni një skenë të re me:
Skena e skenës = Skena e re (Grupi i ri ());
Vendosni titullin, gjerësinë, lartësinë dhe çdo gjë tjetër që ju nevojitet për gjithçka që funksionon për ju. Ju mund t'i shihni vlerat e mia në imazhin në krye. Tani, ne mund të fillojmë të vendosim tryezën tonë. Për të gjitha informacionet që dëshironi të shfaqni, krijoni një TableColumn, si:
TableColumn eventCol = TableColumn i ri ("Emri i Ngjarjes"); eventCol.setMinWidth (100); eventCol.setCellValueFactory (new PropertyValueFactory ("emri"));
Parametri "sName" duhet të mbushet me cilindo emër të funksioneve tuaja të hyrjes SSP, në mënyrë që të marrë vlerat që ju nevojiten për objektet e dhëna. Bëni sa më shumë Kolona që ju nevojiten, pastaj shtojini ato në një tabelë me
FilteredList flEvent = e re FilteredList (të dhëna, p -> e vërtetë);
table.setItems (flEvent);
table.getColumns (). addAll (eventCol, statCol, groupCol, datingCol, descCol, locationCol);
Nëse dëshironi të shtoni një shirit kërkimi si unë, kontrolloni kodin për informacion se si të krijoni një kuti zgjedhjeje dhe një fushë teksti, të cilat do t'i lejojnë përdoruesit tuaj të filtrojë tabelën sipas vlerave specifike. Nëse keni zgjedhur ta bëni këtë, do t'ju duhet gjithashtu të krijoni një hBox që t'i përmbajë këto, me
HBox hBox = HBox i ri (optionBox, textField);
hBox.setAlignment (Poz. QENDRA);
Ju gjithashtu do të duhet të shtoni hBox në metodën.addAll () më poshtë.
Përndryshe, thjesht krijoni një vBox të ri për të mbajtur të dhënat tona duke bërë
VBox përfundimtar vbox = VBox i ri ();
vbox.getChildren (). addAll (etiketë, tabelë);
((Grupi) skena.getRoot ()). GetChildren (). Shto Të gjitha (vbox);
faza.vendos skena (skena); faza.shfaq ();
Tani, përpiloni kodin tuaj dhe drejtojeni atë dhe shihni nëse funksionon. Përdorni NetBeans për të gjetur ndonjë gabim, i cili do të shfaqet si shirita të kuq në anën e djathtë të ekranit. Vazhdoni ta përdorni këtë derisa të mos keni më gabime dhe projekti të funksionojë.
Pas përfundimit të kodimit tuaj, unë do të rekomandoj krijimin e një Javadoc të kodit tuaj në mënyrë që njerëzit të mund të shohin se çfarë bën kodi juaj. Për ta bërë këtë, nën butonin "Run" në krye të ekranit, thjesht goditni "Generate Javadoc". Ju mund të gjeni një kopje të Javadoc tim duke parë brenda skedarit zip në faqen e parë dhe duke zgjedhur skedarin index.html.
Hapi 7: Përpilimi dhe paketimi i skedarit tonë të kavanozit
Pasi të keni korrigjuar mjaftueshëm dhe ta bëni atë të funksionojë me sukses, më në fund mund ta përpiloni këtë në një skedar JAR, i cili më pas mund të publikohet në mënyrë që të tjerët të mund ta ekzekutojnë këtë softuer pa pasur nevojë për NetBeans ose Jsoup.
Para përpilimit të aplikacionit tuaj, sigurohuni që gjithçka është bërë. Nëse dëshironi të shtoni dokumentacionin dhe të krijoni një JavaDoc, vazhdoni ta bëni këtë. Nëse keni ndonjë komandë System.out që printon në tastierën tuaj, hiqini ato. Në thelb, sigurohuni që aplikacioni juaj të mos ketë komanda ose funksione të padëshiruara dhe se ka gjithçka që i nevojitet për tu paketuar.
Pasi ta keni bërë këtë, klikoni me të djathtën mbi emrin e projektit në NetBeans. Duhet të shfaqet një menu. Goditni vetitë (në fund të menusë), pastaj shtypni "Paketimi" në anën e majtë të menysë së re të shfaqur. Tani, sigurohuni që të gjitha kutitë e shënimit të jenë shënuar. Ekrani juaj duhet të duket si ai më sipër.
Pasi ta keni bërë këtë, edhe një herë klikoni me të djathtën mbi projektin tuaj në NetBeans. Në këtë pikë, shtypni butonin "Pastro dhe Ndërto" dhe NetBeans do të fillojë të marrë bibliotekat dhe skedarët tuaj dhe t'i përpilojë ato në një skedar JAR të punës. Nëse gjithçka shkon mirë, duhet të shihni një mesazh në tastierë pas disa çastesh duke ju thënë se JAR juaj ka përfunduar përpilimin dhe skedari tani mund të ekzekutohet. Drejtoni këtë aplikacion dhe sigurohuni që gjithçka funksionon. Nëse jo, debugoni dhe rinisni procesin derisa të jenë zgjidhur gabimet.
Hapi 8: Urime
Urime! Nëse i keni ndjekur të gjitha udhëzimet në mënyrë korrekte dhe keni koduar gjithçka mirë, atëherë duhet të keni aplikacionin tuaj personal të punës. Gjëja interesante është se tani sa herë që ju ose dikush tjetër që ka qasje në spreadsheet -in tuaj redakton të dhënat, aplikacioni juaj do të jetë në gjendje të ndryshojë dhe të reagojë ndaj të dhënave të reja. Këtu është një video e shpejtë se si doli e imja.
Nëse jeni duke kërkuar mënyra për të vazhduar përmirësimin dhe ndërtimin, ju rekomandoj të kontrolloni disa nga veçoritë më të avancuara të JavaFX, si FancyText ose FancyButton, të cilat mund të shtojnë disa grafika më të larta në aplikacionin tuaj. Fat i mirë, dhe jepni një koment nëse keni nevojë për ndonjë ndihmë ose vëreni një gabim në kodin tim!
Recommended:
Aplikacioni im i parë Java: 6 hapa
Aplikacioni im i parë Java: Vazhdoni të dëshironi të krijoni aplikacionin tuaj java, por vazhdoni ta vononi atë për ndonjë arsye? A e dëgjoni veten duke thënë "Nesër më në fund do ta bëj"? Por ajo e nesërmja nuk vjen kurrë. Pra, ju duhet të filloni tani. Tani është koha për të marrë hanin tuaj
Si të merrni të dhëna nga një bazë të dhënash Firebase në NodeMCU: 7 hapa
Si të merrni të dhëna nga një bazë të dhënash Firebase në NodeMCU: Për këtë udhëzues, ne do të marrim të dhëna nga një bazë të dhënash në Google Firebase dhe do t'i marrim duke përdorur një NodeMCU për analizë të mëtejshme. K RERKESAT E PROJEKTIT: 1) NodeMCU ose ESP8266 Controller2) G-Mail llogari për krijimin e një baze të dhënash Firebase.3) Shkarkoni
Instaloni meloditë pa një plan të dhënash: 9 hapa
Instaloni meloditë pa një plan të të dhënave: Isha e lodhur nga tarifa prej 180 dollarësh në vit për një plan të dhënash për secilin nga celularët e mi, kështu që i anulova ato. Pastaj zbulova se mund të bëja zilet e mia falas.mp3, t'i ngarkoja në rrjet dhe t'i shkarkoja në telefonin tim. Pastaj mësova për tarifën $ për
Ndërtoni një lidhje të dhënash radio 500 metra për nën 40 dollarë .: 7 hapa
Ndërtoni një lidhje të dhënash radio 500 metra për nën 40 dollarë .: Keni një rezervuar uji që dëshironi të matni ose një digë ose një portë? Dëshironi të zbuloni një makinë që zbret në makinë, por nuk doni të lidhni tela nëpër kopsht? Ky udhëzues tregon se si të dërgoni të dhëna 500 metra me besueshmëri 100% duke përdorur mikrokontroll picaxe
Krijoni një bazë të dhënash në Open Office: 7 hapa
Bëni një bazë të dhënash në Open Office: Bazat e të dhënave mund të jenë vërtet të dobishme. Ato mund të bëhen për gjëra personale, si një koleksion CD për shembull, ose biznes, për diçka sa vetura që kanë. Tani, unë do t'ju tregoj se si të krijoni një bazë të dhënash në Openoffice.Org