Archyvas

Įrašo tag'ai: ‘Programavimas’

My first JavaME program aka Hello, World on Mobile phone

Gruodis 26th, 2009 Ernestas Kardzys 2 komentarai

I wanted to try the JavaME framework. And I tried it.
The first program I made was a simple program which shows an alert box with the text you entered.
Interesting point is that the menu buttons look different then in my “Sony Ericsson K550i”. In the emulator – the “Exit” is on the right, but in my mobile phone it’s on the left. At the moment I don’t have any idea why, but… Well, we’ll see :)

package helloworld;

import javax.microedition.lcdui.*;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.midlet.*;

/**
 * @author Ernestas Kardzys
 */

public class Midlet extends MIDlet implements CommandListener {
    private Display display;
    private Form mainForm;
    private TextBox textBox;
    private Command quitCommand;
    private Command backCommand;
    private Command alertCommand;
    private Command textboxCommand;

    /**
      * Called by the system to start our MIDlet.
      */

    public void startApp() {
        display = Display.getDisplay(this);

        quitCommand = new Command("Exit", Command.EXIT, 1);
        backCommand = new Command("Back", Command.BACK, 1);
        alertCommand = new Command("Alert", Command.SCREEN, 2);
        textboxCommand = new Command("Show textbox", Command.SCREEN, 3);

        mainForm = new Form("Main form!");
        mainForm.addCommand(quitCommand);
        mainForm.addCommand(alertCommand);
        mainForm.addCommand(textboxCommand);
        mainForm.setCommandListener(this);

        textBox = new TextBox("SimpleTextBox", "", 100, 0);
        textBox.setCommandListener(this);
        textBox.addCommand(alertCommand);
        textBox.addCommand(backCommand);
        textBox.setCommandListener(this);

        display.setCurrent(mainForm);
    }

    /**
      * Called by the system to pause our MIDlet.
      */

    public void pauseApp() {
       
    }

    /**
      * Called by the system to end our MIDlet.
      */

    public void destroyApp(boolean unconditional) {

    }

    public void commandAction(Command choice, Displayable displayable) {
        if (choice == quitCommand) {
            destroyApp(false);
            notifyDestroyed();
        }
        else if (choice == backCommand) {
            display.setCurrent(mainForm);
        }
        else if (choice == textboxCommand) {
            display.setCurrent(textBox);
        }
        else if (choice == alertCommand) {
            if (textBox.getString().trim().length() > 0) {
                Alert alert = new Alert(textBox.getString());
                alert.setTimeout(5000);
                textBox.setString("");
                display.setCurrent(alert);
            }
        }
    }
}

The next message in the JavaME section will be about how to send the SMS by using your mobile phone and JavaME :)

Kategorijos:JavaME Raktažodžiai:, , , ,

Mono aplinka (.NET, tik opensource)

Rugpjūtis 19th, 2008 Ernestas Kardzys Nėra komentarų

Mono provides the necessary software to develop and run .NET client and server applications on Linux, Solaris, Mac OS X, Windows, and Unix.

http://www.mono-project.com/Main_Page

Geras daiktas ir viekia neblogai. Testavau šitą daikčiuką ant Mac OS. Neblogai. Bandžiau Windows’ines programas, sukurtas su Microsoft’o .NET paleisti ant Mac OS.

Kiek pastebėjau, su šia aplinka neturėtų kilti problemų, jei nenaudojate egzotiškų arba labai specifinių Windows OS funkcijų. Ir, suprantama, reikia vengti visokių papildomų (kitų gamintojų sukurtų) bibliotekų, nes jos gali ožiuotis. Kai kurios bibliotekos yra įsitikinusios, kad jos veikia ant Windows OS, tad neradę Windows OS specifinių failų (pvz. user32.dll) pradeda šlykščiai keiktis Exception’ais.

Bandžiau nerastų bibliotekų problemą spręsti į EXE programos katalogą įdedant Windows bibliotekas ir tikėjaus, kad veiks viskas. Blogai tikėjaus. Pati EXE programa pasileidžia, bet kai nusikapsto iki papildomų bibliotekų – šios niekaip nenori rasti Windows’inių bibliotekų programos kataloge. Tad – lūžta.

