[gecode-users] Gecode 3.0.0: What we will do. What do you want?
Martin Mann
mmann at informatik.uni-freiburg.de
Tue Aug 26 16:55:59 CEST 2008
Only one comment:
nice, nice, nice ... ;)
Thanks a lot!
Martin
Christian Schulte schrieb:
> Dear all,
>
> as promised a short update on 3.0 with another release date estimate:
> - complete rework of branching: with randomization and tie-breaking (done)
> - abstractions for cost-based optimization (done)
> - parallel search (still not integrated) [*]
> - stable version of Gist as an interactive search tool (almost done)
> - decomposition-based search (done but not adopted to 3.0)
> - entirely new memory management (done)
> - become more C++ compatible: references instead of pointers, standard
> filenames (done)
> - re-optimized crucial abstractions for 64 bit (done)
> - revamp of reflection (missing)
> - possibility to define solution variables (missing)
>
>>From our users wish-list:
> - support for non-monotonic propagators (done)
> - clause constraint (done)
> - integration of float vars (under discussion, thanks to Filip Konvička)
> [*]
> - efficient reified linear propagators over Booleans (under construction,
> thanks to Tias Gun) [*]
>
> Those marked with an asterisk [*] are collaborations or third-party
> contributions. Given that these work out in time, we stick to our original
> timeplan (as we did for Gecode 2.2.0): late autumn...
>
> All the best
> Christian on behalf of the Gecode team
>
> --
> Christian Schulte, www.ict.kth.se/~cschulte/
>
--
Martin Mann, Dipl. Bioinf.
Bioinformatics - Inst. of Computer Science
Albert-Ludwigs-University Freiburg
Tel: ++49-761-203-8259
Fax: ++49-761-203-7462
http://www.bioinf.uni-freiburg.de/~mmann/
More information about the gecode-users
mailing list


