Author Archives: TimL

If users experience a "Session closed" message there are 2 possibilities:

  1. The user accessed Noodle with more than one IP address.
    • change the setting "System Tools>Settings>General Settings>Session Security Level (IP address matching)" to "0". ("4" being the maximum).
  2. The user accessed Noodle with more than one cookie (or browser/OS)
    • solution: logout on one browser before using another.

There are prehtml posthtml prejs postjs JavaScript events on select pages.
The prejs and postjs events are for the running of the JS not for the loading of scripts by the browser.
There can me multiple postjs events as it's triggered after any ajax that adds to the page.
Nothing other than custom scripts listen for these events.

Usage example:

function my_method(){alert("hello world");}
top.noodle.cbc.addEventListener(top.document.getElementById('main'), 'postjs', my_method);

or if you are using IE:

function my_method(e){if(e.noodle=="postjs"){alert("hello world");}}
top.noodle.cbc.addEventListener(top.document.getElementById('main'), 'propertychange', my_method);

Set your clock to 24h for best results.

A simple windows backup example:

echo test once then you can double click to backup
exit -1
net stop Noodle
TASKKILL /T /F /IM java.exe
net stop PostgreSQL-9.1
FOR /F "TOKENS=1 eol=/ DELIMS=-" %%A IN ('DATE/T') DO SET yyyy=%%A
FOR /F "TOKENS=2 eol=/ DELIMS=-" %%A IN ('DATE/T') DO SET mm=%%A
FOR /F "TOKENS=3 eol=/ DELIMS=- " %%A IN ('DATE/T') DO SET dd=%%A
FOR /F "TOKENS=1 eol=/ DELIMS=:" %%A IN ('TIME/T') DO SET hh=%%A
FOR /F "TOKENS=2 eol=/ DELIMS=:" %%A IN ('TIME/T') DO SET mn=%%A
SET timedate=%yyyy%%mm%%dd%_%hh%%mn%
SET FOLDER=D:\PGSQL_data_backup_%timedate%
xcopy /E /C /I /H /Q "C:\Program Files (x86)\PostgreSQL\9.1\data" %FOLDER%
net start PostgreSQL-8.4
net start Noodle
"C:\Program Files (x86)\7-Zip\7z.exe" a %FOLDER%.7z %FOLDER%
rmdir /S /Q %FOLDER%
echo %FOLDER%.7z

Noodle verifies redirects it sends to your browser.
If you are accessing Noodle through one IP/domain this will not effect you.
If you use multiple IP/domains via NAT etc you will need one of 3 solutions:

  1. Add the IP/domains to the hosts file
  2. Add the IP/domains to your DNS (as A/CNAME and PTR) pointing to the Noodle server
  3. Add the following to noodle.properties: URLOverride = "https://noodle.domain.tld , or just: URLOverride = "/"

Be sure to update the "URL for Noodle" in the settings so that links in emails will resolve properly.
If you use multiple IPs without a domain name links in emails can not be expected to work reliably.
If you use multiple IPs on the same server you must bind to one of them.

Safari (GET/POST) requests sometimes block other requests.
In order to keep Noodle responsive we have disabled the instant features of Noodle on Safari.
We don't recommend using Safari; we do recommend Chrome, Firefox, and Internet Explorer.

If the Noodle log contains something like this:

2012.01.24 13:48:51: .intranet,ALERT: ConnectionAllocator: failed to allocate a new connection
2012.01.24 13:48:51: .intranet,ALERT+ The connection pool is empty!
2012.01.24 13:48:51: .intranet,ALERT+ due tocom.inet.tds.ab: Msg 4064, Level 11, State 1, Line 1, Sqlstate 01000
2012.01.24 13:48:51: .intranet,ALERT+ [WIN-5A73M1LPPMU]Cannot open user default database. Login failed.Error code: 4064
2012.01.24 13:48:51: .intranet,ALERT+ SQLState: 01000

Unlisted codes:

01 ambiguous
02 Invalid userid
05 Invalid userid
06 Attempt to use a Windows login name with SQL Authentication
07 Login disabled and password mismatch
08 Password mismatch or password policy clash
09 Invalid password
11 Valid login but server access failure
12 Valid login but server access failure
13 SQL Server service paused
16 user does not have permissions to log into the target database
18 Change password required
27 could not determine the initial database for the session.
4064 Cannot open user default database. Login failed. (wait a few more seconds for the database to start and use net start in the intranet.bat)
18456 can be caused by a firewall

SQL to list all error codes for your MSSQL version:

SELECT error,description FROM sysmessages where msglangid='1033' order by error;

All quiz answers should be quite short (no setup or output, many assumptions)

  1. In IE with JavaScript get an xml object (as sent from the server) from an iframe
  2. Dynamically call a java Class and method from within java
  3. List the values of a column that have a 2nd column who's value is not in any other row with SQL
  4. From a POISX CLI in one line individually compress all iso files in all sub directories using no loops and with the date inserted into the filenames
  5. Output a Git histoy from the beginning of the year in the format "graph tab date tab message"

For each question:

1 point for doing something logical
1 point for understanding/answering the question asked
1 point for getting a working answer
1 bonus point for being concise or explaining why the question/answer is useful

If your server has more than one (non lo) IP you will need to bind Noodle to one of them for the license key to work.
Add the address to the connection In server.xml

Restart the service for changes to take effect.