Limited number of RFM12Pi with RFM69CW are in the shop alongside the standard RFM12Pi for early adopters and devs to test: http://shop.openenergymonitor.com/rfm69pi-rfm69cw-raspberry-pi-base-station-receiver-board/.
The units come preloaded with Optiboot bootloader and the following compiled sketch: https://github.com/openenergymonitor/RFM2Pi/blob/master/firmware/RFM69CW_RF_Demo_ATmega328/RFM69CW_RF12_Demo_ATmega328/RFM69CW_RF12_Demo_ATmega328.ino
The RFM69CW is backward compatible with RFM12B, the main differences are:
- RSSI - received signal strength indication value avaialbe
- 57600 serial baud instead of 9600
- default settings of 433Mhz, NodeID 15 and 210 network group
The 'testing' version of emonHub can handle auto detection of baud rate and posting RSSI value to emoncms: https://github.com/emonhub/emonhub/tree/testing. Thanks a lot to Paul who continues to do amazing work developing emonHub.
For development see github issue discussion: https://github.com/emonhub/emonhub/issues/58
Re: RFM12Pi with RFM69CW
Thanks for the kind words Glyn!
The latest changes have now been merged into the default "development" branch as they seem quite stable and thoroughly tested. so no need to go to the "testing" branch as that will now be subjected to further experimenting.
The most significant change is for rfm69 and but there are some other less exciting changes since rc1.0
Jee/RFM2Pi serial baud auto selection (currently selects 9600 or 57600 depending on device firmware)
Display RFM2Pi firmware revision and current settings (post vRF12demo.11 firmware only)
Improved log messages
Improved settings qualification
Widened compatibility with other Jee type devices
Reintroduced the float datacode "f"
Option of using pre-timestamped payloads via serial or socket for non-live data input
Cleaner exiting for multi-threading
Plus various other minor improvements
To get emonhub rc1.1 you can pull the changes in from git, remember use "rpi-rw" first if running read-only.
Paul
Re: RFM12Pi with RFM69CW
The update does not appear to auto select the correct baud rate as suggested above.
I'm using a RFM12B, and following the update above (I was already on the emonhub 'development' branch) it appears from the emonhub error log that it has selected 57600 baud, which has caused instability in my system and stopped all feeds being updated.
Any ideas what has gone wrong?
Paul
Re: RFM12Pi with RFM69CW
tut.. there always has to be one :-)
Sorry not off-hand no. I've been using that part of the code for months now with no issues, It would be a great help if you could post the log so I can see the steps it's taken.
emonhub tries to communicate with the rfm2pi at each baud and if it doesn't get a the expected response it moves on to the next baud, so that would suggest it got an acceptable response which is not a surprise if it is then working to some degree. Do you know what firmware you are running on rfm2pi? is it stock or modified?
I have tested with as many devices and firmwares as possible but may need to "tune" the selection process if I've missed something.
The auto-selection can easily be overridden by just defining the baud you want in the rfm2pi init_settings eg "com_baud = 9600", i assume there is no pre-existing baud set in emonhub,conf.
Paul
Re: RFM12Pi with RFM69CW
I emailed you the log last night Paul to your outlook address, but now pasted below.
The RFM2Pi firmware is stock (preloaded - but was purchased direct from Martin Harizanov - not from OEM shop) and there are no 'baud' entries in the emonhub.conf
Paul
2014-12-09 21:25:31,148 INFO Set up reporter 'emonCMS' (buffer: memory | size: 1000)
2014-12-09 21:25:31,153 INFO Setting emonCMS url: http://localhost/emoncms
2014-12-09 21:25:31,155 INFO Setting emonCMS apikey: set
2014-12-09 21:25:31,158 INFO Creating EmonHubJeeInterfacer 'RFM2Pi'
2014-12-09 21:25:31,163 DEBUG Opening serial port: /dev/ttyAMA0 @ 57600 bits/s
2014-12-09 21:25:35,189 WARNING Device communication error - check settings
2014-12-09 21:25:35,192 INFO Setting RFM2Pi frequency: 868 (8b)
2014-12-09 21:25:36,196 INFO Setting RFM2Pi group: 210 (210g)
2014-12-09 21:25:37,199 INFO Setting RFM2Pi quiet: 1 (1q)
2014-12-09 21:25:38,204 INFO Setting RFM2Pi baseid: 15 (15i)
Re: RFM12Pi with RFM69CW
The auto-selection can easily be overridden by just defining the baud you want in the rfm2pi init_settings eg "com_baud = 9600"
Added, and I'm back on 9600 baud with the feeds now updating OK
If you have any ideas why it didnt auto select, let me know, and I'll try them out.
Paul
Re: RFM12Pi with RFM69CW
I have just tried this several times with my rf12 rfm2pi and it's working exactly as expected, so I'm at a bit of a loss as I can't recreate it, heres my "set-up" part of the log. from there it logs as usual.
2014-12-10 17:28:40,636 INFO EmonHub Pre-Release Development Version (rc1.1)
2014-12-10 17:28:40,639 INFO Opening hub...
2014-12-10 17:28:40,645 INFO Logging level set to DEBUG
2014-12-10 17:28:40,649 INFO Creating EmonHubEmoncmsReporter 'emonCMS'
2014-12-10 17:28:40,655 INFO Set up reporter 'emonCMS' (buffer: memory | size: 20000)
2014-12-10 17:28:40,661 DEBUG Setting emonCMS interval: 5
2014-12-10 17:28:40,664 INFO Setting emonCMS url: http://emoncms.org
2014-12-10 17:28:40,668 INFO Setting emonCMS apikey: set
2014-12-10 17:28:40,672 INFO Creating EmonHubEmoncmsReporter 'emonCMS2'
2014-12-10 17:28:40,678 INFO Set up reporter 'emonCMS2' (buffer: memory | size: 20000)
2014-12-10 17:28:40,683 INFO Setting emonCMS2 url: http://emoncms.org
2014-12-10 17:28:40,686 INFO Setting emonCMS2 apikey: set
2014-12-10 17:28:40,690 INFO Creating EmonHubJeeInterfacer 'RFM2Pi'
2014-12-10 17:28:40,696 DEBUG Opening serial port: /dev/ttyAMA0 @ 57600 bits/s
2014-12-10 17:28:42,702 DEBUG Opening serial port: /dev/ttyAMA0 @ 9600 bits/s
2014-12-10 17:28:46,712 INFO RFM2Pi device firmware version & configuration: not available
2014-12-10 17:28:46,716 INFO Setting RFM2Pi frequency: 433 (4b)
2014-12-10 17:28:47,720 INFO Setting RFM2Pi group: 210 (210g)
2014-12-10 17:28:48,724 INFO Setting RFM2Pi quiet: 1 (1q)
2014-12-10 17:28:49,729 INFO Setting RFM2Pi baseid: 15 (15i)
2014-12-10 17:28:50,734 DEBUG Setting RFM2Pi interval: 5
2014-12-10 17:28:50,737 INFO Creating EmonHubSocketInterfacer 'Socket'
2014-12-10 17:28:50,741 DEBUG Opening socket on port 50011
2014-12-10 17:28:50,767 DEBUG RFM2Pi broadcasting time: 17:28
2014-12-10 17:28:50,772 DEBUG RFM2Pi acknowledged command: > 4b
2014-12-10 17:28:51,223 DEBUG RFM2Pi acknowledged command: > 210g
2014-12-10 17:28:51,671 DEBUG RFM2Pi acknowledged command: > 1q
2014-12-10 17:28:51,897 DEBUG RFM2Pi acknowledged command: > 15i
2014-12-10 17:28:52,364 DEBUG RFM2Pi acknowledged command: > 0s
2014-12-10 17:28:52,590 DEBUG RFM2Pi confirmed sent packet size: -> 4 b
I will continue to look into it and study the RF12Demo sketches, 2 details could help me out,
can you confirm what firmware the rfm2pi is running?and if you have minicom or similar could you stop emonhub for a moment and send a "v" to rfm2pi and post the results and also a "?" the responses to these commands are what emonhub is looking for.Something else just occurred to me, can you confirm if you are auto-starting emonhub from boot or if you have started/restarted emonhub alone using commands ie not rebooted?
Paul
edit - just reread your post above
Re: RFM12Pi with RFM69CW
I did a full reboot after the update, and emonhub normally starts as a service automatically.
Regarding minicom; I've installed it, and can see the data arriving in dev/ttyAMA0 but unsure how to send a "v".... I've tried typing, "v" but it just brings up the minicom commands list.
(It's taken me 5 minutes to find out how to exit from minicom!!! what a awkward piece of software)
Paul
Re: RFM12Pi with RFM69CW
Since I'm not able to reproduce this, I'm finding it hard to pinpoint what could be happening. My current thoughts are along the lines of either there is a difference in the firmware's in question which is not complying to emonhubs expectations, which can only really be determined by seeing the serial response to the commands used, or I vaguely recall some months ago when I first put the code together, I experienced some issues with the rf12 rfm2pi at boot up, this was overcome and hasn't reoccurred in many months, but without experiencing the issue I'm sort of clutching at straws here.
The crux of the issue in the early attempts seemed to be that the rfm2pi was printing many lines of help text at power up, then when emonhub sent out the test command and caught the end of the help text it thought it was in response to it's test command and accepted the current settings as correct.
If that was to be the issue it would only fault at power up and first use of the rfm2pi, When emonhub is restarted using "sudo service emonhub restart" while the Pi remains powered up and the rfm2pi is already initialized, the auto selection would then work as expected.
If you want to try this you will need to "comment out" the new "com_baud" line before restarting emonhub
Then edit the conf file (sometimes it can take several seconds before all the threads are closed as it tries fo finish posting before closing).
If you cut and paste these 2 lines in together and [enter] it will start emonhub and switch immediately to the log so you don't miss the start-up lines, if it still didn't auto-select correctly, exit log [ctrl-c] and uncomment the new line in the conf again. When you save the file it will automatically delete and recreate the interfacer with the set baud, no need to restart emonhub or the Pi,
As you save and exit the conf if you immediately hit the scroll up key(twice probably) to re use the "tail log" line and [enter] you should just be able to catch the interfacer being deleted and recreated in the log.
If it's not that I'm (currently) lost, if it is that we know what were up against.
Paul
Edit - If you are ok having defined the baud in the conf I can wait to see if Glyn is able to recreate this on a non-live system rather than interfering with your data collection. it's up to you I do understand if you have it working you may not want to experiment at the cost of lost datapoints.
Re: RFM12Pi with RFM69CW
Hi guys,
Good news, I've fixed the issue I was having (same as Paul Reed) https://github.com/emonhub/emonhub/issues/58#issuecomment-66480108. The issue was I had got confused as to which emohub.conf file I was using, one of the files has a line in it overwriting the baud rate to 57600. Reverting back to the stock SD card image and using the emonhub.conf on the boot partition everything works just perfectly :-)
Emonhub now auto detects RFM12B 9600 baud and RFM69CW 56700 baud. I tested running emonhub at boot and manually and both on a Pi Model B and Pi Model B+. Every time ot successfully auto detected the baud.
I'm using the emonhub.conf file on the /boot partitionI was posting to a remote emoncms server (not emoncms.org but a test emoncms server we have running here in the lab) with local logging the to Pi disabled (as standard on the ready-to-go) SD card.
I tested with three separate RFM12Pi's with RFM69CW all running the latest: https://github.com/openenergymonitor/RFM2Pi/tree/master/firmware/RFM69CW_RF_Demo_ATmega328/
And four separate RFM12Pis with RFM12B all running the same code that's been on the last 1500 PCS of RFM12Pis that we've sold, we've not changed the code on the RFM12Pi with RFM12B since we first lauched the unit in the shop as far as I can remember: https://github.com/openenergymonitor/RFM2Pi/tree/master/firmware/RF12_Demo_atmega328
@ Paul Reed: if you have a spare SD card could you try flashing a fresh emonSD 13-08-14, edit the emohub.conf on the /boot partition and do a git pull and test if the serial baud auto detection is working for you?
Re: RFM12Pi with RFM69CW
Thanks Glyn, that's fantastic news (for emonhub not so much for Paul though), is it possible a rfm2pi supplied by Martin has a different/earlier RF12demo sketch?
Paul
Re: RFM12Pi with RFM69CW
The rfm2pi was the second version (which fits into standard pi cases) and was purchased from Martin around 5th March 2013 (which was before oem was stocking them).
I'll ask Martin if he can recall.
Re: RFM12Pi with RFM69CW
Yes very good chance it could have slight differences, I don't have control over what Martin loaded nor do I have one here to test with. The good news is that you should easily be able to update to our 'stock' firmware direct from the Pi by following: http://wiki.openenergymonitor.org/index.php?title=RFM12Pi_V2#Upgrading_RFM12Pi_Firmware_Direct_from_the_Pi
Re: RFM12Pi with RFM69CW
Guys,
I think the firmware version I shipped these around March 2013 is this one: https://github.com/mharizanov/RFM2Pi/tree/d570b55221a2aa03da161e2c569cd4b6950a1364/firmware/RF12_Demo_atmega328
On another subject, I see you plan to use 57600 baud on 8Mhz clock, that would by default introduce 3.7% error possibility, check http://www.wormfood.net/avrbaudcalc.php?postbitrate=57600&postclock=8
This is the reason I used baud 38400 for the bootloader on the RFM2Pi. It may seem little, but if you think about it, 4 out of 100 bytes received on the serial may be garbage.. better use 38400 instead of 57600 baud.
Re: RFM12Pi with RFM69CW
Hi Martin, thanks for the link, I don't see anything obviously different with that sketch but will look closer at it.
Thanks for the pointers on baud too,I think I have seen 38400 in use on another Jee type device.so may include it in emonhub's short list anyway.
Re: RFM12Pi with RFM69CW
I've also compared the two sketches and found just two changes, lines 42 & 43 (Stack size increase), other than that they appear to be the same.
I Followed Glyn's advice above re updating to stock firmware, and after removing "com_baud = 9600" from init_settings, restarted emonhub, and 9600 baud was auto successfully selected.
So in short, I'm not sure what the problem was, but all good now!
Thanks
Paul
Re: RFM12Pi with RFM69CW
@mharizanov,
> 4 out of 100 bytes received on the serial may be garbage..
Hmm, not so - this is still an asynch link, each frame reception is independent (within limits) of the previous.
Net effect is that disagreement over clock rate between transmitter and receiver does not accumulate during a block transmission - if the clock error is well below half a bit time by 'character' frame end, it's cool. 3% is within bounds unless driving capacitive loads like very long cables that could induce data dependent skew.
edited for clarity 17Dec
Re: RFM12Pi with RFM69CW
What is a frame in this context, is it a start bit, 8 data bits and a stop bit?
Re: RFM12Pi with RFM69CW
Yes. Ideally the receiver samples the incoming waveform at the center of each bit cell in the frame. Clock skew will cause the sampling point to drift away from the cell center progressively for each bit cell sample. Provided the skew is less than half a cell width by the end of the frame, it is harmless.
The next 'start' bit kicks off the same process again with no error accumulation from the previous frame.
Re: RFM12Pi with RFM69CW
unless driving very long cables
And for the purpose of this discussion, you don't start measuring that length until the signal has been converted from USB to asynchronous serial. On most Arduinos, the serial "cable" is actually PCB traces. If you're using an external programmer, then it includes some traces on the programmer, the 6-pin header, and then some traces on the target board. Either way, a much nicer environment than metres and metres of serial cable.
As another datapoint, I run a Mega2560 at 8MHz and do all image downloading at 57600 baud. My hex file is about 100K and I've downloaded it hundreds of times with no problems at all. It doesn't work at all at 115200, and I guess the error table linked above explains why... 7.8% error there.
Re: RFM12Pi with RFM69CW
I'd welcome any help troubleshooting the following issue.
I have two Pi side by side, one with the RFM12 and one with RFM69 which I just had delivered from the oem shop.
compare the following minicom output from the old board:
With the following from the second Pi (simultaneous):
I can sometimes get a sane looking frame (emonHub has managed to pass data to emonCMS for a couple of my nodes), but still... obviously something is seriously amiss!
I'm at a loss, unfortunately. I've confirmed that the RFM12 board gives the same output in minicom on either Pi, so the issue is definitely in the way I'm interfacing with the RFM69 board.
Re: RFM12Pi with RFM69CW
Glynn, any thoughts on this? I don't really know how to proceed since using minicom is about as low level as I have any understanding of. I've tried a couple of different baud rates, but as you'd expect that doesn't improve anything...
Re: RFM12Pi with RFM69CW
Clearly the asynch driver is disturbed by the RFM69CW activity, presumably at interrupt time.
Most individual lines start ok and some data is intact at line end. The (-nn) is the new RSSI indication. Is received buffer length important to minicom?
Re: RFM12Pi with RFM69CW
Hi guys,
I think we could be experiencing exactly what Martin mentioned in a post above...thanks a lot for your insight Martin. 57600 baud is out of spec for an ATmega328 @ 8Mhz. 38400 is the max baud should be used. It seems that most of the time we get away with working out of spec, however as you have shown this is not always the case.
I will re-compile the RFM12Pi RFM69CW code today and issue a flashable .hex file.
Paul: Will emonHub recognise 38400 baud?
Re: RFM12Pi with RFM69CW
Updated .hex files and sketch on GitHub to use 38400 baud https://github.com/openenergymonitor/RFM2Pi/tree/master/firmware/RFM69CW_RF_Demo_ATmega328
emonHub does not currently autodetect 38400 baud. It must be set in emonHub conf under init_settings of EmonHubJeeInterfacer
com_baud = 38400
Re: RFM12Pi with RFM69CW
OK, sweet. I'll give this a try when I get home and update.
Re: RFM12Pi with RFM69CW
Update: emonhub does now auto detect 38400 baud if your using the latest 'testing' branch. Expect merge into 'development' soon. https://github.com/emonhub/emonhub/issues/58
Re: RFM12Pi with RFM69CW
OK, cooking on gas!
Re: RFM12Pi with RFM69CW
Whoooohoo!!
Re: RFM12Pi with RFM69CW
Only problem now is those high node id's due to the acks. this is the same thing fluppie007 saw, I will look at PM's and see if I can determine what his fix was.
Re: RFM12Pi with RFM69CW
I think this comment may relate to this line but maybe Glyn can shed some light as I'm not entirely sure.
RFM69CW_RF12_Demo_ATmega328.ino#L641
Re: RFM12Pi with RFM69CW
Interesting. I haven't tried to change the sketch as I'm not quite at the stage of compiling that stuff over ssh on the Pi, but if I manually print those node IDs & 0x1F with a quick perl script then I get the expected values... if someone can explain what that is all about I'd be interested to understand (we're throwing away the first three bits, right? But why?)
Re: RFM12Pi with RFM69CW
If you see http://jeelabs.net/projects/jeelib/wiki/RF12demo#Eeprom-Layout
The first 3 bits don't apply to the node id, that bit I get ok, but I don't get why they are included if they don't apply and how they gets affected by using acks. Maybe someone can enlighten us both.
Re: RFM12Pi with RFM69CW
Ok, so the eeprom layout threw me, right concept, wrong reference. I have since worked out the rf12_hdr refers to the packet's header byte and those 3 bits do include the "request ack" bit. In a normal non-targeted broadcast those 3 bits would be 000 but when an ack is requested they are 001, adding 32 to the node id.
http://jeelabs.org/2011/06/10/rf12-broadcasts-and-acks/
That explains why acks "cause" the issue so I assume the use of the whole byte for the node id is just an an oversight due to the in frequent use of acks, I have therefore submitted a pull request for the fix. https://github.com/openenergymonitor/RFM2Pi/pull/1
Re: RFM12Pi with RFM69CW
Aha, right. That makes complete sense - nice one!
If Glyn has time to update the hex etc. on GitHub I'll confirm that this is resolved. Looking forward to seeing my RSSIs...
Re: RFM12Pi with RFM69CW
Have you tried emonhub yet? the nodes that are out of range will still be processed by emonhub and should be visible in the logs if loglevel set to debug. Just emonCMS will not accept the data from node id's over 32.
The non-ack'd nodes should also be making it through to emoncms with the rssi's.
Out of curiosity, How will the acks work with 2 receivers ?
Re: RFM12Pi with RFM69CW
Hex file has been updated! Great work guys, tracking down this bug
https://github.com/openenergymonitor/RFM2Pi/blob/master/firmware/RFM69CW_RF_Demo_ATmega328/RFM69CW_RF12_Demo_ATmega328.cpp.hex
Re: RFM12Pi with RFM69CW
OK, I can confirm that I've got a fully working parallel solution now - RFM69 and the old board both bringing in the whole set of sensors. Great work guys!
The gas people came this afternoon and replaced my old gas meter with a "smart" one. For my purposes this means I can stop strobing an IR LED to detect the reflective 0-digit and just use a reed switch - it's all go in my little emon world today! \o/
(On which note, the emonTH did an admirable job of monitoring the gas - it was about 95% accurate which isn't bad considering the iffy way I was detecting the consumption using optical reflection. The batteries lasted an eternity - many months - even though it is outside, protected by just a slim plastic casing)
Re: RFM12Pi with RFM69CW
Regarding the "double ack", it will just work as you hope, that is, the emonTH broadcasts the data and then waits for confirmation. It doesn't matter which base station ACK hits it first. What you do afterwards with each base station could be significant though (for instance, you could harmlessly submit temperature from both base stations to one emonCMS feed, but you wouldn't want to do that with a gas pulse counter!)
In the general case my reliability of the emonTH nodes themselves is excellent. It's not perfect, for instance my attic / external emonTH crashed out twice this week just after fresh batteries were fitted (but had run seamlessly for months prior to that) but the ack helps I think.
Re: RFM12Pi with RFM69CW
Great to hear! It's interesting that you use the emonTH for pulse counting, it was designed for humidity and temperature monitoring, however I also had in mind pulse counting by breaking out the irq port on the terminal block. Would you be able to write a paragraph about your setup pulse counting on emonTH with a photo of your setup I'll post it up on the oem blog. An update to the emonTH will have a dip switch on board which could be used to switch between pulse counting and temperature and humidity operation. We should smart another thread, so we don't go off topic!
Big thanks to Paul for help debugging rfm12pi and excellent ongoing emonhub dev
Re: RFM12Pi with RFM69CW
The "38400" baud auto selection is now merged into the main "development" branch and "57600" option has been removed.
This may cause a little hassle for some early adopters of rf69 if they do not install the new firmware. But since it's easy to define "com_baud = 57600" in the conf it's better removed sooner rather than later.
current version is now rc1.2