Here are the things that can go wrong, right at the start so you can
find them easily.
VGM files play too fast
If you have in_gym then disable its VGM handling. It is weird.
Look at the 50/60Hz options in the config screen -
maybe you're used to 50Hz music?
Anything else
Please contact me!
Introduction
This is a Winamp (2.xx and 5.xx) plugin for playing VGM files. VGM is a
standard for logging of SN76489/SN76496, YM2413, YM2612 and YM2151
music chip data, originated by Dave, allowing various systems' games'
music to be stored. See http://www.smspower.org/music for more
information, and to download VGM music files.
To use: put in_vgm.dll in Winamp's plugins\ folder (usually C:\Program Files\Winamp\plugins\), and restart Winamp. If
you got the self-installing version then it should already be working.
Load .vgm or .vgz files in Winamp; go to the "File types" preferences
page to associate these extensions:
Open the Preferences dialogue box (press Ctrl+P, or right-click and
choose Options -> Preferences...)
Choose "File types" from the tree on the left (it's the second item
unless Winamp has changed since I wrote this)
Make sure "vgm" and "vgz" are selected in the
"Associated extensions" list (if they aren't in the list it's because you have
another buggy plugin installed)
Be sure to check out the file info and plugin configuration dialogues.
Credits
The YM2413 emulation engine is EMU2413 by Mitsutaka Okazaki, which is
part of MSXplug.
The YM2151 engine is from MAME
and was added by BlackAura.
zlib decompression is by Jean-loup
Gailly and Mark Adler.
Replay Gain data is stored in an SQLite
database, thanks to D. Richard Hipp et al.
VGM7z support uses the 7-zip and LZMA SDK from
7-Zip, by Igor Pavlov.
Dialogue boxes
VGM file & GD3 tag information
To open:
In the main window, press Alt+3; or
double-click on the track title; or right-click and choose
View file info....
In the playlist editor, select some files and press
Alt+3; or right-click and choose
File info; or press the
Misc button, choose
File info and then
File info....
In the media library, select some files and press
Alt+3; or right-click and choose
View file info....
This shows you information about the file and, if it has a GD3
information tag, it shows you information from there too. It's similar
to the ID3 information box for MP3s, except that you can't edit the GD3
tag from within Winamp.
Choose English or Japanese
to display the GD3 information for that language, if available.
If you see something like "????" for a GD3 entry then your version of
Windows doesn't support Unicode, or translation from Unicode to a valid
MBCS. If that makes no sense to you, you probably don't care about it.
Windows XP is generally OK so long as you have east asian fonts installed.
Click on View GD3 in browser to open either
"Now Playing" (the MiniBrowser in older versions of Winamp) or your
regular web browser (depending on the setting, see below), with a page
showing the GD3 tag. Chances are, if you have the necessary
fonts installed, this will be able to display the Unicode text properly
on older versions of Windows.
Click on Configure plugin... to open the plugin configuration
dialogue box.
If you open this dialogue box for several files in the playlist editor,
it will appear once for each file. Press Esc or
close the window using the frame controls to abort showing it once per file.
VGM plugin configuration
To open:
Open the "VGM file & GD3 tag information" dialogue box; then press the
Configure plugin... button or press
Alt+P.
Or open the Winamp Preferences dialogue box (Right-click ->
Options -> Preferences...;
or press Ctrl+P), choose the
Plug-ins -> Input page, then double-click on the "VGM input plugin
v0.xx [in_vgm.dll]" item, or select it and click on the Configure button.
Playback tab
GD3 tags tab
SN76489 tab
YM2413 tab
YM2612 tab
YM2151 tab
VGM7z tab
Bottom part of window
Immediate update
If this is selected, the effect of changing some of the settings will
be instant, but it may introduce jumps or pauses to the sound,
depending on the output plugin and the type of VGM file playing. If
it is not selected then the effect will take the length of the output
buffer (usually two seconds) to be heard.
Note that cancelling this dialogue box does *not* restore the previous
settings for many options.
Actually asked questions
y doesnt the winamp show vgms as associted files? i always have to
select .vgm .vgz from the drop down menu.
This is a bug in Windows, at least up to XP (SP2). Try using other methods
to load your files. The Media Library is really good, try it!
FM music is not based on SINE waves, is it?!
Yes, it is. "Frequency modulation" means using one sine wave to change
the frequency of another, thereby producing quite complex waveforms
from two simple sine waves, a Good Thing when it comes to making cheap
sound chips. Although one source says "Note that the name 'FM' is a
misnomer; in actual fact the Yamaha chips all use phase modulation (PM)
to create their sounds." So now you know.
The latest VGM plugin is much slower on my p133. The last one works
fine, but with the new one the songs stops and then continues after a
second all the time. Why?
Because FM emulation is a lot more complicated than PSG emulation, so
it takes more time. You might like to get VGMTool to optimise any VGMs
with unnecessary chip data in them, or possibly re-download the files
if they've been updated with optimised versions.
How to play VGM files direct from your webpage
You can make it so people can click on a link and have a VGM played in
Winamp the same way as you can do it for MP3s...
Make a playlist file for the file(s) you want, listed as full URLs
Link to that
Winamp will try to make it so the playlist file is downloaded and
opened by the browser with as little prompting as possible, and in_vgm
hooks up with Winamp's downloading routines to play the files
themselves. Try
this link for an example.
Known issues
You can choose to loop a VGM a lot of times. However, Winamp doesn't
handle extremely long track lengths very well.
On my computer, turning on the equaliser will make it use 3 times as
much CPU for PSG tunes, and 1.8 times as much for FM. It also does not
process square waves well. I recommend you turn it off if you can.
I tried a DSP plugin, "Dee". It crashed Winamp whenever you turn on the
3D thing, I have no idea why. So don't do that.
When you apply fake panning to PSG/YM2413 channels,
it is hard to make the apparent volume stay the same. I am trying to use
"equal power panning laws" but I'm not sure I've got it quite right yet,
especially since it seems nobody agrees on what's the right way to do it.
History
0.36 beta
Added optional MAME-based YM2612 engine
Modified MAME engine to support separate DAC muting
Added support for the global playback thread priority setting
Added unscientific multi-author string reformatter to standardise things
Added support for "%family%" metadata (good for Winamp install)
Changed some of the icons to ones from the free Silk set
Rearranged some "legacy" settings
Added more tag fixing options
Removed PSG volume curve setting UI (functionality was removed already)
Improved M3U file detection for track number guessing
Added Replay Gain support
Fixed length calculation bug
Added transcoding support
Added VGM7z support
Fixed multi-line comments (again)
Updated YM2612 engine from Gens32, now supporting SSG-EG
Unicode tag support for Winamp 5.25, while still supporting old Winamps
All GD3 tags are now internally trimmed of leading/trailing whitespace to stop badly tagged files showing up strangely in the ML
Feature death: Winamp has killed plugin control of Now Playing. You can
try this
plugin but it doesn't work for me.
Better support for out-of-spec GD3 dates
Changed dialogues to use Tahoma font to get its better Unicode support
Rewrote file info displayers to use common code underneath
Fixed bug with file info when file was downloaded from a URL
Fixed bugs displaying long formatted times
Changed seeking method to avoid inter-thread issues - hopefully, that
means no more crashes when seeking or muting channels.
Fixed fake panning to maintain equal power when panned (I think)
Fixed crash reading extended file info on files with no GD3 tag
Added per-chip enabling and preamplification controls
Settings saving is now updated for Winamp's user profile support
Added per-channel muting for YM2612
Added "loop forever" option
Improved HTML information display
Added fake stereo randomisation (off by default)
Fixed Title Casing for legacy title formatting
Fixed bug with port numbers in URLs in URL handler
0.34 7/12/05
Added high-pass filter for PCM to Gens sound core (by Blargg)
Pausing after non-looped tracks was broken in 0.33
This also broke skipping with short tracks
Fixed a couple of typos in the readme
Improved HTML information display
0.33 20/11/05
Added support for YM2612 sample banks and VGM 1.50
Fixed some stupid old bugs with unlooped VGMs that nobody ever noticed
Updated zlib to latest version
(Hopefully) removed dependency on MSVCRT*.DLL
Added file sniffer functionality so it will automagically play VGM
files even if you change the extension (although that's not
recommended)
Improved file info box chip usage display
Added tag caching for tag queries, to speed up media library tag
retrieval
Changed to NSIS installer and packed in another demo VGM
Added YM2413 panning support
0.32 30/10/05
Added icons to config dialogue
Fixed issue with Now Playing loading information pages over the HTML
information display
Added file length information into HTML information display
Updated downloader code to use Winamp's built-in downloader instead of
using IE
Added msvcrt71.dll to installer
Enabled support for VGM 1.10
Re-integrated and extended Charles' MAME-style SMS Plus conversion of
sn76489.c to hopefully make it more discoverable and re-usable by
others
Added PSG panning support
Reorganised config interface
Added magical track number extraction for the Media Library by
guessing the filename of the associated playlist file and finding
which number entry it is in there - works well for most SMS Power
releases, at least
Fixed Media Library year problems
Improved time formatting
Added YM2413 panning support
Added panning Gaussian randomisation
Improved emulation of non-Sega variant SN76489 for
the Beeb fans
0.31 12/12/04
Added Media Library extended title support and lots of associated
options
And various other stuff too
0.30 28/5/03
Added pause between tracks and looping fadeout options
Updated to EMU2413 0.60: "Fixed HH&CYM generator and all voice datas."
Unupdated back to EMU2413 0.55 - percussion sounds terrible!
Added support for VGM v1.02 (custom PSG noise feedback)
Replaced MAME YM2612 core with Gens 2.10
0.29 31/10/02
Added PSG noise boost option
Added PSG smooth volume curve option
Fixed bug in GD3 tag display
0.28 12/9/02
Configuration now uses a tabbed dialogue
Added WinXP "visual styles" support
Japanese text now shows under WinXP (hopefully)
Seeking bugs fixed
Cancelling the File Info dialogue box for a group of files now works
properly
Improved mixing
Volume levels now match better for different chips
Fixed a typo which caused the YM2162 core not to be closed
Added some documentation to this file
Added a Help button which opens this file
0.27 1/5/02
Fixed a bug with invalid GD3s
Updated to YM2413 0.55, which included a higher quality mode (12%
higher sampling rate plus conversion). Use "High quality YM2413"
checkbox to control it.
Modified PSG core to produce output similar to FM cores, ie. much
quieter
Added Overdrive mode which amplifies the sound to
levels similar to a typical MP3 file. It can cause clipping, though.
0.26 14/4/02
Added MAME YM2151 FM core thanks again to BlackAura
Fixed credits in About box
0.25 8/4/02
Fixed PSG 2-byte noise write behaviour based on chip tests
Added MAME 0.36 YM2612 core thanks to BlackAura
Finally fixed the seek bug
0.24 25/3/02
Improved PSG tone channel oversampling (or rather sub-sample accuracy)
a huge amount - aliasing is gone and it sounds great. It's now always
turned on.
Rewrote PSG noise simulation to be 100% accurate to how the real chip
works
Reverse engineered SMS SN76489 (PSG) feedback network so noise
pattern is bit-accurate
Updated to zlib 1.1.4
0.23 17/3/02
Added PSG oversampling, hoping to reduce aliasing effects but it
doesn't.
Improved channel selection, it now remembers it if you stop and re-
play a track.
Released early as I had broken the self-installer
last time
0.22 12/2/02
Total/loop lengths in file info box are now to 1 decimal place,
rather than rounded down to the nearest second
Added some protection for truncated (broken) files
Looked into why VGZ files don't show up on the Open dialogue until
you select them from the dropdown list... it's a Winamp bug, see the
AAQ above.
Worked on the internet download code a bit... note
that when you close the minibrowser, it tends to switch off IE's offline mode
:(
0.21 6/1/02
Added HTML display of GD3 information, hopefully allowing Japanese
text to be displayed on all systems
Fixed a memory leak
Loads of other stuff
Never actually got around to releasing this one
0.2 20/11/01
Ported the plugin to C
so now the YM2413 is emulated via EMU2413
ported my SN76489 emulator
ported playback engine, including variable-speed playback and
seeking
Re-implemented file downloader using URLMon.dll
(makes code simpler)
Implemented loop skipping when seeking, so you can seek through a
file looped a lot of times much faster than before
Change title formatting - now you can display Japanese text too (if
supported).
Fixed a bug when stopping/skipping just before the end of the track
Moved settings to plugin.ini in the plugins folder. You can delete
the section from winamp.ini if you like. You'll have to re-set your
preferences if you don't like my defaults.
Changed FM/PSG mixing so the Japanese BIOS music sounds better... if
anyone can send me a recording (from a real SMS with an FM chip) of
the Japanese BIOS music (or any game using both the PSG and FM chip)
I'd be grateful.
Added some stuff to the file info dialogue
Added YM2413 channel muting
Updated to EMU2413 0.51, with modifications
0.12 1/10/01
Fixed typo in About box (0.1 -> 1.0)
Added user-configurable playback rate - now you can choose to play
music at the speed you remember.
Made it so PSG flip-flops don't get stuck at zero frequency (made it
sound strange sometimes)
Changed config dialogue to Verdana font (file info already was)
Added useless icon to config dialogue. If anyone wants to design a
logo I can show it this way :)
Fixed tab order in file info dialogue
Added SMS Power URL button to file info dialogue
Fixed a bug caused by the flip-flop fix
Cleaned up source code a lot
DLL is now compressed as well as WinAligned
Ported EMU2413 to Delphi... but it doesn't work yet
Removed the above flip-flop thing because it broke voices...
On a real SMS, quite often a channel's frequency is set to 0
without turning it off. On my simulated PSG that leaves a permanent
DC offset; on a real SMS that offset decays in a fraction of a
second. The effect of this is to make the wave appear to "move" up
and down; it has a small effect on the sound, as speakers operate
better without a DC offset. Unfortunately the same effect is used
for voices, so when I activate the code to remove the offset,
voices stop working. To see this in effect, try "Out Run 3D -
Magical Sound Shower" or "Micro Machines - Title Screen", among
others.
Added HTTP downloading via WinINet.dll... which is
part of IE, but should be on almost every PC
0.11 4/9/01
Fixed a bug in the PSG tone emulation that caused problems with Micro
Machines.
Relaxed version checking, now it only insists on VGM
and GD3 1.xx and still offers to play other files.
0.1 3/9/01
Added a button to set MIME types in the registry. If a server is set
up to descibe VGM/VGZ files as "Content-Type: audio/vgm" and these
values are set, Netscape will be able to play VGM files from URLs. IE
doesn't need it, it ignores the MIME type when it sees the file
association with Winamp and will open the file properly (after a
prompt).
VGM is verging on going public, so it's reset to 1.00
and the plugin gets out of alpha
Alpha 13 26/8/01
Fixed a worse bug in the previous bugfix :P
Added track title formatting stuff
Increased play thread priority to stop skipping when
the CPU is busy
Alpha 12a 25/8/01
Fixed looping bug
Alpha 12 25/8/01
For some reason the GZip code limited the path to 79 characters,
causing "Not an AYM file" errors on files with long paths. I fixed it.
Switched to VGM instead of AYM. ****DELETE IN_AYM.DLL****
Added configuration dialogue; the tone channel checkboxes have moved
there from the file info box
Added looping support
Updated to VGM 1.12
Added loop configuration to config dialogue, saving the loop count to
winamp.ini
Added a button in the file info dialogue for the config dialogue, so
you can get at it quicker
Setting the loop to a high value allows me to test
seeking speed. 400 minutes in 8 seconds is 3000x...
Alpha 11 20/8/01
Synchronous noise tested against a real system. Apart from the
different sound due to the real system's imperfections, it works
properly now.
Updated to use the GD3 tag location properly. Decrease the offset by
0x14 in existing files for it to work. I'm not going to code for it
to handle both, sorry...
Volumes use values measured from a real SMS. I may switch to
logarithmic values, or maybe have an option eventually?
Speed modifying code added. If you want to play back
at 120Hz or 13.47Hz, you can. Except you can't, I commented that code out.
Thanks to Bock for pointing out how to do it.
Alpha 10 19/8/01
It now looks for and uses the .ayz file extension. It actually
doesn't matter which extension you give a file, compressed or not.
AYM 1.11, plus you can now choose to try and play
versions not in the supported range (1.08-1.11).
Alpha 9 19/8/01
Switched to AYM instead of DYM
Invalid files were displaying a track length before, they don't now
Added GZip support. There are problems with the
.aym.gz extension - Winamp won't automatically pass it to the plugin, because
it sees the extension as .gz. That has been worked around. Windows won't
associate .aym.gz files with Winamp, because it too sees them just as .gz
files. I don't see any way around this. GZip also ballooned the DLL size a
bit... WinAligning makes it seem even bigger. (Was: ~42KB -> 64KB after
aligning, now it's ~75KB -> 92KB after aligning.)
Alpha 8a 17/8/01
Fixed problem with DirectSound output plugin
Fixed EQ problem
Alpha 8 17/8/01
Fixed an error which cause all sound to be half the correct frequency
(1 octave lower than it should)
That also fixed voices
Alpha 7 16/8/01
DYM 1.10, with GG stereo port writes. It's untested because there is
no test stream yet :)
Improved method of muting channels, although as far as the sound is
concerned it's the same.
Tweaked volume so the (theoretical) maximum is now 98% of the
available volume. It seems this is the "right" thing to do...
Since compatibility hasn't broken since DYM 1.08 (it
uses default values for older versions), the version checking now accepts a
range of values.
Alpha 6 15/8/01
DYM 1.09, with the PSG clock rate in the header. That
is all.
Alpha 5 15/8/01
Fixed up the channel disabling, although it's still in the info box
(it'll probably end up somewhere else). Before it took until the next
volume change on that channel to mute, now it's only the output
plugin' s buffer length that stops it being instant. Noise can be
disabled too. Unmuting still needs a volume change though.
DYM 1.08 already...
Added noise emulation according to the MAME/Hiro-shi method. It's
terrible, completely inaccurate.
Dave's Sonic DYM highlighted a problem - out of laziness, I was not
buffering the file myself, hoping that Windows would do enough. So,
every byte read was actually using quite a lot of CPU. I've now got a
32KB buffer - voices work now (almost... I'm not sure what the
problem is now, it could be an issue with DYM itself), and seeking is
incredibly fast! It took 6 seconds to seek 1 minute into the GG
Shinobi DYM before, now it's instant! Seeking nearly 3 minutes into
the Sonic DYM takes a fraction of a second. And now, CPU use is way
down. It depends on the DYM file, but it's typically around 4%, a
quarter what alpha 4 used :)
I switched to my determined PSG clock speed, but it seems to cause
some problems (with voice) if it's not what the DYM creator used. DYM
1.09 addition?
WinAligned DLL... it's 64KB instead of 45, but it now
executes from the disk cache on Win98 and higher.
Alpha 4 13/8/01
Added proper file info box, without invoking Delphi's RTTI filesize
overhead. It's a lot more hassle :( but it's kept the plugin at 44KB.
Rewrote tone generators to act EXACTLY like the hardware (counters
and flip-flops). The last version used another method which I thought
up based on maths and stuff like that, which sounded OK until the
sound started using vibrato, in which case it sounded terrible. Now
it sounds perfect (except for emulation of the "fading"
flip-flops...). As an added bonus it seems to be a bit faster too,
the decoding thread uses about 16.2% CPU for me now.
Added VERY quick and dirty noise emulation. It's just volume*random(),
and sounds crappy. It's better than nothing though. It also accounts
for about 25% of the CPU use...
Added DYM version checking, because some people were
trying to play old DYM files and crashing Winamp... :)
Alphas 1 to 3
I didn't record what I did then...
...but I ought to thank Jason for help translating the C.
while (! *((int *)b) )
is quite confusing, I think
while integer(b^)=0 do
is much more readable :) (translation: while what pointer b points to,
typecast as an integer, is zero, do...)


