2011. augusztus 9., kedd

Upgrading Mac OS X Snow Leo to Lion and getting Zend Server working again

After Snow Leo to Lion upgrade, mysqld from my Zend Community server stopped working. It wouldn't start logging things like:
half-apple:bin root# ./mysql.server start

Starting MySQL
. ERROR! Manager of pid-file quit without updating file.

or
half-apple:bin janedow$ sudo ./zendctl.sh start-mysql

Starting MySQL
. ERROR! Manager of pid-file quit without updating file.


Logs are in /usr/local/zend/mysql/data/machine-name.err

Messages that showed up:
110809 11:28:51 [ERROR] Fatal error: Can't change to run as user 'zend' ; Please check that the user exists!
110809 11:28:51 [ERROR] Aborting


Obviously the zend user created by the installer has been deleted during the upgrade.

So I recreated the unix user via dscl commands:
half-apple:~ root# dscl localhost -create /Local/Default/Users/zend
half-apple:~ root# dscl localhost -create /Local/Default/Users/zend UserShell /bin/bash
half-apple:~ root# dscl localhost -create /Local/Default/Users/zend RealName "Zend user"
half-apple:~ root# dscl localhost -create /Local/Default/Users/zend UniqueID 600
half-apple:~ root# dscl localhost -create /Local/Default/Users/zend PrimaryGroupID 1000


[Inspired from here, modified to run on Lion to not give invalid datasource error: http://osxdaily.com/2007/10/29/how-to-add-a-user-from-the-os-x-command-line-works-with-leopard/ ]

On next start attempt, I got errors related to mysql access rights:
110809 12:32:33 [Note] Plugin 'FEDERATED' is disabled.

^G/usr/local/zend/mysql/bin/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13)
110809 12:32:33 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
110809 12:32:33 InnoDB: Initializing buffer pool, size = 8.0M
110809 12:32:33 InnoDB: Completed initialization of buffer pool
110809 12:32:33 InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'create'.
InnoDB: Cannot continue operation.
110809 12:32:33 mysqld_safe mysqld from pid file /usr/local/zend/mysql/data/half-apple.home.pid ended


I found this post: http://www.worldgoneweb.com/2011/zend-server-community-edition-for-mac-os-x-%E2%80%93-mysql-permissions/ about Zend mysqld persmission problems.

I chowned data and tmp to the newly created zend user:
half-apple:mysql root# ls -la

total 0
drwxr-xr-x 8 root wheel 272 Mar 12 19:33 .
drwxr-xr-x 15 root wheel 510 Aug 6 08:39 ..
drwxr-xr-x 49 root wheel 1666 Mar 8 15:28 bin
drwxr-x--- 16 103 wheel 544 Aug 9 12:34 data
drwxr-xr-x 23 root wheel 782 Mar 12 19:34 lib
drwxr-xr-x 3 root wheel 102 Mar 8 15:28 scripts
drwxr-xr-x 13 root wheel 442 Mar 8 15:28 share
drwxr-xr-x 2 103 wheel 68 Aug 6 08:24 tmp
half-apple:mysql root# chown -R zend data/
half-apple:mysql root# chown -R zend tmp/
half-apple:mysql root# ls -la
total 0
drwxr-xr-x 8 root wheel 272 Mar 12 19:33 .
drwxr-xr-x 15 root wheel 510 Aug 6 08:39 ..
drwxr-xr-x 49 root wheel 1666 Mar 8 15:28 bin
drwxr-x--- 16 zend wheel 544 Aug 9 12:34 data
drwxr-xr-x 23 root wheel 782 Mar 12 19:34 lib
drwxr-xr-x 3 root wheel 102 Mar 8 15:28 scripts
drwxr-xr-x 13 root wheel 442 Mar 8 15:28 share
drwxr-xr-x 2 zend wheel 68 Aug 6 08:24 tmp

After that, mysqld starts up just fine:
half-apple:bin root# ./mysql.server start

Starting MySQL
. SUCCESS!

2011. július 14., csütörtök

Getting Lightstreamer v3 up and running with SSL support

or how to deal with "Unrecognized SSL message, plaintext connection?" and "Received fatal alert: bad_certificate" errors.