---
layout: minimal
title: "About me"
permalink: /about/index.html
description: "A Current Ph.D. Student of Bioinformatics@Yale"
---
About Me
"Ground control to Major Tom"
Skills
- Stackoverflow-Oriented Programming
- R
- Matlab
- Python
- Tensorflow
- Probablistic Graphical Models
- Deep Learning
- Being Hypnotized to Believe I Know All of The Above
Projects


[gecode-users] Problem for modeling
christine bouzant
christine.bouzant at gmail.com
Thu Apr 11 10:44:55 CEST 2013
Dear all,
I am wondering if you could you help me to make my model ?
I put in attachment a small document to explain what i would like to model.
Here are some explanations:
I would like to find 2 cars : Car1 and Car2.
The domain for Car1 is [0,1].
The car number 0 must have a conductor COND1 (people domain is [0,1,5]) and
an other person OTHER1 (people domain is [0,1]).
The car number 1 is not the same car model. It must have only the conductor
COND1 (for this car number, the people domain is [0, 5]).
The domain for Car2 is [2,3].
The car number 2 must have a conductor COND2 (people domain is [7, 8]) and
an other person OTHER2 (people domain is [6, 9]).
The car number 3 is not exactly the same car model. It must have the
conductor COND2 (for this car, the people domain is [7, 8, 12]) and the
person OTHER2 (domain is [6, 15]).
Moreother, i would like to have the constraint that each people chosen in
cars are distinct.
I have no idea how to model this since the car configuration (COND or/and
OTHER) and the people domain depends of the car number selection...
Many thanks for your help !
Cheers,
Christine
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.gecode.org/pipermail/users/attachments/20130411/51432528/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ModelPb.pdf
Type: application/pdf
Size: 16777 bytes
Desc: not available
URL: <http://www.gecode.org/pipermail/users/attachments/20130411/51432528/attachment.pdf>
More information about the users
mailing list