Created by Froilan Miranda
An operator takes one or more arguments and produces a new value. Addition and unary plus (+), subtraction and unary minus (-), multiplication (*), division (/),and assignment (=)
All operators produce a value from their operands. In addition, some operators change the value of an operand. This is called a side effect.
int x = 5; // initialize to 5
x = 23; // assign (copy or store) the value 23 in x
Almost all operators work only with primitives. Exceptions:‘=‘, ‘==‘ and ‘!=‘, which work with all objects and the String class supports ‘+’ and ‘+=‘
Operator precedence defines how an expression evaluates when several operators are present follow the order of operations. Use () to show precedence
Assignment is performed with the operator =, but you cannot assign anything to a constant value
a = 4;
//no good
4 = a;
Since the primitive holds the actual value and not a reference to an object, when you assign primitives, you copy the contents from one place to another
Aliasing - fundamental way that Java works with objects. Whenever you manipulate an object, what you’re manipulating is the reference, so when you assign “from one object to another,” you’re actually copying a reference from one place to another.
Aliasing will also occur when you pass an object into a method
The basic mathematical operators are the same as the ones available in most programming languages: addition (+) subtraction (-) division (/) multiplication (*) modulus (%, which produces the remainder from integer division). Integer division truncates, rather than rounds, the result.
Java also uses the shorthand notation from C/C++ that performs an operation and an assignment at the same time.
x += 4
The unary minus (-) and unary plus (+) are the same operators as binary minus and plus.
//Straight forward
x = -a;
//The compiler is able to figure out
x = a * -b;
//clearer to say
x = a * (-b);
Unary minus inverts the sign on the data. Unary plus provides symmetry with unary minus, although it doesn’t have any effect.
Shortcuts can make code much easier to type, and either easier or harder to read. The decrement operator is -- The increment operator is ++
There are two versions of each type of operator, often called the prefix and postfix versions. Preincrement means the ++ operator appears before the variable, post-increment means the ++ operator appears after the variable
Relational operators generate a boolean result.
The relational operators are:
The operators == and != compare object references. Use the special method equals( ) to compare the actual contents of an object. The default behavior of equals( ) is to compare references.
Each of the logical operators AND (&&), OR (||) and NOT (!) produces a boolean value of true or false based on the logical relationship of its arguments.
This means that the expression will be evaluated only until the truth or falsehood of the entire expression can be unambiguously determined.
Sometimes the type is ambiguous
0x2f; // Hexadecimal
0X2F; // Hexadecimal
0177; // Octal
0xffff; // max char hex value
0x7f; // max byte hex value
0x7fff; // max short hex value
200L; // long suffix
200l; // long suffix
1F; // float suffix
1f; // float suffix
1d; // double suffix
1D; // double suffix
e means “ten to the power”
1.39 e-43f in Java; it means 1.39 x 10-43
The bitwise operators come from C’s low-level orientation, where you often manipulate hardware directly and must set the bits in hardware registers. Java was originally designed to be embedded in TV set-top boxes, so this low-level orientation still made sense. However, you probably won’t use the bitwise operators much.
The shift operators also manipulate bits. They can be used solely with primitive, integral types.
The ternary operator, also called the conditional operator, is unusual because it has three operands.
boolean-exp ? value0 : value1
The + and += operators can be used to concatenate strings
One of the pitfalls when using operators is attempting to leave out the parentheses when you are even the least bit uncertain about how an expression will evaluate.
while(x = y) {
// ....
}
The word cast is used in the sense of “casting into a mold.” Java will automatically change one type of data into another when appropriate.
Casting a value always truncates the number. If instead you want the result to be rounded, use the round( ) methods
If you perform any mathematical or bitwise operations on primitive data types that are smaller than an int (that is, char, byte, or short), those values will be promoted to int before performing the operations, and the resulting value will be of type int.
In general, the largest data type in an expression is the one that determines the size of the result of that expression; if you multiply a float and a double, the result will be double; if you add an int and a long, the result will be long.