This description supposes that you already have Lightstreamer up and running using unencrypted http connections. In my case, I am using an HTML+Javascript client to connect to Lightstreamer v3 Evaluation version. The client part is deployed on a web server, both the client and LS push data are served from the same machine, using different names (for example ls.example.com:8080 and project.example.com:80, this is a requirement with Lightstreamer if running on a single machine).

Edit: First of all, if you want to use SSL (https) with Lightstreamer v3, you need the Vivace edition. You can get it by downloading not the free version (Moderato), but the evaluation version of the retail product. You have to request and eval licence, this one will work for 60 days. You don't get a lic file, as with Moderato, you are only sent a client ID, which you will need to put into lightstreamer_conf.xml. Also in lightstreamer_conf.xml, you have to set which edition you want to evaluate, use Vivace.

To set up Lightstreamer to use SSL, you need to edit lightstreamer_conf.xml and uncomment the section https_server. If you don't have a section called https_server, you are using the wrong edition, see above. Don't forget to set the port number. If you are using a single machine/IP to serve both the Javascript and HTML Lightstreamer client and the Lightstreamer push data, remember to use 2 different ports. I use 443 to serve client pages via apache2 and mod_ssl and 8443 to serve Lightstreamer push data.

After saving the config and restarting Lightstreamer, it should run an https service on port 8443
14.Jul.11 17:09:08,941 < INFO> SSL Server "Lightstreamer HTTPS Server" listening to *:8443 ...
14.Jul.11 17:09:08,944 < INFO> Server "Lightstreamer HTTP Server" listening to *:8080 ...
Note: I have left the unencrypted http service running too for testing, it can be removed/commented out of the config file.

For SSL to work using the HTML Lightstreamer client you need to make sure the Master Push page is loaded via https. Put it simply, the client HTML page displaying LS data needs to use https too.

You will also have to setup the Javascript client to connect to the right port number, for example by using:

lsEngine.connection.setLSPort("8443")

around the engine initialization code.

If you are connecting to the https service of Lightstreamer from a page loaded via http, you will get no data displayed and the following error on the server console:

14.Jul.11 17:18:56,776 Handshake error on Lightstreamer HTTPS Server
javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
at com.sun.net.ssl.internal.ssl.EngineInputRecord.bytesInCompletePacket(EngineInputRecord.java:152)
at com.sun.net.ssl.internal.ssl.SSLEngineImpl.readNetRecord(SSLEngineImpl.java:798)
at com.sun.net.ssl.internal.ssl.SSLEngineImpl.unwrap(SSLEngineImpl.java:713)
at javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:607)
at com.lightstreamer.e.a.t.a(t.java)
at com.lightstreamer.e.a.m.a(m.java)
at com.lightstreamer.e.a.a.g.b(g.java)
at com.lightstreamer.e.a.a.n.e(n.java)
at com.lightstreamer.e.a.a.n.run(n.java)

So to get the client HTML via https, I have set up apache2 SSL. As I am using Ubuntu 10.04 this is not too difficult.

Make sure you have mod_ssl installed (which I already had) and enable it:

sudo a2enmod ssl

Then enable the default-ssl site:

sudo a2ensite default-ssl

And reload apache:

sudo /etc/init.d/apache2 restart

If all is well, you should be able to access the default apache site using https.

Now all you need to do, is copy default-ssl to yoursite-ssl and modify it using settings from your non https config (DocumentRoot, logs, htaccess and the like).

When done, disable the default-ssl site:

sudo a2dissite default-ssl

and enable your ssl site config:

sudo a2ensite yoursite-ssl

Reload apache configs:

sudo /etc/init.d/apache2 reload

All done. Loading your URL via https should display your virtual site now.

Notice that we are using self-signed ssl certificates: the default ones that came with Lightstreamer (preset in the config, uncomment if necessary) and the apache2 default ones.

Now your client client page is using https and loading fine, but it may still not connect to Lightstreamer.