ASP.NET Core,Angular2 CRUD with Animation using Template Pack, WEB API and EF 1.0.1
Loading Student Details please Wait ! ...
| |
Add New Students Information
|
|
|
|
|
|
Insert/Edit Student Details :
|
|
|
|
|
|
|
| Edit |
Delete |
Student ID |
Student Name |
Email |
Phone |
Address |
|
|
|
{{StudentMasters.stdID}}
|
{{StudentMasters.stdName}}
|
{{StudentMasters.email}}
|
{{StudentMasters.phone}}
|
{{StudentMasters.address}}
|
|


On the Right Track!
Choo Choo. Chee Chee.
Current Train Schedule
Train Name
Destination
Frequency (Min)
Next Arrival
Minutes Away
Add Train
Train Name
Destination
First Train Time (HH:mm-military time)
Frequency (min)
Submit


playFinalize_ 223 music.c if (playFinalize_(MUSIC_ST_PLAY)) return; playFinalize_ 282 music.c if (playFinalize_(MUSIC_ST_REVERSE)) return; playFinalize_ 73 music_def.h static _BOOL playFinalize_(MUSIC_State prev);


Request a feature /
Report a bug
jPList - jQuery Data Grid Controls
Range Slider Demo
jPList Actions
No results found


This page illustrates the customization of the computing environment (here SageMath) and the handling of code cells containing (continuation) prompts and outputs. Upon activation, the prompts and output are stripped. Furthermore, code cells are split wherever there is an output or blank line. Code cells not containing a prompt are left untouched
See also the source file.This is the original cell:
sage: 1 + 1 2 sage: a = 3 sage: b = 4 sage: c = 5 sage: a + b + \ ....: c 7 sage: plot(sin(x))
This is the resulting live cell:
sage: 1 + 1 2 sage: a = 3 sage: b = 4 sage: c = 5 sage: a + b + \ ....: c 7 sage: plot(sin(x))
A cell without prompts:
a = 3 b = 4 c = 5 a + b + \ c
A cell with some maths, rendered in ascii art. Nice rendering can be achieved by setting up MathJax:
sage: %display ascii_art sage: sqrt(1+x^2)


Hi there! I am a Year 4 Computer Science undergraduate at the National University of Singapore. I have a deep passion for all things tech-related and I hope to apply my technical expertise to design and develop new software applications.
With my full-stack development experience, I am on the lookout for Software Development employment opportunities.
View Resume
A hackathon organised by Developer Student Club SoC which seeks to inspire students to learn and use technology for social causes
Achievement: Top 10 Finalist among 90+ participating teams.
I worked in a team of 5 to design and implement a desktop application called Clinic Calendar (CliniCal).
This application was created to target doctors. This application has two main functionalities – keeping patient records and scheduling patient appointments. Through this app, we hope to enhance the workflow of doctors and allow for easier access of digital medical records.
Online Capture-The-Flag competition organised by Defence Science and Technology Agency (DSTA)
Duke is a chat-bot application that helps you to manage your daily tasks through command line interface.
Features include adding of events and deadlines, sorting and searching through your list of tasks, deleting finished tasks and more
Let's make something special.
Get in touch via email


Wheels are the new standard of python distribution and are intended to replace eggs. Among other advantages, they offer faster installation and allow secure digital signing. Support is offered in pip >= 1.4
and setuptools >= 0.8
.
This site shows the top 360 most-downloaded packages on PyPI showing which have been uploaded as wheel archives.
If you have a pure python package that is not using 2to3 for Python 3 support, you've got it easy. Make sure Wheel is installed…
pip install wheel
…and when you'd normally run python setup.py sdist upload
, also run python setup.py bdist_wheel upload
. For a more in-depth explanation, see this guide on sharing your labor of love.
Note: If your project is python 2 and 3 compatible you can create a universal wheel distribution. Create a file called setup.cfg
with the following content and upload your package.
[wheel] universal = 1
Note: this is not the solution for packages that have C extensions or other cases where a platform/architecture independent wheel is impossible. This might mean you are using 2to3 or depend on some other package that is architecture specific. Frankly, I haven't had the time to research this yet. If you know how to do it, please create a ticket so I can replace this paragraph with something useful!
Fantastic, a problem found is a problem fixed. Please create a ticket!
Thanks to the Python 3 Wall of Superpowers for the concept and making their code open source, Donald Stufft for his help on IRC, James Turnbull for the intro copy, and George Hickman for pointing me in the right direction as usual.


This page will eventually be filled with some content, but for now please feel free to peruse my LinkedIn or Github via the links above to learn a bit about me, or contact me by email.
- Joe


Permission Denied
{% if data.command %}We're sorry, but you do not have permissions to access {{ data.command }}.  If that does not work, please contact your Administrator to gain access.
{% else %}We're sorry, but you do not have permissions to access this resource.  If that does not work, please contact your Administrator to gain access.
{% endif %}


Have You Ever Tried These?
3 Tips for Better Health Care
Good health care happens through a partnership between you and your health-care provider. Here are some tips on how you can work with your providers to get the best health care.
1.Take part in your health care.
>Tell each provider about what health care you have had and who has provided it.
>Let them know about any other treatments you have tried that were not prescribed by a doctor, such as herbal treatments, home remedies or acupuncture.
>Tell your providers about any cultural and spiritual needs you may have.
>To be sure you understand health-care instructions, repeat them to a family member or friend.
>Let any provider know if you are not sure about any part of your care. If you think something might not be safe, tell your providers right away.
2.Bring a family member or friend with you to be your partner in care.
>Pick someone who will speak up for you and help get things done for you.
>Show your partner in care where to find your medical records at home. Let them know what medicines you take and where they are located.
>Plan for your partner in care to stay with you during exams, treatments and in the hospital.
>It’s OK for your partner in care to ask questions and take notes.
3.Know about your medicines.
>Ask your provider what a new medicine is for and how it will help you.
>Have the brand names and any other names for the medicine written down for you.
>Find out how to take the medicine and for how long.
>Ask the pharmacist for written information about what to watch for when you take the medicine. Very Happy
Why don't you watch this video if you feel very happy:
Happy
Why don't you watch this video if you feel happy:
Normal
Why don't you watch this video if you feel normal:
Sad
Why don't you watch this video if you feel sad:
Gifs
Very Sad
Why don't you watch this vido if you feel very sad:
Sad suggestions


Top: Networking: ipstream
#include <pinet.h> class ipstream: instm, outstm { ipstream(); ipstream(ipaddress ip, int port); ipstream(string host, int port); ~ipstream(); void open(); void close(); void cancel(); bool waitfor(int milliseconds); ipaddress get/set_ip(); string get/set_host(); int get/set_port(); ipaddress get_myip(); int get_myport(); }
The ipstream class implements full-duplex streaming communication between IP hosts. Ipstream incorporates iobase, instm and outstm interfaces and adds two more properties: peer IP address and peer port number. This means, you can work with ipstream the same way you work with infile and outfile, except that you specify the target IP address or the symbolic hostname along with the port number instead of the filename when constructing an object. Besides, the rules of object-oriented inheritance allow you to manipulate ipstream objects in those parts of your code which are only 'familiar' with the basic instm and outstm interfaces.
In order to open a connection and exchange data you need to set target (peer host) address and the port number. The peer address can be either a symbolic DNS name or a numeric IPv4 address. Regardless of which one of these two properties you set first, the ipstream object can perform DNS resolving as necessary and return both properties on your request.
Ipstream adds the following status codes: IO_RESOLVING, IO_RESOLVED, IO_CONNECTING, IO_CONNECTED (see also iobase for the status codes common to all streams).
On UNIX the library startup code blocks SIGPIPE, so that all error conditions on sockets always raise exceptions of type (estream*).
ipstream::ipstream() is the default constructor.
ipstream::ipstream(ipaddress ip, int port) constructs an ipstream object and assigns the peer ip/port values.
ipstream::ipstream(string host, int port) constructs an ipstream object and assigns the peer host name and port values. Before actually opening the stream ipstream resolves the host name to a numeric IP address. Host can be either a symbolic DNS name or even a numeric address in a string form (e.g. "somehost.com" or "<IP_ADDRESS>").
ipstream::~ipstream() cancels the connection immediately and destroys the object. To shut down the connection 'gracefully' you should call close() before destroying the object or before the program goes beyond the scope of a static/local ipstream object.
void ipstream::open() opens a connection with the peer. host or ip along with port properties must be set before opening the stream.
void ipstream::close() closes the stream 'gracefully', and in some situations may be time-consuming. Although all stream objects in PTypes are being closed by the destructors automatically, it is recommended to explicitly call close() for socket objects.
void ipstream::cancel() closes the stream immediately. If the connection was successful, calling cancel() may leave the peer host in a waiting state for a long time.
bool ipstream::waitfor(int milliseconds) waits on the socket until either data is available for reading (returns true) or the time specified in the parameter has elapsed, in which case it returns false.
ipaddress ipstream::get/set_ip() sets/retrieves the peer address in a numerical form. If the object was constructed using a symbolic name, get_ip() may perform a DNS lookup (only once).
string ipstream::get/set_host() sets/retrieves the peer address in a symbolic form. If the object was constructed using a numeric IP address, get_host() may perform a reverse DNS lookup.
int ipstream::get/set_port() sets/retrieves the peer port number.
ipaddress ipstream::get_myip() returns the local address associated with the socket.
int ipstream::get_myport() returns the local port number associated with the socket.
See also: iobase, instm, outstm, ipstmserver, Utilities, Examples