RCSFA
450 Serra Mall, Stanford, CA 94305
650 723-2300
About
Students
Staff
Courses
Calendar
Announcments
Go See Our Student Production of The Lion King! Tickets on sale for 10$ during all three lunches throughout next week
Visit Our Art Open House!
ACT/SAT information here
Feb. 10th Talent Showcase!
2017-2018 Course Selection Guide Here
National Honors Society Inductions Feb. 20th
College Fair Information Here


Bookmarklet Maker
Title:
Code
alert('hello world');
Generate Bookmarklet
Run Code
Clear
Bookmaklet:
bookmarklet
Output:
Html code:
Usage:
Usage: Paste a code into the form and click on the button generate.
To test the bookmarklet click on the blue button.
To install the bookmarklet drag and drop it to the bookmars toolbar.


Susan Granger's review of "OCTOBER SKY" (Universal Pictures)
"Until I began to build and launch rockets, I didn't know my home town was at war with itself over its children, and that my parents were locked in a kind of bloodless combat over how my brother and I would live our lives"....is what Homer Hickam, a high school boy in Coalwood, West Virginia, wrote in "Rocket Boys," a memoir which forms the basis for this wonderful, new coming-of-age film. When on October 4, 1957, the Russians launched Sputnik, heralding the dawn of the Space Age, it inspired Hickam (Jake Gyllenhaal) to look to the stars rather than into a bleak future in the coal mines. Working with three high school friends, and inspired by rocket pioneer Dr. Werner Von Braun, Hickam begins to design and launch a series of rockets at his own "Cape Coalwood," a slag heap - much to the disgust and dismay of his father (Chris Cooper), the mine superintendent. Only his teacher (Laura Dern) supports him, supplying a book on rocketry and encouraging him to learn trigonometry to gauge the range of the shots. Everywhere, Homer Hickam looks there are seemingly insurmountable obstacles blocking him from his goals of becoming a rocket scientist, yet earning his father's acceptance and approval. Nevertheless, he doggedly pursues his soaring dream which, eventually, becomes a fulfillment of the hopes of the close-knit, rural town. Adapted for the screen by Lewis Collick and directed by Joe Johnston ("Jumanji"), this is a remarkably rich, s ensitive, heart-warming family drama. On the Granger Movie Gauge of 1 to 10, "October Sky" is a triumphant 10, the first "must see" movie of 1999. And there's a post-script. In Feb., 1998, the real Homer Hickam took an early retirement from NASA, where he worked as a space engineer, training astronauts on the space shuttle.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