On the server console, I found this exception:
14.Jul.11 17:19:14,833 Handshake error on Lightstreamer HTTPS Server
javax.net.ssl.SSLException: Received fatal alert: bad_certificate
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:190)
at com.sun.net.ssl.internal.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1429)
at com.sun.net.ssl.internal.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1397)
at com.sun.net.ssl.internal.ssl.SSLEngineImpl.recvAlert(SSLEngineImpl.java:1563)
at com.sun.net.ssl.internal.ssl.SSLEngineImpl.readRecord(SSLEngineImpl.java:1023)
at com.sun.net.ssl.internal.ssl.SSLEngineImpl.readNetRecord(SSLEngineImpl.java:837)
at com.sun.net.ssl.internal.ssl.SSLEngineImpl.unwrap(SSLEngineImpl.java:713)
at javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:607)
at com.lightstreamer.e.a.t.a(t.java)
at com.lightstreamer.e.a.m.a(m.java)
at com.lightstreamer.e.a.a.g.b(g.java)
at com.lightstreamer.e.a.a.n.e(n.java)
at com.lightstreamer.e.a.a.n.run(n.java)
Remember, we are using self-signed certificates? The solution is to open the LS page in the browser by going to the push page URL and port 8443 and check in your browser that you fully understand the security risks of browsing your own test site.

After doing this, it magically started to work as it should.

2010. február 16., kedd

Installing JDK on Windows XP

To be able to compile and run Java programs on your computer, you will need to have a Java compiler and a Java Virtual Machine installed.

The Java compiler comes with the JDK (Java Development Kit). The Java Virtual Machine (JVM or Java Run-time) can come with a package called JRE (Java Runtime Engine) or it is also part of the JDK.

As the first screenshot shows, my system didn't have javac installed (or at least coudn't find it in the Path).

It does have Java installed:


Running java without arguments gives the help output. So far, so good.

Now we go to http://java.sun.com






Click on download, choose Java SE, and download the JDK.


Choose your platform, Windows and download the file (76MB).



Get around the safety warnings if you are using IE, and download the file (Save it).

Double click it to run the installer.

After installation, you are still not able to run javac from the command line!

If you left everything on default, the JDK gets installed in:

C:\Program Files\Java\jdk1.6.0_18

Executable programs in:

C:\Program Files\Java\jdk1.6.0_18\bin

So let's try adding this folder to the path.

Right click the My Computer icon on the Desktop, choose properties from the menu.



Choose the Advanced tab, choose the Environment Variables button.



On the second pane (System Variables), select the variable named Path, click the Edit button.


Do not remove the value of the variable! Append a semi-column (;) to the stuff that is already in there, and append the name of the folder that contains javac.exe (C:\Program Files\Java\jdk1.6.0_18\bin).



Hit OK a couple of times until all the dialogues are gone.

Close the cmd window if you had it open (the Path variable will not have changed in there).

Open a new Cmd window (Windows Start menu, Run... enter cmd).

Type javac

It should output a help message with possible options.

Save your java file, here in the example Mississipi.java, for example to the Desktop

Change your directory to the Desktop:

cd Desktop

Compile it using:

javac Mississipi.java

Run it using:

java Mississipi



Have fun!

2009. november 23., hétfő

Installing WAMPServer step-by-step

Intended audience

People familiar with basics of HTML, basics about how the web works (what a web server is, what a browser is), basics about installing programs on Windows XP, some idea about programming in general (10 PRINT "HELLO WORLD").

Goals

Get an environment up and running, so that you can start experimenting with webpages containing PHP code (dynamic webpages) and webpages storing and retrieving data to/from a database.

Step 1 : Downloading WAMPServer

You can get WAMPServer from here: http://www.wampserver.com/en/download.php

I chose WAMPServer, so that we can get the Apache webserver, MySQL database and the PHP programming language all in one package, with less need to configure.

Step 2: Install and configure WAMPServer

WAMPServer comes in a handy install package. Double click and install (hit next a couple of times).

If you have FireFox installed (and you should!) WampServer will ask if you want to make it the default browser to use with WAMPServer. Be nice to yourself and answer yes.

Windows XP will warn you about blocking the apache server. You will need to click on Unblock, if you have the firewall on. Apache server will need to run on TCP port 80 of your PC.

Setup SMTP server for PHP's mail() function. When you write code that needs to send an e-mail (for example registration confirmation), PHP will need to know about an SMTP server to use. If you don't know what to enter, you can safely use the defaults, we can change them later on.

On the next screen, click to launch a WAMP servers (leave checkbox on).

WAMPServer should be up and running.

Step 3: Peeking at WAMPServer

Once running, WAMPServer has a little tray icon in the bottom right corner of your screen. By clicking it, you will be able to access everything you need to get started real quickly:

Clicking the first item Localhost will open a web browser displaying the root page of your web server. On this page (until you replace it with your own :) ) you will find the apache web server version, the PHP version, loaded PHP extensions (don't worry about these for now) and your MySQL version (remember: Apache is the server that displays your web pages, MySQL is a database engine, that can store your data, PHP is the programming framework and language you can use to link your web pages to your database, and much more).

You also have access from here to phpinfo() which gives a very detailed information about your PHP settings, and phpmyadmin which will allow you to check on data in your database and do housekeeping tasks (like creating databases, creating and modifying tables).

Okey, back to your pop-up menu in the tray (little wamp icon).
Menu item #2 will open phpmyadmin in the browser window, from here, you will be able to manage your data.

3rd menu item: www directory very important place, this is where you have to put your HTML or PHP files to work. You copy them here, and you can view them in the browser by using the 1st menu (Localhost).

The following 3 menu items allow you to configure, check the configuration and view log files for apache, PHP and MySQL. You can also access the MySQL console from here, which you don't need for nornal operation, since you have phpmyadmin, and it is so much easier to use.

From the quick admin section, you can start and stop the severs (actually you have two of them, Apache, and MySQL, PHP is a modules inside Apache, as far as we are concerned right now).

It is as simple as that!

If something is missing, or unclear, let me know.

Next post will contain details about how to create your first PHP project.

2009. november 3., kedd

University of the People - felsőoktat...

University of the People - felsőoktatás mindekinek

A University of the People (UoPeople) a világ első ingyenes online egyeteme, célja a felsőoktatás globális elterjesztése és demokratizálása.

Milyen oktatási modellt használ az UoPeople?

Az UoPeople az olcsón és globálisan elérhető internetes technológiákat használja, a hallgatókat tanulócsoportokba osztja, a csoport tagjai egymást segítve, tutorálva peer-to-peer modellben tanulnak. Minden csoporthoz tartozik egy Instructor is, igény esetén őt is segítségül lehet hívni valamint ő készíti el a tanulási időszak végén a tanulók értékelését. A tanulás, eszmecsere szintereként a csoport és az évfolyam fórumcsatornái, blogjai szolgálnak. A tananyagot többnyire önkéntes alapon aktív és nyugdíjas egyetemi tanárok, post-grad tanulók és szakmabeliek állították össze. A tanuláshoz használt tananyagok mindenki számára ingyenesen hozzáférhetők (pl. MIT OpenCourseWare, iTunesU).

Hogyan lehet egy ilyen egyetem sikeres és hatékony?

A távoktatás iránti igény növekszik az USA-ban és világszerte egyaránt. Ezt a tandíj nélküli modellel ötvözve, hatalmas lehetőség nyílik azok számára, akik anyagi vagy egyéb okokból eddig nem érhették el a felsőoktatást. Az UoPeople képes lesz hatékonyan működni nagyon alacsony költségvetés mellett is jó minőséget fenntartva, mert kihasználja a kollaboratív, nyílt forrású online tanulást és lehetőséget teremt az önkéntes tutorálásra.

Hogy néz ki az UoPeople?

Az egyetemnek nincsenek épületei, fái, füves pihenőterületei, minden program, tananyag és szolgáltatás virtuális. Az egyetem főleg az ott tanuló hallgatókból és a tananyagból áll. A tanulókat csoportokba szervezzük, a csoport tagjai hétről-hétre együtt haladnak és tanulnak, ugyanazokat a feladatokat oldják meg.

Hány tanulót vesz fel az UoPepole?

Az UoPeople az első öt év alatt tízezrek érdeklődésére számít, ám az első időkben a jelentkezők számát ciklusonként 300 körülire fogjuk korlátozni. A szájról-szájra terjedő hír és az online hálózatokon való szereplés (social media) segíti majd az egyetem növekedését, a nyílt forrású és peer-to-peer modell pedig lehetővé teszi majd a gyors választ a kialakuló igényekre.

Hogyan segíti elő az UoPeople a tanulók sikeres előmenetelét?

A tananyagban vannak leckék, csoportos megbeszélések, olvasmányok, beadandó feladatok és vizsgák, mint minden más egyetemen. A tanulók szabadon megválaszthatják, hogy mikor és hol dolgozzák fel a tananyagot. Útmutatás kapnak az instruktoroktól, a csoporttársaiktól és más önkéntes segítőktől. Minden osztálynak van saját, zártkörű fóruma. A fórumon zajló eszmecserében heti rendszerességgel minden tanuló köteles résztvenni. Minden tárgyhoz tartoznak nyílt fórumok is, ahol a téma szakértői is segítik a hallgatókat. A hallagtók tudásukat heti feladatok segítségével mérhetik fel.

Milyen szakok indulnak?

Az UoPeople jelenleg két szakon indít képzést:

  • BSc in Computer Sciences (Informatika)
  • BA in Business Administration (Közgazdaságtan - Vállalkozástan)

Akkreditált a képzés?

Az UoPeople jelenleg nem akkreditált oktatási intézmény, ezért diplomát nem ad a képzés végén. Az akkreditációra az intézmény jelentkezik amint erre adottak lesznek a feltételek.

Az UoPeople jelenleg nem nyújt mester és PhD képzést.

Az UoPeople egyetemen jelenleg minden vizsga online folyik. A vizsgadíjat átmenetileg elengedik, de a későbbiekben számítani kell 10 - 100 dollár közötti vizsgadíjra, a vizsgázó lakhelyének függvényében és jelentkezési díjra (egyszeri 15-50 dollár közötti díj).

Az UoPeople a tanévet 5 tanulóidőszakra bontja, ezekre lehet jelentkezni.

A felvételhez ki kell tölteni egy online űrlapot, majd azt kinyomtatva és aláírva el kell küldeni az érettségi bizonyítvány hiteles fordításával az egyetem postacímére. A felvétel feltétele még egy 500 szavas esszé írása a megadott témakörök egyikében (angolul).


Forrás: az UoPeople weblapján a FAQ.

Az UoPeople weblapról további részletek:

Programok (szakok) részletes leírása:
http://www.uopeople.org/ACADEMICS/Programs/tabid/286/Default.aspx

Orientációs kurzusok:
http://www.uopeople.org/ACADEMICS/OrientationCourses/tabid/196/Default.aspx
(ez a kettő kötelező mindenkinek felvételi után, ezek a beugrók)

Kurzusok katalógusa:
http://www.uopeople.org/ACADEMICS/CourseCatalog/tabid/197/Default.aspx

A módszer:
http://www.uopeople.org/THEMETHOD/tabid/209/Default.aspx

Sajtószemle: ezermilló cikk az UoPeople-ról:
http://www.uopeople.org/ABOUTUS/NewsCenter/MediaCoverage/tabid/256/Default.aspx
Ez egy hosszú és jó cikk (cikkek):
http://www.uopeople.org/LinkClick.aspx?fileticket=dXqRFCkHpNA%3d&tabid=256

Facebook: http://www.facebook.com/UoPeople
Twitter: http://twitter.com/UoPeople
Blog: http://universityofthepeople.wordpress.com/ (az egyik instruktor posztjaival)

2009. augusztus 2., vasárnap

Nyelvtan pótlások

Elválasztás szabályai
  • szótagonként egy magánhangzó
  • a szótag elején egy mássalhangzó lehet,
kivéve:
  • első szótag (ott lehet több is pl. sztrá - da)
  • ha két magánhangzó van egymás után (a-u-tó)
Egyéb szabályok:
  • dz, dzs egy mássalhangzónak számít (pl. lán-dzsa, bo-dza)
  • régies írásmódnál gh, th, cz egyben marad (pl. A - pá - cza - i)
  • igekötős igéknél igekötőnél választunk el
  • összetett szavaknál a szóösszetételnél választunk el
ÁBC-rendezés

A magyar helyesírás alapelvei:
  • kiejtés szerinti írásmód (szótő + toldalék)
  • szóelemzés elve (teljes és részleges hasonulás, összeolvadás, mássalhangzó rövidülés és kiesés)
  • hagyomány szerinti írásmód (tulajdonneveknél és j - ly írásmód)
  • egyszerűsítés elve

2009. július 11., szombat

csütörtök

Felkeltünk a reggeli torna elmaradt és mindenki örült neki.
Utána elindultunk Veszprémbe és elmentünk az állatkertbe és amikor kijöttünk az állatkertből lehetett vásárolni a bazárban.

Mind ezek után részt vetünk egy 30 méteres sziklafal-mászáson.
Aztán este volt egy kis nyugtató zene azután vacsiztunk és utána nagyot szundítottunk.