| Upper |
cm
|
cm
|
|---|---|---|
| Lower |
cm
|
cm
|
| Offset |
cm
|
cm
|
| Distance |
cm
|
|
| Normalized Rate |
/cm2/min
|
|
|
# MC Events: |
#
|


On this page you can observe and interact with all of the currently active users, accommodations, and flights.
| ID | User Type | First Name | Last Name | Username | Date of Birth | |||
|---|---|---|---|---|---|---|---|---|
| {{ user.id }} | Admin | Regular | {{ user.first_name }} | {{ user.last_name }} | {{ user.username }} | {{ user.date_of_birth }} | {{ user.email }} |
| ID | Accommodation Type | City | Address | Name | Price | Stars | Breakfast | Internet | Available | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ accommodation.id }} | {{ accommodation.type }} | {{ accommodation["cities.name"] }} | {{ accommodation.street_address }} | {{ accommodation.name }} | ${{ accommodation.price_per_night }} | Yes | No | Yes | No | {{ accommodation.available }} |
| ID | Airline | Type | Class | Origin City | Destination City | Origin Airport | Destination Airport | Ticket Price | Approx. Flight Duration | Flight Date/Time | Seats Available | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ flight.id }} | {{ flight.name }} | {{ flight.type }} | {{ flight.class }} | {{ flight["origin.name"] }} | {{ flight["destination.name"] }} | {{ flight["source_airport.name"] }} | {{ flight["dest_airport.name"] }} | ${{ flight.ticket_price.toFixed(2) }} | {{ (flight.aprox_duration / 60).toFixed(1) }} hours | {{ flight.flight_datetime }} | {{ flight.seats_available }} |


neighbors] // [C, N, K] or [C, B, N, K]
else:
neighbor_features = features[..., neighbors] // [C, N, K] or [C, B, N, K]
if len(features.shape) == 3: // Has batch dimension
neighbor_features = torch.transpose(neighbor_features, 0, 1)
return neighbor_features
Returns:
neighbor_features: FloatTensor of [batch, channel, points, neighbors]
if features.dim() == 3: // Has batch dimension
B, _N, _K = neighbors.size()
features = torch.transpose(features, 0, 1) // [C, B, N]


Tags: music and stuff
Rothko - A Continual Search For Origins
The beauty of this album is that everything is so restrained, yet through this restraint everything gets brought to the foreground. A magnificent post-rock album.
Release date: 2002-05-27
[9.2/10]
黃雨晴 - 化為人形
Is this a candidate for AOTY 2022? Maybe… Lo-fi pyschedelic bedroom pop.
Release date: 2022-01-05
[8.7/10]
Chris Herbert - Mezzotint
Ambient album from Kranky from 2006. Listening to this album I’d imagine the concept of time has ceased to exist, or maybe that’s what really good drone music does?
Release date: 2006-09-18
Cool thing about this album is that Chris Herbert is not a professinal musician: calls himself a non-musician, and all this music is composed of samples and bits retrieved while he’s at his day job. Yet this album feels not any less than the works of ambient greats in terms of completeness.
[8.7/10]
Sky H1 - Azure
IDM. This one would have been a strong candidate for AOTY 2021 if I caught it when it just came out…
Release date: 2021-11-12
[8.6/10]
Koji Nakamura, foodman, Takashi Numazawa - Humanity
Footwork fusion? Dope stuff.
Release date: 2022-01-12
[8.6/10]
Ripatti - Fun Is Not A Straight Line
Footwork. I only knew this is actually Vladislav Delay after I checked out the Bandcamp page… Always thought he’s an ambient dub techno guy but no idea he’s this good at this kind of music. A bunch of rap samples cut up and reassembled, there really is no weak track on this album.
Release date: 2021-06-25
[8.4/10]
Helm - Axis
Industrial electronic music. Don’t remember much about his last album Chemical Flowers
, but this one definitely puts him on the map for me. The last track Tower
sounds like a track out of the OST of some John Carpenter movie. All in all this is a very melodic album.
Release date: 2021-11-12
[8.3/10]
Hanno Leichtmann - Loop Music
FFO Mort Garson. Electronic music loops.
Release date: 2020-12-07
[8.3/10]
Joyul - Earwitness
Ambient / dream-pop. There are tracks that are ethereal and also ones that are eerie. A really good debut album.
Release date: 2021-11-05
[8.3/10]
Boris - W
I didn’t really pay much attention to their last couple of releases, but this one I do enjoy quite a bit. It’s got grainy lo-fi pop tracks that lead straight into raging doom metal tracks, yet it does not sound out of place. I also like Wata’s cooing vocals on this album.
Release date: 2022-01-21
[8.3/10]
Cold Dew - 欲欲
I love their live shows, and their album slays as well. Really awesome psych rock.
Release date: 2021-10-20
[8.3/10]
Takuma Watanabe - Last Afternoon
Really good ambient music.
Release date: 2021-05-07
[8.2/10]
Container - Creamer
Bombastic techno. IMO it’d be nicer if it had more tracks.
Release date: 2021-08-27
[8.0/10]
Midori Takada - Through The Looking Glass
Exotic ambient / world. It is alright.
Release date: 1987-03-02
[7.8/10]
HTRK - Rhinestones
Minimalistic gothic dream-pop / sadcore. This is Boomkat’s AOTY 2021. Sad music for sad people.
Release date: 2021-09-17
[7.8/10]
Wild Adoration - EP2
Gothic, minimalistic electro-pop. Looking forward to a longer album!
Release date: 2019-06-17
[7.8/10]
Four Tet - Parallel
The first track is a 26 minutes long ambient track, most of which is pretty good but the last bit with vocal samples kind of makes it a bit goofy. The others are more club friendly house tracks, among them my fav is probably Parallel 7
.
Release date: 2020-12-25
[7.7/10]
Love Lost But Not Forgotten - Love Lost But Not Forgotten
Screamo. Not a huge fan of the high pitched shrieks, but there really aren’t a lot of band that still get this kind of raw energy in their records.
Release date: 2000-06-01
[7.5/10]
Madteo - Head Gone Wrong By Noise
I don’t really know what to make of it… this sounds like the club / jungle music you’d hear on a late night radio station. IIRC his last album is more impressive than this.
Release date: 2021-09-24
[7.4/10]
Burial - Antidawn EP
I was really looking forward to this one, but it turns out this is much less memorable than I was expecting.
Release date: 2022-01-06
[7.4/10]
Charlie Hunter, Lucy Woodward - I’m A Stranger Here
This one is not as catchy as Music! Music! Music
.
Release date: 2021-06-25
[7.4/10]
Alex Twomey - Days Off
Easy listening ambient with post-rock vibes. Feel like the mood on this one is kind of akin to the really over the top, really tiring post-rock big names. Not really that into it…
Release date: 2021-11-05
[6.6/10]
珂拉琪 - MEmento·MORI
The production is pretty good but it sounds like your average Japanese pop-heavy punk bands with occasional growls… This is actually the first time I’ve heard their music, not really sold though.
Release date: 2021-12-23
[6.6/10]
Various Artists - 滾石40撞樂隊 40團拼經典
There are 30 songs in this album but only 5 of them are good… I like Sunset Rollercoaster’s cover a lot though, the bassist played his mind out on that track. (Update: there are 40. I can’t be bothered.)
Release date: 2022-01-01
[5.5/10]
Comments


{% extends 'base_generic.html' %} {% block content %}
Modifying settings will affect to whole alarm system including all alarm emails
All the devices your modification affects
Set the value, which will trigger warnings. The value must be smaller than alarm treshold, otherwise no warnings are shown
Set the value which will trigger alarms, alarm emails also are send based on this value
Set how many times light measurement can exceed alarm value without alarm being triggered


Arrays is a variable that can store more then one variable. It will create an index of the variables starting at zero with each of the new variables. It can index nil as a variable. You can assign each index with a number or it can assign them.
Hash is like array however where arrays store a value using a integers as an index a hashs store a value at an index of your making. So it is more like storing a pair of data.
You can think of a hash as an Array that you can modify the index.


Hi! I am Sohaj
I design products at Meta
I love designing user centered products and services while looking at the
feasibility of the technology and viability of the business.
Personalize smart phone by changing the system fonts using Flifont app on Samsung devices
Redesigned Oracle solutions that manage auctions, award contracts and manage ever-changing prices
Built voice enabled platform to empower seniors and work with startups to have real impact in the society
Prototyped connected device with arduino, camera and sensors that turns the door knob when a person with access is on the door
Book tickets for circular journeys via easy to use kiosk, smart phone and website
Redesigned outdated kiosk interface by doing empathy research and iterating on solutions by user testing
Are you transitioning from visual design, psychology or computer science or any other field into IxD, UX or HCI? Then this post is for you...
What matters to you? The very first step is to figure out what matters to you the most while looking for a job. What is your story?...
It was a part of UX designers’ job to minimalize the interface and information and assist the user to perform the needed task in the minimum time...