CITY OF JOY A film review by Shakil Waiz Ahmed Copyright 1992 Shakil Waiz Ahmed
One person has said, "Disappointed to see number of notes from fellow desis praising CITY OF JOY as an accurate depiction of life in Calcutta, must see, moving, etc. While we are always grateful for any such movie since we browns make it on screen in west so infrequently, not all of it is so uplifting. CITY OF JOY strikes me as the worst of its kind of orientalist, exoticising pap."
I just saw the movie and I am inclined to agree. To begin with, there is the standard stereotype of a white American hero going to show the helpless Indians what they need to do. There is an underlying theme about the movie that bothered me. It gives off the image that wealthy Indians are leeches by default who take advantage of the poor masses. The poor, of course, are good at heart, but are waiting for the big American hero to go and lead them to rebel against the evil wealthy Indians to bring the poor out of their misery.
Om Puri has to marry off his daughter and has been saving for years for her dowry. When a young man from a well-to-do family develops a liking for her, Om Puri approaches the father of the man on the question of marriage of their children. The father objects because Om Puri is a rickshaw-wallah, not on the grounds that this breaks social norms, but because the dowry is not high enough. Indeed, when Om Puri puts up the missing half ounce of gold for the required dowry, all problems disappear, and the marriage is approved. While the scene does highlight the problems associated with dowries, it gives off a completely distorted picture of real-life scenarios.
There are numerous such scenes in the movie. Patrick Swayzwe arrives in Calcutta to seek "enlightenment," but he has no plans -- he just *arrives* as if that is all he thought was necessary. Why a young American doctor would randomly pick Calcutta when he so obviously shuns the very environment in early scenes, is never quite explained. How he expected to find "enlightenment" and what he planned to do to seek it, is conveniently also omitted. Instead, we find him check into an un-air-conditioned hotel and complain that there is no mini-bar. If a mini-bar is what he was looking for, one wonders why he did not check into any one of the many high class hotels that Calcutta does have to offer? Would he check into an el-cheapo hotel in the US and expect to find the same? Could an educated American doctor possibly be so naive as to ask a roadside snack-seller in Calcutta for a "hamburger?" Now while I'm sure that many would argue that this pokes fun at the stereotypical ignorant American, I would argue that it is equally damaging to the image of Calcutta. For most of us on this newsgroup, the former may be the interpretation. But what does the average American with only very limited exposure to India see?
There are some beautiful and touching scenes in the movie. But the underlying traditional theme of white hero going to save the helpless brown masses fight against the evil rich brown bloodsuckers is an orientalist theme that is getting old. It disturbed me and the friends I went to see it with.
-- Shakil
.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