Kiek skaičiau, Mono daugiau skirta ASP .NET tinklalapiams paleisti, bet ir programos veikia neblogai. Mono pateikia daikčiuką, pavadintą Mono Migration Analyzer (MoMA) (http://mono-project.com/MoMA). Jis praskanuoja EXE failą ir įspėja, kuriose vietose gali būti problemų – ne visas .NETines funkcijas Mono turi parašytas.

Apibendrinant: bendras įspūdis neblogas. Labai tikėtina, kad Windows’inės .NETinės programos turėtų veikti ir ant kitų platformų. Tik nenaudokite nestandartinių bibliotekų, Windows GUI “naglų” galimybių arba kokių retų MS .NET funkcijų!

Kategorijos:Programavimas Raktažodžiai:, , , , ,

phpMyAdmin klaida ant MySQL

Rugpjūtis 15th, 2008 Ernestas Kardzys 2 komentarai

Sukėliau phpMyAdmin’ą, sukūriau konfiguraciją, pabandžiau paleisti šį daikčiuką ir gavau bjaurią klaidą:

#1045 – Access denied for user ‘root’@'localhost’ (using password: NO)

Pakapsčiau internete ir išsprendžiau problemą – konfiguracijoje šio to trūko.

<?php
/*
* Generated configuration file
* Generated by: phpMyAdmin 2.11.8.1 setup script by Michal Čihař <michal@cihar.com>
* Version: $Id: setup.php 11423 2008-07-24 17:26:05Z lem9 $
* Date: Fri, 15 Aug 2008 09:37:15 GMT
*/

/* Servers configuration */
$i = 0;

/* Server localhost (config:root) [1] */
$i++;
$cfg['Servers'][$i]['host'] = ‘localhost’;
$cfg['PmaAbsoluteUri'] = ‘localhost/phpmyadmin/’;
$cfg['Servers'][$i]['password'] = ‘root’;

$cfg['Servers'][$i]['bookmarktable'] = ‘pma_bookmark’;
$cfg['Servers'][$i]['relation'] = ‘pma_relation’;
$cfg['Servers'][$i]['table_info'] = ‘pma_table_info’;
$cfg['Servers'][$i]['table_coords'] = ‘pma_table_coords’;
$cfg['Servers'][$i]['pdf_pages'] = ‘pma_pdf_pages’;
$cfg['Servers'][$i]['column_info'] = ‘pma_column_info’;
$cfg['Servers'][$i]['designer_coords'] = ‘pma_designer_coords’;
$cfg['Servers'][$i]['history'] = ‘pma_history’;
$cfg['Servers'][$i]['host'] = ‘localhost’;
$cfg['Servers'][$i]['extension'] = ‘mysqli’;
$cfg['Servers'][$i]['connect_type'] = ‘tcp’;
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['controluser'] = ‘root’;
$cfg['Servers'][$i]['controlpass'] = ‘root’;
$cfg['Servers'][$i]['auth_type'] = ‘config’;
$cfg['Servers'][$i]['user'] = ‘root’;
$cfg['Servers'][$i]['pmadb'] = ‘phpmyadmin’;

/* End of servers configuration */

?>
Trijų juodai pažymėtų eilučių trūko :) Pridėjau jas – viskas susitvarkė :)

C#. Reikšmių išgavimas iš DataTable klasės

Rugpjūtis 11th, 2008 Ernestas Kardzys Nėra komentarų

DataTable dataTable = new DataTable();

// Užpildome duomenimis

string data = dataTable.Rows[indeksas] [stulpelio_pavadinimas].ToString();

Kažkas tokio:

for (int i = 0; i < dataTable.Rows.Count; i++)

Console.WriteLine(dataTable.Rows[i]["Vardas"].ToString();

Kategorijos:Programavimas Raktažodžiai:, , , ,

Adminai ir programuotojai

Rugpjūtis 2nd, 2008 Ernestas Kardzys 2 komentarai

Programeriai miega savaitgaliais. Dažniausiai tai trečiadienis ir pirmadienis. Todėl, kad galvoja. Pirmadienį minčių dar nėra, o trečiadienį nuo vienos minties peršokama prie kitos. Adminai miega savo guolyje ir ne daugiau, kaip dešimt minučių. Nes jei miegos ilgiau, kas nors nuluš. Ir tada iš būtinybės reikės atsikelt, o adminai mėgsta atsibusti patys, kad ir po dešimt minučių.

Kategorijos:Džiaukai Raktažodžiai:,

Windows Vista source code’as

Turbūt daugelis iš mūsų norėjo sužinoti, kaip veikia Windows Vista branduolys. Mano draugui Pauliui pavyko tai išsiaiškinti ;)

Savo bloge jis pateikė Windows Vista kodą. Gero analizavimo ;)

http://blog.metacity.lt/?p=82

Instaliavimo sistemos kūrimas su MS Visual Studio

Su Microsoft Visual Studio galima sukurti install’erį. Ir gana nesudėtingai:

http://digital.ni.com/public.nsf/allkb/ED87C183E056CAC386256DF1004E54C6

Slaptažodžiai + alus + pramogos

Ryte prie kompiuterio sėdi ypač liūdnas programuotojas. Jo klausia, ko toks liūdnas? Tas:
- Vakar alų gėrėm, pramogavom – slaptažodžius kaitaliojom…

Psichiatrai ir adminai

Liepa 29th, 2008 Ernestas Kardzys 2 komentarai

Sėdi psichiatras kabinete, nuobodžiauja. Nei vieno paciento – ramu ir tylu. Sprendžia daktaras kryžiažodžius vienč po kito ir žiovauja. Tik staiga kabineto durys tyliai prasiveria ir į kabinetą įšliaužia keturiom jaunas žmogus. Įšliaužia, uždaro duris už nugaros ir toliau lėtai šliaužia palei sieną, kažką iš paskos vilkdamas. Daktaras iškart tapo žvalesnis:
- Nagi, klas čia pas mus atėjo? Gyvatukė?
Tyla
- Gyvatuke – gyvatuke, koks tavo vardas?
Žmogus tyli ir toliau šliaužia palei sieną
- Aaaa, supratau. Čia vėžliukas atėjo pas daktarą į svečius. Nagi, vėžliuk, šliaužk arčiau pas daktarą į kėdę.
Tyla
- Atsiprašau, kaip gi aš galėjau supainioti – čia varliukas pas daktarą atėjo. Varliuk, nebijok daktaro, ateik arčiau.
Jaunas žmogus pakelia galvą:
- Daktare, eikit *****. Aš adminas, laną jums tiesiu.

Kategorijos:Džiaukai Raktažodžiai:, , ,

C#. Failo vardo gavimas iš OpenFileDialog

Liepa 24th, 2008 Ernestas Kardzys 2 komentarai

Nusiskaitėme visą kelią iki failo, o mums reikia tik failo vardo. Kaip tai padaryti? Galima maždaug taip:

OpenFileDialog openFileDialog = new OpenFileDialog();
if (openFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
FileInfo fi = new FileInfo(openFileDialog.FileName);
fi.Name; // Failo vardas

fi.DirectoryName; // Kelias iki failo

fi.Extension ; // Plėtinys
}

Nors, aišku, galima bandyti karpyti :) Trim() metodas. Tiesa, atsibos žaisti…