{
"Id":"b839be1e-1e94-4433-b8fb-64cd31e4d211",
"Name":"Bruce Wayne",
"TeamId":"0f2b1f73-6fcc-4750-9540-de48cbd6737b",
"X":150,
"Y":250,
"Z":50
}
$.ajax({
type: "GET",
url: "http://host:port/api/users/",
success: null,
dataType: "json"
});
This will return an array of all registered users.
$.ajax({
type: "GET",
url: "http://host:port/api/users/b839be1e-1e94-4433-b8fb-64cd31e4d211",
success: null,
dataType: "json"
});
By appending the url with a known user ID, the server will return information associated with that user.
$.ajax({
type: "POST",
url: "http://host:port/api/users/",
data: {"Name":"Dick Grayson","TeamId":"0f2b1f73-6fcc-4750-9540-de48cbd6737b","X":100,"Y":100,"Z":50},
success: null,
dataType: "json"
});
Post should be used to create a new user.
The server assigns the user an Id upon creation, so you do not need to specify one in the request.
A TeamId must be specified if the user belongs to a team.
{
"Id":"7e67659f-07b6-460a-8bf1-9051283df2c4",
"Name":"Dick Grayson",
"TeamId":"0f2b1f73-6fcc-4750-9540-de48cbd6737b",
"X":100,
"Y":100,
"Z":50
}
The user's new Id is included in this response.
$.ajax({
type: "PUT",
url: "http://host:port/api/users/7e67659f-07b6-460a-8bf1-9051283df2c4",
data: {"Name":"Dick Grayson","TeamId":"0f2b1f73-6fcc-4750-9540-de48cbd6737b","X":200,"Y":100,"Z":50},
success: null,
dataType: "json"
});
By appending the user's Id to the URL and making a PUT request, we can override the properties of an existing user.
Partial updating is not yet supported - you will need to pass the entire user in order to update a field (Id optional).
$.ajax({
type: "DELETE",
url: "http://host:port/api/users/7e67659f-07b6-460a-8bf1-9051283df2c4"
});
By appending the user's Id to the URL and making a DELETE request, we can remove the user from the system.
Other supported endpoints include /api/maps and /api/teams.
These are currently read-only endpoints, though remote writing can be enabled via a setting in the Core/Minimap.cs class.
With the exception of being read-only, these endpoints work in the same way as /api/users.
{
"Id":"10663a13-6a03-4f55-885d-bfc05e38d9a0",
"Name":"Gordon Field House",
"Width":800.0,
"Height":600.0,
"Tech":"BLE",
"Barriers":[
],
"Tables":[{
"Id":"481bd794-e066-485b-b6b2-df9f303dd57b",
"TablesWide":4,
"TablesTall":2,
"X":100.0,
"Y":100.0,
"Z":0.0,
"Width":300.0,
"Height":50.0
},{
"Id":"3c419208-d0cd-4eb8-a811-5c619815a7d8",
"TablesWide":4,
"TablesTall":2,
"X":100.0,
"Y":250.0,
"Z":0.0,
"Width":300.0,
"Height":50.0
},{
"Id":"d98a877a-533b-4ad4-b733-c67387a44f6e",
"TablesWide":4,
"TablesTall":2,
"X":100.0,
"Y":400.0,
"Z":0.0,
"Width":300.0,
"Height":50.0
},{
"Id":"94e2b225-c7df-48eb-8b27-6264ca282843",
"TablesWide":2,
"TablesTall":4,
"X":500.0,
"Y":100.0,
"Z":0.0,
"Width":100.0,
"Height":350.0
}],
"Beacons":[{
"Id":"6653b10b-da92-45cc-8998-b2c4b256c1b3",
"DeviceId":null,
"DeviceLabel":"nw",
"X":125.0,
"Y":125.0,
"Z":0.0,
"Width":0.0,
"Height":0.0
},{
"Id":"dda5f473-bcde-4a68-973e-5b91124127d8",
"DeviceId":null,
"DeviceLabel":"n",
"X":375.0,
"Y":125.0,
"Z":0.0,
"Width":0.0,
"Height":0.0
},{
"Id":"2e60bebe-b7d8-4010-ac15-19f16c234fed",
"DeviceId":null,
"DeviceLabel":"ne",
"X":550.0,
"Y":125.0,
"Z":0.0,
"Width":0.0,
"Height":0.0
},{
"Id":"2b7c8385-2c07-41d8-96c7-18656e852d09",
"DeviceId":null,
"DeviceLabel":"w",
"X":125.0,
"Y":275.0,
"Z":0.0,
"Width":0.0,
"Height":0.0
},{
"Id":"f71184d1-33c2-4f96-b34d-ea9d0e2b4f73",
"DeviceId":null,
"DeviceLabel":"c",
"X":375.0,
"Y":275.0,
"Z":0.0,
"Width":0.0,
"Height":0.0
},{
"Id":"5dcb250d-8638-451c-82e6-ef5b6b8561ba",
"DeviceId":null,
"DeviceLabel":"3",
"X":550.0,
"Y":275.0,
"Z":0.0,
"Width":0.0,
"Height":0.0
},{
"Id":"ec1e00bf-cda8-440a-b2c2-13f98ef2969f",
"DeviceId":null,
"DeviceLabel":"sw",
"X":125.0,
"Y":425.0,
"Z":0.0,
"Width":0.0,
"Height":0.0
},{
"Id":"e5f7057f-451f-49f3-9b1f-ad1537ada337",
"DeviceId":null,
"DeviceLabel":"s",
"X":375.0,
"Y":425.0,
"Z":0.0,
"Width":0.0,
"Height":0.0
},{
"Id":"fd05ea0e-9fac-4fec-a1d6-f606952e2b75",
"DeviceId":null,
"DeviceLabel":"se",
"X":550.0,
"Y":425.0,
"Z":0.0,
"Width":0.0,
"Height":0.0
}]
}
Normally, the Beacons:DeviceId field would be populated with the actual device UUID.
{
"Id":"0667d606-5c4e-4bc8-b178-b4ec3f5acf51",
"Name":"Scorpion",
"MapId":"10663a13-6a03-4f55-885d-bfc05e38d9a0",
"PrimaryColor":{
"A":255,
"R":244,
"G":164,
"B":96
},
"SecondaryColor":{
"A":255,
"R":128,
"G":0,
"B":0
},
"Points":[{
"Id":"0c1fbf36-7081-4066-9621-99cbbda2db29",
"Name":"Table A",
"X":250.0,
"Y":125.0,
"Z":0.0,
"Width":0.0,
"Height":0.0
},{
"Id":"7545e6d6-ade1-4275-9c95-68c97050267b",
"Name":"Table B",
"X":250.0,
"Y":275.0,
"Z":0.0,
"Width":0.0,
"Height":0.0
}]
}
Colors are represented in ARGB values.
To get all the teams belonging to a particular map, you can make a GET request to /api/maps/{MapId}/teams.
To get all the users belonging to a particular team, you can make a GET request to /api/teams/{TeamId}/users.


Video of Moesha Boduong chilling with Wizkid in Dubai pops up
by RASHADMost popular Ghanaian Slay Queen, Moesha Boduong has been spotted in a new video chilling with Nigerian Superstar, Wizkid.
For a while now, the big booby Ghanaian Slay Queen has upgraded her standard by going international. She has been spotted in high-class clubs in and around the world.
SEE ALSO: Shatta Wale supports Stonebwoy – Sends a strong warning to arrogant Kelvin Boy (Screenshot)
From what Ghpage.com has gathered, the venue where Moesha Boduong was spotted chilling with Wizkid is in Dubai.
Wizkid is in Dubai for One Africa Music Fest 2019 and Moesha Boduong also happens to be there to have some good time and of course, meet with some high profiled clients …wink
Well, it’s her time and she has to make all the cash she can find. Watch the video below
One African Music Fest is a continental music concert that brings all the big names in the music world in Africa to perform under one platform. It’s a way of uniting Africa through music


SMART Padala
Pick-Up Anywhere
SMART Padala
International
Purchase Load
Pay Bills
SMART Money
Find a Padala Center
Menu
Back
Fee Calculator for Consumers
Quickly compute the service fee for sending or receiving money from your loved ones!
Remittance amount:
Service fee:
PHP
0.00
*Based on suggested retail price (SRP)
View Fees


You are amazing
Jade is a terse and simple templating language with a strong focus on performance and powerful features.


Mobile applications based on GPS such as Google Maps have proven to be very useful in guiding us to our destination. However, it is still easy to get lost indoors, where GPS satellite signals are not accurately trackable for navigation applications. Thus introduced the concept of using augmented reality with the aim of creating a navigation system that can help people orient themselves and navigate within large buildings.
The app also tackles social distancing measures by displaying ar objects of red, yellow and green circles, which symbolize distances: 1m, 1.50m and 2m. Also it helps in finding the shortest as well as the less crowded path
Augmented Reality based indoor navigation system.
Detect the position of the user inside the buildings by scanning the marker and track in real time .
Calculate the best shortest path as well as less crowded path between the user and destination. Drive the user till the destination by ensuring social distance using AR objects


In this project, you'll use generative adversarial networks to generate new images of faces.
You'll be using two datasets in this project:
Since the celebA dataset is complex and you're doing GANs in a project for the first time, we want you to test your neural network on MNIST before CelebA. Running the GANs on MNIST will allow you to see how well your model trains sooner.
If you're using FloydHub, set data_dir
to "/input" and use the FloydHub data ID "R5KrjnANiKVhLWAkpXhNBe".
data_dir = './data'
# FloydHub - Use with data ID "R5KrjnANiKVhLWAkpXhNBe"
#data_dir = '/input'
"""
DON'T MODIFY ANYTHING IN THIS CELL
"""
import helper
helper.download_extract('mnist', data_dir)
helper.download_extract('celeba', data_dir)
show_n_images = 25
"""
DON'T MODIFY ANYTHING IN THIS CELL
"""
%matplotlib inline
import os
from glob import glob
from matplotlib import pyplot
mnist_images = helper.get_batch(glob(os.path.join(data_dir, 'mnist/*.jpg'))[:show_n_images], 28, 28, 'L')
pyplot.imshow(helper.images_square_grid(mnist_images, 'L'), cmap='gray')
The CelebFaces Attributes Dataset (CelebA) dataset contains over 200,000 celebrity images with annotations. Since you're going to be generating faces, you won't need the annotations. You can view the first number of examples by changing show_n_images
.
show_n_images = 25
"""
DON'T MODIFY ANYTHING IN THIS CELL
"""
mnist_images = helper.get_batch(glob(os.path.join(data_dir, 'img_align_celeba/*.jpg'))[:show_n_images], 28, 28, 'RGB')
pyplot.imshow(helper.images_square_grid(mnist_images, 'RGB'))
Since the project's main focus is on building the GANs, we'll preprocess the data for you. The values of the MNIST and CelebA dataset will be in the range of -0.5 to 0.5 of 28x28 dimensional images. The CelebA images will be cropped to remove parts of the image that don't include a face, then resized down to 28x28.