You can host websites for free is you are a Columbia University Student, you need a uni. Open
Github is a website for storing code online and collaborating on projects. Acounts are free. Open
Create your personal website. Step by step instructions, source code and screenshots. Open
Reading
There are a few books that have captivated me and probably wouldn't have come accross them if it wasn't for some awesome people that let me borrow them :)
Outing
There are a lot of places to visit , but I'll just list these that are very dear to me !
Music
I'll share my grooveshark and spotify accounts , I am a pretty good dj


genes expression miRNAs miRNA root stress file (.%) rice Table response analysis shoot .E- data protein tags clean identified mRNA targets gene new sequencing (Figure Additional total Plant number pairs plant target {border-style (Additional changes involved up-regulated RNA S). differentially-expressed px;} signaling small #ffffff;} Figure miR, miRR treatment used biosynthesis interaction miR down-regulated expressed libraries mRNAs using KB) LINK differentially predicted responses shoot. Arabidopsis candidates enriched known reads (.% ABA Cd-responsive Cell Res miRNA-mRNA microRNAs pathway regulation showed stress. (XLSX family including plants root, seedlings stress, transcription Acids CR, CdCl KR, KS, Nucleic RNAs cadmium carotenoid different high metabolism relative respectively. shoot, significantly transcriptome (Table Chen Environ Zhang based biological change exposed levels libraries, libraries. profiles regulated shown synthesis unique ./j.-...x Total Zhou cellular constructed data, enzymes genome library miRNAs. microRNA protein, proteins px; significant tag thaliana {font-family (A) ,,, Biol LOC_Osg. Yang antioxidant control families font-size metabolic metal osa-miR pattern precursor ribosome sRNA signal study tags) transporters (B) ./S-()- Cd-treated Distinct However, Huang Illumina KEGG LOC_Osg., P-value Previous Sci Wang Zheng Zhu activity addition, database databases differential double; exposure genes. hormone identify important key microarray million opposite patterns processes reported respectively results ribosomal roots samples secondary sequence studies tags), ./--- ABC BMC Based Bot Exp Genomics Liu Oryza Therefore, UDP-glucoronosyl UDP-glucosyl Venn accumulation acid acquired activities adaptor analyses annotation border-color border-width cleavage compared conditions content deep detected differences domain-containing down-regulation early enrichment factors, function growth high-throughput identification induced integrated level miRNAs, miRS miRa, molecular novel online oxidative performed prediction primers profiling putative solid; specific starBase study, suppl tissue toolkit transcripts transferase treated treatment. up-regulated, {font-style {font-weight (C) ./journal.pone. A). C). CR/KR-Fold Cadmium Carotenoid Differentially-expressed Identification NAC PCR Pearson RT-PCR Results Total% Van activated. apical article assay available belonging bold combined containing copper correlation courier; down-regulated, em; glutathione heavy increase independent indicates information investigated lead log mRNAs, mapped mature meristem metabolite numbers observed order pathways physiological produce provide pt;} qRT-PCR quality quantitative ratios reference regulate replicates reverse sativa sequences sequences, serine showing simultaneously site software specifically stress-regulated system, tags, time tolerance tool transduction


Choose Grid Size
Grid Height:
Grid Width:
Pick A Color
Remove Grid
Clean Grid
Design Canvas
Preview as Image
Right-Click on the preview image below and select
Save image as..
to download your Pixel Art Work


Susan Beno
Contact
(current)
Portfolio
About
Where you can find me:
Email:
<EMAIL_ADDRESS>Github:
SueBee21
LinkedIn:
LinkedIn
Resume
Phone:
(203) 895-0758


JavaScript is disabled on your browser.
Skip navigation links
Overview
Package
Class
Tree
Deprecated
Index
Help
Prev Letter
Next Letter
Frames
No Frames
All Classes
A
B
C
E
F
G
L
M
N
P
R
S
T
U
A
AbqParksServiceApplication
- Class in
edu.cnm.deepdive.abqparksservice
AbqParksServiceApplication()
- Constructor for class edu.cnm.deepdive.abqparksservice.
AbqParksServiceApplication
AbqParksServiceApplicationTests
- Class in
edu.cnm.deepdive.abqparksservice
AbqParksServiceApplicationTests()
- Constructor for class edu.cnm.deepdive.abqparksservice.
AbqParksServiceApplicationTests
allParks()
- Method in class edu.cnm.deepdive.abqparksservice.controller.
ParkController
Returns a list of all parks.
Amenity
- Class in
edu.cnm.deepdive.abqparksservice.model.entity
This entity class information about a park amenity such as the id, name, and display name.
Amenity()
- Constructor for class edu.cnm.deepdive.abqparksservice.model.entity.
Amenity
AmenityController
- Class in
edu.cnm.deepdive.abqparksservice.controller
This is the amenity REST controller.
AmenityController(AmenityRepository)
- Constructor for class edu.cnm.deepdive.abqparksservice.controller.
AmenityController
Auto wires AmenityRepository.
AmenityRepository
- Interface in
edu.cnm.deepdive.abqparksservice.model.dao
This interface extends
CrudRepository
and is used to query the amenity table.
Attributes
- Class in
edu.cnm.deepdive.abqparksservice.services.entity
This class is used to store all parks attributes and amenities.
Attributes()
- Constructor for class edu.cnm.deepdive.abqparksservice.services.entity.
Attributes
A
B
C
E
F
G
L
M
N
P
R
S
T
U
Skip navigation links
Overview
Package
Class
Tree
Deprecated
Index
Help
Prev Letter
Next Letter
Frames
No Frames
All Classes


Discovery API
Important: You must have a valid discovery username and password to obtain a valid authentication token.You must have a valid authentication token to call the secure APIs.
Use this form to request access.
Authentication
| Method | POST |
| Path | <auth host>/auth/realms/endeavour/protocol/openid-connect/token |
| Header | Content-Type: application/x-www-form-urlencoded |
| Body |
client_id = <client> username = <username> password = <password> grant_type = password |
Get FHIR resource types
| Method | GET |
| Path | <api host>/api/fhir/resourceType |
| Header | Authorization: Bearer <Token>(for client eds-data-checker) |
Get patients for NHS Number
| Method | GET |
| Path | <api host>/api/fhir/patients |
| Header | Authorization: Bearer <Token>(for client eds-data-checker) |
| Query parameters | nhsNumber=<NHS number> |
Get resources for patients
| Method | POST |
| Path | <api host>/api/fhir/resources |
| Headers | Authorization: Bearer <Token>(for client eds-data-checker) Content-Type: Application/Json |
| Body |
{ "resources": [<resource>, ...], "patients": <patient bundle> } |
Get referenced resource
| Method | GET |
| Path | <api host>/api/fhir/reference |
| Headers | Authorization: Bearer <Token>(for client eds-data-checker) Content-Type: Application/Json |
| Query parameters | reference=<Reference> |
Get flag for patient
| Method | GET |
| Path | <api host>/api/subscriber/flag |
| Headers |
Authorization: Bearer <Token>(for client eds-subscriber) OdsCode: <ODS Code> |
| Query parameters |
code=<Flag code> subject=<NHS number> |


PyRadio: Command line internet radio player.
Ben Dowling - https://github.com/coderholic
[Back to Build Instructions] | [Back to README]
What? A linux console application on Windows?
Yes, sure. Why not?
PyRadio is a python script after all, and python does run on Windows. So, with a little bit of tweaking of the code, it is possible.
This page will guide you through the process of installing, updating and running PyRadio on Windows.
First of all, let me tell you that if you are still running Windows XP, you can just stop reading right now; it won’t happen…
Then, due to reasons that are of no importance right now, mpv is not (yet?) supported. That leaves us with MPlayer and VLC.
Installing MPlayer takes a couple of extra steps, and you may find that some streams (e.g. m3u8) may not be playable. Furthermore, special care has to be taken in order to be able to save the volume of the player.
VLC is much easier to install, but song titles’ updating may not be 100% consistent (if any). If this is not a deal breaker for you, then just go on and use VLC as PyRadio’s player.

Having said that, let us proceed with the installation.
The installation consists of three (optionally four) steps:
If you don’t already have Python, just get to its Windows Downloads page and download the latest 3.x release.
When the download is done, run its setup and select “Custom Installation” so that you can “Add Python to environment varaibles”. You can refer to the following image to see the relevant setting.
Either if you have just installed Python or you already have it installed, you need to verify that its executable is in the PATH (i.e. Python can be executed from a console by typing“python”).
So, go ahead and open a console (the command is cmd) and type python.
If you get something similar to the following snippet, you are good to go.
Python 3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:54:40) [MSC v.1900 64 bit (AMD64)] on win Type "help", "copyright", "credits" or "license" for more information. >>>
If the command could not be found, you have to run the installation again, select “Modify” and set the “Add Python to environment variables” option. You can refer to the following image to see the relevant setting.
Python Installation Modification
Note: If you don’t have the setup file of the original Python installation, you will have to download it from Python’s Windows Downloads. In case you want to upgrade to the latest version, you must uninstall the one currently installed, beforehand.
It’s time to decide which player you want to use, either MPlayer or VLC, or even both of them.
This is what you should know before making your decision:
| MPlayer | VLC | |
|---|---|---|
| Pros | Fully functional | Easy installation Plays almost all streams |
| Cons | Extra steps to install May not play all streams (e.g. m3u8) |
Titles update is not consistent (if any)) |
If MPlayer is your selection, please refer to the relevant instructions.
If VLC is your selection, just go and get it and install it as any other Windows program.
As long as you install it to its default location (e.g “C:\Program Files\VideoLAN\VLC” or “C:\Program Files (x86)\VideoLAN\VLC”) Pyradio will be able to detect and use it.
This is an optional step, so if you do not want to install yet another program to your PC, you are free to skip it.
Having said that, why would you install Git?
Well, it makes installing and updating PyRadio much easier and faster. That’s all.
If you decide to install it, this is how you do it:
git config --global user.name "FirstName LastName" git config --global user.email<EMAIL_ADDRESS>You are done!!!
At last!
You are ready to install PyRadio!
So here’s how you do it:
If you have Git installed, you open a console (press the Win key, type cmd and press ENTER or if you are on Windows 10, use Run it as Administrator as you can see in the following image).
Then type:
git clone https://github.com/coderholic/pyradio.git cd pyradio devel\build_install_pyradio
Go to PyRadio’s Releases page and download the latest release (either a zip or a tar.gz file).
Extract this file to your “Home” directory (“C:\Users\[Your User Name]” or “%USERPROFILE%) - you will get a directory whose name is similar to”pyradio-0.7.9".
I will use this name for the following examples; you will have to use the actual name of directory you got from the extraction.
Finally, open a console (press the Win key, type cmd and press ENTER or if you are on Windows 10, use Run it as Administrator as you can see in the following image).
Then type:
cd pyradio-0.7.9 devel\build_install_pyradio
If the installation is successful, you will get something similar to the following snippet:
... Installing pyradio-script.py script to C:\Users\spiros\AppData\Local\Programs\Python\Python37\Scripts Installing pyradio.exe script to C:\Users\spiros\AppData\Local\Programs\Python\Python37\Scripts Installed c:\users\spiros\appdata\local\programs\python\python37\lib\site-packages\pyradio-0.7.9-py3.7.egg Processing dependencies for pyradio==0.7.9 Finished processing dependencies for pyradio==0.7.9 *** HTML files copyed to "C:\Users\spiros\AppData\Roaming\pyradio\help" === Player "mplayer" found in "C:\Users\spiros\mplayer" === Player "mplayer" found in PATH *** Installing Dekstop Shortcut Installation successful!
Finally, install PyRadio’s Python packages requirements:
pip install windows-curses pip install pywin32
And you are done!
If you are not using Git, you can safely delete the pyradio-0.7.9 directory.
Finally, you can type pyradio and enjoy!
Note: For your convenience, the installation batch file has tried to installed a shortcut on your Desktop. You can use it to launch PyRadio and optionally modify it (change font size, window dimensions, etc). If it’s not there, you can just copy it from the “help” directory of the Explorer File Manager which will open after executing pyradio -ocd.
PyRadio will inform you when a new release is available.
To start the update procedure, close PyRadio if it’s still running.
Then do one of the following depending on whether you have Git installed or not:
Open a console (press the Win key, type cmd and press ENTER) and execute the commands:
cd pyradio git pull devel\build_install_pyradio
The procedure is the same as installing, so please follow the relevant instructions.
To uninstall PyRadio you will have to use the “-u” (uninstall) parameter.
This procedure will remove any PyRadio files installed in your system, but will leave instact PyRadio configuration files and python, mplayer and git (if installed).
To uninstall PyRadio open a console (press the Win key, type cmd and press ENTER or if you are on Windows 10, use Run it as Administrator as you can see in the following image).
Then navigate to the previously downloaded PyRadio setup folder, and execute devel\build_install_pyradio -u.
Example:
C:\Users\spiros\pyradio>devel\build_install_pyradio -u Uninstalling PyRadio ** Gathering information... ** Removing executable ... done ** Removing Desktop shortcut ... done Looking for python installed files... ** Removing "pyradio-0.8.8-py3.7.egg" ... done ** Removing "pyradio-0.7.9-py3.7.egg" ... done ** Removing "pyradio-0.6.3-py3.7.egg" ... done PyRadio successfully uninstalled! ********************************************************* PyRadio has not uninstalled MPlayer, Python and/or Git. You will have to manually uninstall them. PyRadio user files are left instact. You can find them at C:\Users\spiros\AppData\Roaming\pyradio **********************************************************
In this example, running devel\build_install_pyradio -u has removed PyRadio python 3.7 installation files.
The script has detected (and removed) version 0.8.8 (probably the current or previous version), along with verisons 0.7.9 and 0.6.3 (older versions previously installed).
I would recommend to execute devel\build_install_pyradio -u from time to time, and reinstall PyRadio right after its completion.
When a bug is found, please do report it by opening an issue at github.
In you report you should, at the very least, state your pyradio version and python version.
It would be really useful to include %USERPROFILE%/pyradio.log in your report.
To create it, enter the following commands in a terminal:
cd %USERPROFILE% del pyradio.log pyradio -d
Then try to reproduce the bug and exit PyRadio.
Finally, include the file produced in your report.