You'll build the components necessary to build a GANs by implementing the following functions below:
model_inputs
discriminator
generator
model_loss
model_opt
train
This will check to make sure you have the correct version of TensorFlow and access to a GPU
"""
DON'T MODIFY ANYTHING IN THIS CELL
"""
from distutils.version import LooseVersion
import warnings
import tensorflow as tf
# Check TensorFlow Version
assert LooseVersion(tf.__version__) >= LooseVersion('1.0'), 'Please use TensorFlow version 1.0 or newer. You are using {}'.format(tf.__version__)
print('TensorFlow Version: {}'.format(tf.__version__))
# Check for a GPU
if not tf.test.gpu_device_name():
warnings.warn('No GPU found. Please use a GPU to train your neural network.')
else:
print('Default GPU Device: {}'.format(tf.test.gpu_device_name()))
Implement the model_inputs
function to create TF Placeholders for the Neural Network. It should create the following placeholders:
image_width
, image_height
, and image_channels
.z_dim
.Return the placeholders in the following the tuple (tensor of real input images, tensor of z data)
import problem_unittests as tests
def model_inputs(image_width, image_height, image_channels, z_dim):
"""
Create the model inputs
:param image_width: The input image width
:param image_height: The input image height
:param image_channels: The number of image channels
:param z_dim: The dimension of Z
:return: Tuple of (tensor of real input images, tensor of z data, learning rate)
"""
# TODO: Implement Function
input_real = tf.placeholder(tf.float32, [None, image_width, image_height, image_channels], name='input_real')
input_z = tf.placeholder(tf.float32, [None, z_dim], name='input_z')
learning_rate = tf.placeholder(tf.float32)
return input_real, input_z, learning_rate
"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
tests.test_model_inputs(model_inputs)
Implement discriminator
to create a discriminator neural network that discriminates on images
. This function should be able to reuse the variables in the neural network. Use tf.variable_scope
with a scope name of "discriminator" to allow the variables to be reused. The function should return a tuple of (tensor output of the discriminator, tensor logits of the discriminator).
# Various utility methods and variables for use in making generator and discriminator
generator_name = 'generator'
discriminator_name = 'discriminator'
def batch_normalize_lrelu(x, alpha, training=True):
x = tf.layers.batch_normalization(x, training=training)
x = tf.maximum(alpha * x, x)
return x
def generator_input_layer(z, filters, kernel_size, alpha=0.2, training=True):
unit_count = kernel_size * kernel_size * filters
x = tf.layers.dense(z, unit_count)
x = tf.reshape(x, (-1, kernel_size, kernel_size, filters))
x = batch_normalize_lrelu(x, alpha, training)
return x
def generator_conv2d_transpose(x, filters, kernel_size, alpha=0.2, training=True):
x = tf.layers.conv2d_transpose(x, filters, kernel_size, strides=2, padding='same')
x = batch_normalize_lrelu(x, alpha, training)
return x
def discriminator_conv2d(x, filters, kernel_size, alpha=0.2, training=True):
x = tf.layers.conv2d(x, filters, kernel_size, strides=2, padding='same')
x = batch_normalize_lrelu(x, alpha, training)
return x
I doubled the depth at each convolution layer compared to previous MNIST of SVHN examples in hope of better capturing the information in faces.
def discriminator(images, reuse=False, alpha=0.1):
"""
Create the discriminator network
:param images: Tensor of input image(s)
:param reuse: Boolean if the weights should be reused
:return: Tuple of (tensor output of the discriminator, tensor logits of the discriminator)
"""
# TODO: Implement Function
with tf.variable_scope(discriminator_name, reuse=reuse):
# Input layer is 28x28x3
x = discriminator_conv2d(images, 128, 5, alpha=alpha)
# Shape now 14x14x64
x = discriminator_conv2d(x, 256, 5, alpha=alpha)
# Shape now 7x7x128
x = discriminator_conv2d(x, 512, 5, alpha=alpha)
# Shape now 4x4x256
flat = tf.reshape(x, (-1, 4*4*512))
logits = tf.layers.dense(flat, 1)
out = tf.sigmoid(logits)
return out, logits
"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
tests.test_discriminator(discriminator, tf)
Implement generator
to generate an image using z
. This function should be able to reuse the variables in the neural network. Use tf.variable_scope
with a scope name of "generator" to allow the variables to be reused. The function should return the generated 28 x 28 x out_channel_dim
images.
def generator(z, out_channel_dim, is_train=True, alpha=0.1):
"""
Create the generator network
:param z: Input z
:param out_channel_dim: The number of channels in the output image
:param is_train: Boolean if generator is being used for training
:return: The tensor output of the generator
"""
# TODO: Implement Function
with tf.variable_scope(generator_name, reuse=not is_train):
# First fully connected layer
x = generator_input_layer(z, 512, 4, alpha=alpha, training=is_train)
# Shape is now 4x4x512
# Convolutional layers
x = generator_conv2d_transpose(x, 512, 5, alpha=alpha, training=is_train)
# Shape is now 8x8x256
x = generator_conv2d_transpose(x, 256, 5, alpha=alpha, training=is_train)
# Shape is now 16x16x128
# Output layer, 32x32x3
x = tf.layers.conv2d_transpose(x, out_channel_dim, 5, strides=2, padding='same')
# Resize to 28x28
logits = tf.image.resize_nearest_neighbor(x, [28, 28])
out = tf.tanh(logits)
return out
"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
tests.test_generator(generator, tf)
Implement model_loss
to build the GANs for training and calculate the loss. The function should return a tuple of (discriminator loss, generator loss). Use the following functions you implemented:
discriminator(images, reuse=False)
generator(z, out_channel_dim, is_train=True)
def model_loss(input_real, input_z, out_channel_dim, alpha=0.1):
"""
Get the loss for the discriminator and generator
:param input_real: Images from the real dataset
:param input_z: Z input
:param out_channel_dim: The number of channels in the output image
:return: A tuple of (discriminator loss, generator loss)
"""
# TODO: Implement Function
g_model = generator(input_z, out_channel_dim, alpha=alpha)
d_model_real, d_logits_real = discriminator(input_real, alpha=alpha)
d_model_fake, d_logits_fake = discriminator(g_model, reuse=True, alpha=alpha)
d_loss_real = tf.reduce_mean(
tf.nn.sigmoid_cross_entropy_with_logits(logits=d_logits_real, labels=tf.ones_like(d_model_real)))
d_loss_fake = tf.reduce_mean(
tf.nn.sigmoid_cross_entropy_with_logits(logits=d_logits_fake, labels=tf.zeros_like(d_model_fake)))
g_loss = tf.reduce_mean(
tf.nn.sigmoid_cross_entropy_with_logits(logits=d_logits_fake, labels=tf.ones_like(d_model_fake)))
d_loss = d_loss_real + d_loss_fake
return d_loss, g_loss
"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
tests.test_model_loss(model_loss)
Implement model_opt
to create the optimization operations for the GANs. Use tf.trainable_variables
to get all the trainable variables. Filter the variables with names that are in the discriminator and generator scope names. The function should return a tuple of (discriminator training operation, generator training operation).
def model_opt(d_loss, g_loss, learning_rate, beta1):
"""
Get optimization operations
:param d_loss: Discriminator loss Tensor
:param g_loss: Generator loss Tensor
:param learning_rate: Learning Rate Placeholder
:param beta1: The exponential decay rate for the 1st moment in the optimizer
:return: A tuple of (discriminator training operation, generator training operation)
"""
# TODO: Implement Function
t_vars = tf.trainable_variables()
d_vars = [var for var in t_vars if var.name.startswith('discriminator')]
g_vars = [var for var in t_vars if var.name.startswith('generator')]
# Optimize
with tf.control_dependencies(tf.get_collection(tf.GraphKeys.UPDATE_OPS)):
d_train_opt = tf.train.AdamOptimizer(learning_rate, beta1=beta1).minimize(d_loss, var_list=d_vars)
g_train_opt = tf.train.AdamOptimizer(learning_rate, beta1=beta1).minimize(g_loss, var_list=g_vars)
return d_train_opt, g_train_opt
"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
tests.test_model_opt(model_opt, tf)
"""
DON'T MODIFY ANYTHING IN THIS CELL
"""
import numpy as np
def show_generator_output(sess, n_images, input_z, out_channel_dim, image_mode):
"""
Show example output for the generator
:param sess: TensorFlow session
:param n_images: Number of Images to display
:param input_z: Input Z Tensor
:param out_channel_dim: The number of channels in the output image
:param image_mode: The mode to use for images ("RGB" or "L")
"""
cmap = None if image_mode == 'RGB' else 'gray'
z_dim = input_z.get_shape().as_list()[-1]
example_z = np.random.uniform(-1, 1, size=[n_images, z_dim])
samples = sess.run(
generator(input_z, out_channel_dim, False),
feed_dict={input_z: example_z})
images_grid = helper.images_square_grid(samples, image_mode)
pyplot.imshow(images_grid, cmap=cmap)
pyplot.show()
return samples
Implement train
to build and train the GANs. Use the following functions you implemented:
model_inputs(image_width, image_height, image_channels, z_dim)
model_loss(input_real, input_z, out_channel_dim)
model_opt(d_loss, g_loss, learning_rate, beta1)
Use the show_generator_output
to show generator
output while you train. Running show_generator_output
for every batch will drastically increase training time and increase the size of the notebook. It's recommended to print the generator
output every 100 batches.
class GAN:
def __init__(self, width, height, channels, z_size, learning_rate, alpha=0.2, beta1=0.5):
# tf.reset_default_graph()
self.input_real, self.input_z, _ = model_inputs(width, height, channels, z_size)
self.d_loss, self.g_loss = model_loss(self.input_real, self.input_z, channels, alpha=0.2)
self.d_opt, self.g_opt = model_opt(self.d_loss, self.g_loss, learning_rate, beta1)
Generator losses stop decreasing after a while, even with a very low learning rate (0.00001 in my case). In addition to showing images every 100 iterations, I added a parameter step_threshold which will stop the whole process after that step count if the generator loss dip below the gen_loss_threshold parameter.
I also doubled the batch_images data to stretch the value range from -0.5 through 0.5 to -1 through 1 to better match the range of tanh output in the generator. There were discussions in the forum about how this would improve image generation quality which seems intuitive.
import pickle as pkl
def train(epoch_count, batch_size, z_dim, learning_rate, beta1, get_batches, data_shape, data_image_mode, \
step_threshold=0, gen_loss_threshold=0.5):
"""
Train the GAN
:param epoch_count: Number of epochs
:param batch_size: Batch Size
:param z_dim: Z dimension
:param learning_rate: Learning Rate
:param beta1: The exponential decay rate for the 1st moment in the optimizer
:param get_batches: Function to get batches
:param data_shape: Shape of the data
:param data_image_mode: The image mode to use for images ("RGB" or "L")
:param stop_threshold: If non-zero, stop when generator loss is less than discriminator loss
"""
# TODO: Build Model
width = data_shape[1]
height = data_shape[2]
channels = data_shape[3]
net = GAN(width, height, channels, z_dim, learning_rate, beta1=beta1)
show_every = 300
print_every = 60
images_to_show = 12
steps = 0
samples = []
losses = []
saver = tf.train.Saver()
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
for epoch_i in range(epoch_count):
for batch_images in get_batches(batch_size):
# TODO: Train Model
steps += 1
# Set the range of pixel values to between -1 and 1 to better match with tanh output
batch_images = batch_images * 2
# Sample random noise for G
batch_z = np.random.uniform(-1, 1, size=(batch_size, z_dim))
# Run optimizers
_ = sess.run(net.d_opt, feed_dict={net.input_real: batch_images, net.input_z: batch_z})
_ = sess.run(net.g_opt, feed_dict={net.input_z: batch_z, net.input_real: batch_images})
# At each step get the losses
train_loss_d = net.d_loss.eval({net.input_z: batch_z, net.input_real: batch_images})
train_loss_g = net.g_loss.eval({net.input_z: batch_z})
if steps % print_every == 0:
print("Step {} in Epoch {}/{}...".format(steps, epoch_i + 1, epochs),
"Discriminator Loss: {:.4f}...".format(train_loss_d),
"Generator Loss: {:.4f}".format(train_loss_g))
# Save losses to view after training
losses.append((train_loss_d, train_loss_g))
if steps % show_every == 0:
gen_samples = show_generator_output(sess, images_to_show, net.input_z, channels, \
data_image_mode)
samples.append(gen_samples)
if step_threshold > 0 and steps > step_threshold and train_loss_g < gen_loss_threshold:
print("Final Step {} in Epoch {}/{}...".format(steps, epoch_i + 1, epochs),
"Discriminator Loss: {:.4f}...".format(train_loss_d),
"Generator Loss: {:.4f}".format(train_loss_g))
# Save losses to view after training
losses.append((train_loss_d, train_loss_g))
gen_samples = show_generator_output(sess, images_to_show, net.input_z, channels, \
data_image_mode)
samples.append(gen_samples)
break
saver.save(sess, './checkpoints/generator.ckpt')
with open('samples.pkl', 'wb') as f:
pkl.dump(samples, f)
return samples, losses
Noticed that losses were bouncing around a lot at initial learning rate of 0.0002, varying by as much as 10 to 20 even in later training, so experimented lowering the learning rate, first to 0.00005, and then to 0.00001, and then back up to 0.00002.
Test your GANs architecture on MNIST. After 2 epochs, the GANs should be able to generate images that look like handwritten digits. Make sure the loss of the generator is lower than the loss of the discriminator or close to 0.
batch_size = 32
z_dim = 100
learning_rate = 0.0002
beta1 = 0.5
"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
epochs = 2
mnist_dataset = helper.Dataset('mnist', glob(os.path.join(data_dir, 'mnist/*.jpg')))
with tf.Graph().as_default():
samples, losses = train(epochs, batch_size, z_dim, learning_rate, beta1, mnist_dataset.get_batches,
mnist_dataset.shape, mnist_dataset.image_mode, step_threshold=3300, gen_loss_threshold=0.5)
print("Done training")
Run your GANs on CelebA. It will take around 20 minutes on the average GPU to run one epoch. You can run the whole epoch or stop when it starts to generate realistic faces.
batch_size = 32
z_dim = 100
learning_rate = 0.00002
beta1 = 0.5
"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
epochs = 1
celeba_dataset = helper.Dataset('celeba', glob(os.path.join(data_dir, 'img_align_celeba/*.jpg')))
with tf.Graph().as_default():
train(epochs, batch_size, z_dim, learning_rate, beta1, celeba_dataset.get_batches,
celeba_dataset.shape, celeba_dataset.image_mode, step_threshold=5000, gen_loss_threshold=0.5)
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
losses = np.array(losses)
plt.plot(losses.T[0], label='Discriminator', alpha=0.5)
plt.plot(losses.T[1], label='Generator', alpha=0.5)
plt.title("Training Losses")
plt.legend()
When submitting this project, make sure to run all the cells before saving the notebook. Save the notebook file as "dlnd_face_generation.ipynb" and save it as a HTML file under "File" -> "Download as". Include the "helper.py" and "problem_unittests.py" files in your submission.


Kaomoji App only receives and stores the name of your Slack team and an anonymous identification token, which is used to connect you to your saved shortcuts. In order to improve the user experience, Kaomoji App also requests permission to post messages as you. Kaomoji App will never post as you without a clear indication that you wish to send a message, and you will always see the kaomoji that is about to be posted.
Kaomoji App is an open source project.
If you have any questions/concerns/suggestions, please submit an issue, or email the Kaomoji App team.


| The Top 6 items/URLs |
|---|
| More details | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| No. | Hits | Files | Pageviews | Sessions | KB sent | URL | ||||
| 1 | 6131 | 76.90% | 5494 | 80.51% | 0 | 0.00% | 549 | 51.89% | 38658 | All images |
| 2 | 1176 | 14.75% | 1079 | 15.81% | 1065 | 80.02% | 323 | 30.53% | 39792 | / |
| 3 | 263 | 3.30% | 232 | 3.40% | 263 | 19.76% | 40 | 3.78% | 295 | /includes/ |
| 4 | 16 | 0.20% | 16 | 0.23% | 0 | 0.00% | 10 | 0.95% | 26 | /cgi-sys/ |
| 5 | 2 | 0.03% | 2 | 0.03% | 2 | 0.15% | 0 | 0.00% | 19 | /photogallery/photo2477/ |
| 6 | 1 | 0.01% | 1 | 0.01% | 1 | 0.08% | 1 | 0.09% | 2 | http://www.yahoo.com/ |
|


We are registered as a Stock Broker, Research Analyst, and Depository Participant with SEBI, as a Broker
with NSE, BSE and MCX, as a depository participant with CDSL, as a distributor with AMFI and as a platform partner with BSE STAR MF.
List of documents required to open an account
PAN Card*
Aadhaar Card
Signature Image
Bank Proof*
Income Proof (for F&O and MCX Trading)
Note: Keep your Aadhaar Card-linked mobile number handy.


seed seedless development seeded genes DEGs progeny grape expression (Fig. analysis developmental Plant stage Arabidopsis coat file enriched stages gene ovule using hormone pathways related seeds identified reads up-regulated used {border-style progeny. Wang cell involved px;} #ffffff;} (SL/S) RNA-Seq development, significantly terms Additional Cluster expressed data family growth size associated different endosperm stages. thaliana Table differences higher Cell Figure LINK down-regulated formation indicating kb) key progeny, regulation (Additional MADS-box biosynthesis molecular plant profiles results transcription Biol Fig. RNA epigenetic identity mapped model number set weight acid content control selected %), ABA Sci b). differentially important multiple performed possible px; reported seed-related total transcriptome vinifera {font-family (XLS BMC Development Gene Genomics S). a), auxin early exon factor factors font-size kilobase levels maximum/minimum million parent secondary shown stage, value (SL/S), Based Bot Chen Exp Gasser MYB Ontology TRs Vitis VvMADS, analyzed article based biological change chosen common development. double; embryo families. followed fruit genes, genetic genome grapes grapevine high highest hormones including indicate integument mechanism pattern patterns polarity regulators relative represent represents required resulting reveals samples seedlessness stage. transcriptional versus wall (PNG (RPKM) AUX/IAA CUP-SHAPED DNA Expression Fei Moreover, Number Seed TFs VvMADS Xiping Zhong a). analyses border-color border-width collected compared consistent derived development’ evidence families fold-change group groups hormonal like maternal mechanisms mentioned observed pathway potential previous previously processes provides role roles sample significant solid; studies up- vinifera) {font-style {font-weight ±.. (DEGs) (GO) (Log-transformed Acad BELL Clusters Curr DAF DEGs, Ditta GRAS Gao Globe’ Grape KANADI NAC Natl Nature Physiol Proc S), TESTA Transcriptome WRKY Yanofsky Zheng Zhou [], abortion addition, affected biosynthesis, bold caused courier; em; endosperm, family, gene, importance insights known level lowest major material meristem network paternal phenotype process’ provided pt;} qRT-PCR. reaction reference regulates regulation, regulation. regulator results, seedless’ sequence sequences showed signal software somatic stages, study ‘Centennial ‘Red ‘biological


Enhancing Your Education
State Farm and other similar companies
regularly have internships available for high school students. I plan on interning at State Farm this Summer.
State Farm has numerous departments filled with internship opportunities that are usually chosen by the intern.
I was able to tour some departments of StateFarm with my Computer Science class on a fieldtrip and found out
that I was familiar with the tasks they were doing.
I have also participated in Hour of Code over the past years that has helped me understand code more.
Additionally, taking summer courses of coding can easily increase one's knowledge about coding. I took a 20 hour long course
over the summer, CodeQuest, and learned so many new things. I had to use Github, learn how to write algorithms, create a website, make a
Chrome extensions, build an Alexa skill (RockPaperScissors), and attempt using AWS databases.
Some skills website designing has taught me: problem solving, patience, creativity, detail-oriented
Here's a picutre of me and my friend working on an Alexa app!
Doyle, Alison. “Web Developer Job Description, Salary, and Skills.” The Balance Careers, The Balance Careers, www.thebalancecareers.com/web-developer-job-description-salary-and-skills-2061841.


Monkey Business (1952)
Grade: 85
There was great suspense at the 1952 Academy Awards. Who would win the Oscar for Best Supporing Chimpanzee? There were many close-ups of the faces of the nominees: Cheetah, from "Tarzan's Savage Fury". Esther, from "Monkey Business". Bonzo, from "Bonzo Goes to College". Thunderous applause rocked the auditorium when the winner's name, Esther, was announced. At only six months, Esther was the youngest chimp to be so honored.
Esther gave a very moving acceptance speech. After much hooting and screeching, she described the discrimation she had overcome: not being allowed to join the Academy, not getting listed in the credits, even being imprisoned in a small metal cage, against her will. And her agent had taken her entire paycheck!
This is a silly way to begin a film review. But it is appropriate, for "Monkey Business" is a very silly movie. One of several screwball comedies directed by Howard Hawks and starring Cary Grant, "Monkey Business" is often hilarious.
The plot has Grant cast as a middle-aged, fuddy-duddy chemist, working on a Fountain of Youth serum at a private research center headed by Charles Coburn. His wife (Ginger Rogers) is devoted to him despite his absent-mindedness. At the lab, a chimp escapes from a cage and re-mixes Grant's formula, getting it into the water cooler. Grant and Rogers unwittingly drink the formula and regress into their youth, getting into endless ridiculous situations. My favorite scene has Grant pretending he is an Indian brave, and leading a scalping party for Grant's hapless rival Hugh Marlowe.
Also present is Marilyn Monroe, cast as Coburn's dim-bulb secretary. Monroe and Coburn have a famous dialogue that runs something like this:
Coburn: You'd better get somebody to type this. Monroe: Oh, Mr. Oxley, can't I try again? Coburn: No, this is important. (Monroe walks out of the room, with Coburn gaping at her) Coburn: Anybody can type.
Screwball comedies, where the plot consists of a series of connected gags, are very difficult to pull off. The gags have to be funny, they have to fit the characters, and they have to make sense within the framework of the film. Unpredictability and imagination is required. The screwball comedy is something of a lost art, with most recent attempts resorting to bathroom humor and pandering to the youngest audience, as in the "Police Academy" series.
<EMAIL_ADDRESS>http://members.tripod.com/~Brian_Koller/movies.html
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


First Name:
Last Name:
Gender:
Male
Female
Email:
Contact Number:
Address:
Postal code:
City:
State:
Pennsylvania
Texas
Virginia
Colorado
New Jersey
Florida
New york
Date of Birth:
Education Information:
University
Year of Passing
Percentage
School
College
College
Social IDs:
SSN number:
Passport number:
What is this??
What is this??
What is this??
What is this??
What is this??
What is this??
What is this??
Check out


Copyright © 2001-2003, 2008 Thai Open Source Software Center Ltd
See the file copying.txt for copying permission.
DTDinst is a program for converting XML DTDs into an XML instance format.
Previous versions of DTDinst could also convert XML DTDs into RELAX NG. This functionality has now migrated into Trang, which now shares the DTDinst code.
The key feature of DTDinst is its handling of parameter entities. It is able to reliably turn parameter entity declarations and references into a variety of higher-level semantic constructs. It can do this even in the presence of arbitrarily deep nesting of parameter entity references within parameter entity declarations. At the same time, it accurately follows XML 1.0 rules on parameter entity expansion, so that any valid XML 1.0 DTD can be handled. If a parameter entity is used in a way that does not correspond to any of the higher-level semantics constructs supported by DTDinst, then references to that parameter entity will be expanded in the DTDinst output.
DTDinst is available for download as the file dtdinst-<EMAIL_ADDRESS>which contains binaries, source code and documentation. It requires a Java runtime compatible with the Java 2 Platform, Standard Edition (J2SE) version 1.4 (or any later version), such as the Java Runtime Environment (JRE), which can be downloaded here.
The latest version of DTDinst will always be available in the Downloads section of the project site.
To run DTDinst, use a command of the form:
java -jar dtdinst.jar DTD
The DTD
argument can be either a file or a
URL.
DTDinst writes an XML representation of the DTD in DTDinst format to the standard output. For example, the command
java -jar dtdinst.jar http://www.w3.org/XML/1998/06/xmlspec-v21.dtd >xmlspec.xml
would write an XML representation of the W3C xmlspec DTD to the
file xmlspec.xml
.
The DTDinst format is designed to represent the parameterization of the DTD as fully as possible.
There is a schema for this format in RELAX NG compact syntax; the schema is also available in RELAX NG format.
Each parameter entity declaration is represented by one of the following elements:
modelGroup
is used for a parameter entity that
represents all or part of the content model of an element (example, DTDinst output)attributeGroup
is used for a parameter entity
containing zero or more attribute definitions, which can be
referenced in an ATTLIST
declaration (example, DTDinst output)attributeDefault
is used for a parameter entity
that represents the default value of an attribute (example, DTDinst output)datatype
is used for a parameter entity
that represents an attribute type (example, DTDinst output)enumGroup
is used for a parameter entity that
contains zero or more enumerated values (example, DTDinst output)flag
is used for a parameter entity with replacement
text INCLUDE
or IGNORE
, which can be used to
control a conditional section (example, DTDinst output)nameSpec
is used for a parameter entity that represents
the name of an element or attribute (example, DTDinst output)externalId
is used for an external parameter entity
that does not fall into any of the above categories (example, DTDinst output)param
is used for an internal parameter entity
that does not fall into any of the above categories (example, DTDinst output)overridden
is used for a parameter entity declaration
that is overridden by an earlier declaration of the same parameter
entity (example, DTDinst output)The element used to represent a parameter entity reference depends on the element used to represent the declaration of the parameter entity.
modelGroup
,
attributeGroup
, attributeDefault
,
datatype
, enumGroup
, flag
or
nameSpec
element, then the reference will be represented
by a modelGroupRef
, attributeGroupRef
,
attributeDefaultRef
, datatypeRef
,
enumGroupRef
, flagRef
or
nameSpecRef
element respectively.externalId
and
the reference occurs at the declaration level (i.e. at a point where a
declaration would be allowed), then the reference will be represented
by a externalIdRef
element containing the declarations
from the external entity.An XSLT stylesheet is available that converts DTDinst format to RELAX NG. It has many more limitations than the converter builtin to DTDinst, but it may be useful as a basis for XSLT-based processing of DTDinst format.
You may find it interesting to experiment with the following XML DTDs which are available online:
DTDinst does not attempt to understand the contents of ignored
conditional sections: DTDinst format represents the contents of an
ignored section as a string. If you wish to preserve information
about conditional sections, you should therefore make as many
conditional sections as possible be included marked sections rather
than ignored marked sections. You can do this by creating a wrapper
DTD that declares parameter entities as INCLUDE
and then
references the real DTD. For example, you might use this wrapper DTD to convert the TEI P4 DTD.
DTDinst does not attempt to understand the contents of parameter entities that are never referenced.
Please report bugs by creating a new issue in the Issues section of the project site. Be sure to attach a complete DTD for which DTDinst exhibits the bug.
James Clark


Demo features : multiple Sprites, each moving using different easing functions from the Greensock TweenMax library. The star shape also acts as a mask for an underlying photo.


Ryan Wagner
Fancy Definition: A div is the basic structural element of any web page. It's used to define a division in a document.
Source: w3schools.com
Courtesy: http://www.qualityquotes.co.za/
This is a header!
This is some text under the header!
This is a sub header.
The sub header is less impressive.
Technical Definition: The <span>
tag is used to group inline-elements in a document.
My mother has blue eyes.

Using Divs, headers, paragraphs, and spans, create a basic page that looks like this:
Cascading Style Sheets is a style sheet language used for describing the presentation semantics of a document written in a markup language
Credit: hyperboleandahalf.blogspot.com
An ID takes the following form:
This is really important!
Use an ID on something you only intend to have one of per page.
A CSS class looks a lot like an ID:
This Div is probably tinted.
Classes are used in cases where you intend to use that styling multiple times.
ID's and Classes can be combined for fun and profit. You can even have multiple classes on the same element.
The content of this div will have the CSS from all of the classes
and the ID on it.
A type selector is simply targeting everything of a specific type. <h1>, <p>, <div>, and <span> are all examples of things that can be universally targeted.
Using the previous example, apply the hero id to the first div, and then apply the classes tinted and bordered to the divs in any combination you want.
Importing an external sheet is the most popular way to get CSS onto a page.
Create a new document called "my-styles.css", and use the code
to import it to your page. When done, populate the sheet with the following:
#hero {
color: orange;
}
.tinted {
background-color: gray;
}
.bordered {
border: 1px solid black;
}
div {
margin: 10px;
}
Using everything you've learned so far, create the following.
Hint: The borders are 5px and divs have a 10px margin.


Raidendooh is a next generation advertising platform aims to tackle a problem in traditional media industry which is a long and complex process. The new blockchain based platform will be a breakthough to the industry, advertiser can post an ad directly to the publisher reduce a time-to-publish from 30 days to 3 minutes where the payment is instant and don't require any intermediary.


Why Do We Want to Attend Sunbreak 2019 as a LaCroix-Themed Team?
LaCroix doesn’t need more evangelists, but we’re going to #preach anyway. After all, with the hot days of summer upon us, we want to proclaim to the world that “IT’S TIME TO TAKE YOUR HYDRATION SERIOUSLY!”
Twin Hammers...And That Pamplemousse are looking to provide teammates, opponents, and passersby over at 60 Acres some much needed refreshments, whether they are all about that #PeachPearDontCare life, want to live their own Tangerine dream, are Berry jazzed for Cran-Raz, want a wellness shot of Apricot, or are looking to discover their one true Passion(fruit). We’re here to help them (Man)go (Coco)nuts and fuel their lives with Pure bliss.
Our half-time and time-out Bubble Bar will introduce interested field attendees to some of the finest artisanal mocktails—aka, LaCroixtails (pronounced "La-Cwock-Tails")—around. Simultaneously, players can participate in a competitive LaCroixtail-themed fashion show where contestants create new mix-and-match flavors (in the words of Big Dipper, it's all about that "mélange in your mouth") by dressing up a teammate with flavor-inspired gear. Contestants are scored on creativity, flare, and how easy it is to guess the brand new flavor combo. Winners will receive a delightful surprise that'll keep them inspired to take their hydration seriously.
The fun doesn't stop there! We'll invite the Spirit Winners from each game to participate in our post-game Spirit Challenge during which they'll be presented with an opportunity to drink the rainbow. You can read all about it on our Spirit Game page.
In the spirit of encouraging our fellow tourney goers to take their hydration seriously (#TakeYourHydrationSeriously), we’ll be generous with our La Croix stash (though a little friendly bartering may be in order)—after all, dehydration is the enemy.
All the while, we’ll seek to answer the age-old question, WHAT FLAVOR OF LACROIX ARE YOU?
Links
About Twin Hammers Take Our Quiz LaCroix Horoscopes Bubble Bar Recipes How to #TakeYourHydrationSeriously


For those who don't do sports.
About VPP
This Virtual Ping Pong site is an application for testing or demonstrating basic proficiency in Javascript and Behavior Driven Development (BDD).
Created by:
Taylor Pokoj © 2016
GitHub account:
Ping Pong will count up to your number from 1 with the following exceptions:


{% include "header.html" %}
Hashtag Recommandation
This application recommand hashtags using the Word2Vec module
Start application


I'm a 24 year old student from Helsinki, currently living in Otaniemi, Espoo. I maintain this site because I wanted to provide people googling my name with up to date information. I update this site (or the content of the linked files) whenever needed, currently about once a month. I'm happy to receive feedback or improvements about this site in the form of a pull request on github.
Latest posts in my blog
{% assign count = 0 %}
{% for post in site.posts limit:5 %}
{% if count < 10 %}
{% if post.language contains 'en' %}
- {{ post.title }}
{% endif %}
{% if post.language contains 'fin' %}
- {{ post.title }}
{% endif %}
{% endif %}
{% endfor %}


Frontend
You can customize the site the way you want simply by going to the DATA FILE. See Pydelhi Mail as a live demo of the site. Here is a list of variables you can tweek in the DATA FILE to change your frontend Design.
// ADD DATA FILE
Backend
You can change the number od channels and channel names. You can also change the channels the user is subscribed to by default.


Social Deeds
Leaderboards
(current)
Deeds
My Profile
Log-In
Log-Out
Deeds
ID
Title
Location
Start Date
End Date
Description
Image
Slots
Sponsored By
Sponsor Logo
Deed Coins


Welcome to our web material! In this document you will find the
shader code and the
contact info.
The following material is bundled:
- demo.mp4: demo movie showcasing the technique (1280x720p).
- images: several high-res figures from the article.
- scripts:
- partialderivative.py: this Python script calculates a partial derivative normal map from a standard normal map.
- For running the script:
Overview
In this section we will show the code corresponding to the two approaches introduced in the article. Copy pasting from this section into your application will allow you to have facial wrinkles up and running in no time.
Partial Derivative Normal Maps Approach
This code is the optimized version of the shader ready to be used:
float3 WrinkledNormal(Texture2D baseTex,
Texture2D wrinkleTex,
Texture2D maskTex[2],
float4 weights[2],
float2 texcoord) {
float4 base;
base.xy = baseTex.Sample(AnisotropicSampler16, texcoord).gr;
base.xy = (-1.0 + 2.0 * base.xy);
#ifdef WRINKLES
float2 wrinkles = wrinkleTex.Sample(LinearSampler,
texcoord).gr;
wrinkles = -1.0 + 2.0 * wrinkles;
base.zw = 0.0;
float4 mask1 = maskTex[0].Sample(LinearSampler, texcoord);
mask1 *= weights[0];
base += mask1.rrgg * wrinkles.xyxy;
base += mask1.bbaa * wrinkles.xyxy;
float4 mask2 = maskTex[1].Sample(LinearSampler, texcoord);
mask2 *= weights[1];
base += mask2.rrgg * wrinkles.xyxy;
base += mask2.bbaa * wrinkles.xyxy;
base.xy += base.zw;
#endif
base.z = 1.0;
return normalize(base.xyz);
}
Where baseTex is the base normal map, wrinkleTex is the wrinkle map, maskTex is the mask map and weights are the specified weights for each region. See Figure 1.3 and Table 1.1 in the article for more details.
Normal Map Differences Approach
This code is the optimized version of the shader corresponding to the alternative approach presented in Section 1.2.1:
float3 WrinkledNormal(Texture2D baseTex,
Texture2D normalDiffTex,
Texture2D maskTex[2],
float4 weights[2],
float2 texcoord) {
float3 base;
base.xy = baseTex.Sample(AnisotropicSampler16, texcoord).gr;
base.xy = -1.0 + 2.0 * base.xy;
base.z = sqrt(1.0 - base.x * base.x - base.y * base.y);
#ifdef WRINKLES
float3 diff = normalDiffTex.Sample(LinearSampler, texcoord).agb;
diff = -1.0 + 2.0 * diff;
// We multiply by 2.0 because the difference wrinkle map was
// calculated using values in the range 0..1, and now we are
// working in the range -1..1
diff *= 2.0;
float4 mask1 = maskTex[0].Sample(LinearSampler, texcoord);
float4 mask2 = maskTex[1].Sample(LinearSampler, texcoord);
mask1 *= weights[0];
mask2 *= weights[1];
base += mask1.r * diff;
base += mask1.g * diff;
base += mask1.b * diff;
base += mask1.a * diff;
base += mask2.r * diff;
base += mask2.g * diff;
base += mask2.b * diff;
base += mask2.a * diff;
#endif
return normalize(base);
}
Where baseTex is the base normal map, normalDiffTex is the difference map, maskTex is the mask map and weights are the specified weights for each region. See Figure 1.4 and Table 1.1 in the article for more details.
If you have any questions, don't hesitate to contact us:
Jorge Jimenez<EMAIL_ADDRESS>Jose I. Echevarria<EMAIL_ADDRESS>Christopher Oat<EMAIL_ADDRESS>Diego Gutierrez (diegog@unizar.es)