show || hide menu
TooToo 2020
file menu
to be reset
repository files
test
view all files in this repository
Files you can load, view and experiment with:
Welcome!


Malaysia Showed What Team Spirit Really Means At The World Cup Qualifier Against Indonesia
'Kami Selalu Ada' is stuck in our heads right now.
by May Vin AngCover image via Twitter @NizamArchibald Fox Sports
Malaysia defeated Indonesia 2-0 in a glorious game of football during the joint qualifier for the 2022 FIFA World Cup and 2023 Asian Cup last night, 19 November
Crowd favourite winger Safawi Rasid brought the game home - scoring a free kick after drawing a foul in the 29th minute to make it 1-0, before scoring another goal in the 72nd minute.
Equally worthy of attention though, were the Harimau Malaya fans - also known as the Ultras Malaya - for their relentless team spirit inside and outside of Bukit Jalil National Stadium, KL.
Here were the many ways they have captured attention online:
The Ultras Malaya had rhythm and, more impressively, a drum line
Feel amazed watching these thousands of fans singing and jumping in unison in support of our national football team.
They were energetically bouncing to a fan-favourite football chant 'Demi Malaysia'.
The fans literally spelled out their national pride while 'Negaraku' played at the opening ceremony
As the national anthem aired over the stadium, the audience stood up in attention, making an incredible 'tifo' displaying a single word - 'Malaysia'.
But seriously, what is a football game without the fans?
Watch as almost all the 85,000 spectators sing a Harimau Malaya favourite chant 'Kami Selalu Ada' in beautiful chorus.
I kind of feel sorry for the 6,000 Indonesian fans who came all the way to see the game.
Diehard fans who watched the match at home also caught on to the contagious team spirit
These fans singing 'Kami Selalu Ada' along to their television at home while waving the Jalur Gemilang brought tears to my eyes.
Finally, some fans made the most of the game with these hilarious tweets
This guy added drama to Rashid's already awe-inspiring goals.
While some fans were still salty over the incident that happened in Jakarta.


common
index
e:\rrc course\onedrive - red river college\rrc\2020fa_term 5\programming in python\project\adev-3005-python_weather_processing_app\src\common.py
This is a tool module.
Modules
ntpath
Functions
is_int
(s)
Check a string is an int or not.
:param s:
:return:
is_number
(s)
Check a string is a int or a flot or not.
:param s:
:return:
mkdir_p
(my_path)
Creates a directory. equivalent to using mkdir -p on the command line
:param my_path:
:return:
Data
EEXIST
= 17


Constructor
new ExtendConfig(dir, task)
Parameters:
| Name | Type | Description |
|---|---|---|
dir |
string | The directory with config Files. |
task |
boolen | The Grunt Task Name by filename if true. |
- Source:
Methods
(static) extendObject(target, namespace, args) → {object}
Extend Object with given Object(s).
Parameters:
| Name | Type | Description |
|---|---|---|
target |
object | The target to extend. |
namespace |
string | The namespace prefix to extend prop. |
args |
object | The sources to append. |
- Source:
Returns:
The extended Object.
- Type
- object
(static) getFiles() → {array}
Get files from a given directory.
- Source:
Returns:
The files from the given directory.
- Type
- array
(static) getTasks() → {object}
Build Tasks from Objects in given files.
- Source:
Returns:
The required files from the given directory.
- Type
- object


@Model.title
Player:
Register
Choose an opponent:
My Word:
Start the game and wait for your opponent to join...
Wait for your opponent to start the game...
Join game...
Waiting for your opponent to provide their word...
Waiting for your opponent to start the game...
It's your
opponent's
turn
It's a tie.
Your opponent won.
You won!
Guess:
Guess
My Guesses
Their Guesses
Hints (
Reset
)
Guess
Score
Known In
Known Out
Unknown
Commands
Clues
Guess
Score
Start a new game


This webpage runs an external JavaScript that requests a whole number and displays a message indicating if it is a prime number or not.
Click Refresh (or Reload) to run the script again.


Header Text
Notifications
Groups
Support
Log In
Activate
|
Forgot Password
|
Sign Up
Set password (6-8 characters)
Submit
Password Reset
Submit
Sign up for an account
Back to Log-in
Transactions
Users
Groups
Send Notification
Subject:
Message:
Send
Mark as read
Archive
← Back
My Groups
n/a
Group Invites
Join Requests
n/a
Subscribe to notifs
Unsubscribe from notifs
Leave group
Cancel
Join another group
Join this group?
Join
Cancel
Start a new group
Submit
Group/s you own
n/a
Approve join requests
Approve join request?
OK
Ignore
Registration
Verify
Back to Log-in
???
???
Yes
No
???
???
Yes
???
???
Option1
Option2
Option3
Option4
Cancel
Send a Notification
Members List
Join Requests
Invite New Members
Flush All Members
Cancel
Notifications
Users
Groups
Notification
User Management
Add new user
Submit
Users list
Email:
Last name:
First name:
Middle name:
Group membership
User Affinity
Update
Delete
join another group
Join this group
User:
Role:
Child:
Father:
Mother:
Guardian:
Notifications
Users
Groups
Send Notification
Group Management
Create a new group
group type:
school
section
club
group moderator:
Submit
Groups list
← Back
Group name:
Group type:
Moderator:
Update details
Members list
Join requests
Delete
Update
Delete
Join group
← Back
Send notification to group:
Message:
Send
Notifications
Users
Groups
Send Notification
=
Send Notification
Send to:
Notification:
Send
← Back
Send Group Invites
Send Invite
← Back
Members list
← Back
Join Requests
Approve join request?
Approve
Cancel


Investing in Your Future
We help you understand. We help you manage. We help you grow.
Moneybag is the easiest way to learn about investment, do your monthly budgeting, and most importantly, start your investment. We help you to achieve your financial goal.  We just care how you can double your money.
Try Now


Load page 1
Load page 2
Load page 3
Up slow
-
Up medium
-
Up fast
Down slow
-
Down medium
-
Down fast
YOUR REGULAR BODY CONTENT GOES IN HERE


I am a Research Associate working at SPIRE Lab at IISC Bengaluru, India under the supervision of Dr. Prasanta Kumar Ghosh. Graduted from NIT Srinagar
in Computer Science & Engineering. At SPIRE lab I am working problems related to Audio-Visual Speech Synthesis, Accent Conversion and Developing TTS & ASR systems for multiple Indian languages.
During my under-graduate studies I have worked on projects mainly related to Computer Vision and NLP. Inquistive towards the field of Machine Learning and its unnumerable real-world applications.
•  A study on native American English speech recognition by Indian listeners with varying
word familiarity level. Abhayjeet Singh, Achuth Rao MV, Rakesh Vaideeswaran, Chiranjeevi Yarra, Prasanta Kumar Ghosh COCOSDA 2021  LINK
•  Web Interface for estimating articulatory movements in speech production from acoustics and text. Sathvik Udupa, Anwesha Roy, Abhayjeet Singh, Aravind Illa, Prasanta Kumar Ghosh InterSpeech 2021  LINK
•  Estimating articulatory movements in speech production with transformer networks. Sathvik Udupa, Anwesha Roy, Abhayjeet Singh, Aravind Illa, Prasanta Kumar Ghosh InterSpeech 2021  LINK
•  Attention and Encoder-Decoder based models for transforming articulatory movements at different speaking rates. Abhayjeet Singh, Aravind Illa and Prasanta Kumar Ghosh InterSpeech 2020  LINK
•  A comparative study of estimating articulatory movements from phoneme sequences and acoustic features. Abhayjeet Singh, Aravind Illa and Prasanta Kumar Ghosh ICASSP 2020  LINK
Advisor: Prof. Prasanta Kumar Ghosh (IISc Bangalore).
Speech recognition in agriculture and finance for the poor is an initiative predominantly to create resources and make them available as a digital public good in the open source domain to spur
research and innovation in speech recognition in nine different Indian languages in the
area of agriculture and finance.
Advisor: Prof. Prasanta Kumar Ghosh
(IISc Bangalore).
Conversion of non-native accent to native accent for better recognition of non-native speech.
Estimating Air Tissue Boundaries of articulators using Real-Time MRI data
Advisor: Prof. Prasanta Kumar Ghosh (IISc Bangalore).
Estimating ATB contours of articulators from phonemes in speech production using real-time MRI data.
Various Encoder-Decoder, Attention and Transformer netorwks are used to estimate the ATB contours.
Previous Projects
Estimating articulatory movements from phonemes spkoken during speech production.
Advisor: Prasanta Kumar Ghosh, Aravind Illa (IISc Bengaluru).
Predicting articulatory movements from phonemes using Encoder-Decoder models with Attention mechanism for modelling durations between phonemes and respective articulatory movements.
ASTNET - Prediction of Articulatory Motion in Speech Production at different rates
Advisor: Prasanta Kumar Ghosh, Aravind Illa (IISc Bengaluru).
Prediction of Articulatory Motion at different rates using Encoder Decoder Model and Dynamic Time Warping Algorithm for Alignment. Predicting articulators at varied speaking rates can be used to enhance performance of ASR systems in real-time.
Sign Language Recognition using CNN
Advisor: Prof. RN Mir & Ab Rouf Khan (NIT Srinagar, India)
Classifying various hand gestures as English language alphabets in real time using Convolutional Neural Networks.
Language Identification System
Advisor: Advisor: Prof. Arun Balaji Budru (IIIT Delhi).
Detection of various Indian languages using a convolutional recurrent neural network (CRNN).The CRNN
model was trained with input as grey scale image of the audio’s spectrogram.


Igpay Atinlay
Enter a sentence and we will translate it into Pig Latin:
Atinizelay!
Translated into igpay atinlay, your entry reads:


Wednesday - Friday
Saturday - Sunday
For some time, the editorial team behind this distilled series is made of a one-woman-team, @ruth-girl, and she chooses her favorite posts (potentially discussing with other curators and/or the management). Posts written by the SteemSTEM team are excluded from the nomination process.
Please do not be discouraged if you did not make it on this issue. We are picking up in total 14 posts a week out of more than 200. The chances are thus low ;) In the meantime, you may wish to check these guidelines for extra tips on how your writing could be more effective.
In the spirit of being transparent about our actions that are now supported by @utopian-io, @curie, our delegators, our trailers and our manual curator supporters, we release every week the list of authors who have caught the attention of the @steemstem curation team.
From August 19 to 26, we rewarded 96 different authors who have written a total of 126 different articles. The 78 authors who received votes from @steemstem, @utopian-io and @curie all together that week are:
@abdulmath, @abigail-dantes, @agbona, @agmoore, @ajpacheco1610, @akireuna, @aleestra, @alexaivytorres, @amestyj, @answerswithjoe, @callmejoe, @chloroform, @conficker, @cryptoitaly, @dexpartacus, @dirge, @donefezy, @drifter1, @dysfunctional, @elguajirohh, @elvigia, @emiliomoron, @endopediatria, @ennyta, @erickyoussif, @felixrodriguez, @florae, @francop, @funnel, @happydaniel, @highonthehog, @ied, @ikchris, @iradyjr, @jfermin70, @josedelacruz, @katerinaramm, @knfitaly, @lauch3d, @lorenzor, @lupafilotaxia, @lycos, @marjanko, @markgritter, @masterwriter, @mathsolver, @motaryo, @motoengineer, @mr-aaron, @n4zrizulkafli, @nonzerosum, @olasamuel, @osmy07, @paololuffy91, @photo-it, @rareghost, @roquejr, @rossyholg, @rscalabrini, @samest, @samminator, @scienceangel, @scienceblocks, @sciencetech, @sebbbl, @serialfiller, @simson1, @soanna, @spbeckman, @steemit-italia, @svemirac, @theaustrianguy, @thekittygirl, @torkot, @tsoldovieri, @ubaldonet, @yhubi, @zen-art
All curation rewards earned will be used to fund @steemstem project functioning and activities.
See you all next MonTuesday!
This page is synchronized from the post: SteemSTEM Distilled #73


|
libcoap
4.1.2
|
Data Structures | |
| struct | coap_block_t |
| Structure of Block options. More... | |
Macros | |
| #define | COAP_MAX_BLOCK_SZX 4 |
| The largest value for the SZX component in a Block option. More... | |
| #define | COAP_OPT_BLOCK_LAST(opt) (COAP_OPT_LENGTH(opt) ? (COAP_OPT_VALUE(opt) + (COAP_OPT_LENGTH(opt)-1)) : 0) |
Returns the value of the least significant byte of a Block option opt . More... | |
| #define | COAP_OPT_BLOCK_MORE(opt) (COAP_OPT_LENGTH(opt) ? (*COAP_OPT_BLOCK_LAST(opt) & 0x08) : 0) |
Returns the value of the More-bit of a Block option opt . More... | |
| #define | COAP_OPT_BLOCK_SZX(opt) (COAP_OPT_LENGTH(opt) ? (*COAP_OPT_BLOCK_LAST(opt) & 0x07) : 0) |
Returns the value of the SZX-field of a Block option opt . More... | |
Functions | |
| unsigned int | coap_opt_block_num (const coap_opt_t *block_opt) |
Returns the value of field num in the given block option block_opt . More... | |
| static int | coap_more_blocks (size_t data_len, unsigned int num, unsigned short szx) |
Checks if more than num blocks are required to deliver data_len bytes of data for a block size of 1 << (szx + 4). More... | |
| static void | coap_opt_block_set_m (coap_opt_t *block_opt, int m) |
Sets the More-bit in block_opt . More... | |
| int | coap_get_block (coap_pdu_t *pdu, unsigned short type, coap_block_t *block) |
Initializes block from pdu . More... | |
| int | coap_write_block_opt (coap_block_t *block, unsigned short type, coap_pdu_t *pdu, size_t data_length) |
Writes a block option of type type to message pdu . More... | |
| int | coap_add_block (coap_pdu_t *pdu, unsigned int len, const unsigned char *data, unsigned int block_num, unsigned char block_szx) |
Adds the block_num block of size 1 << (block_szx + 4) from source data to pdu . More... | |
| #define COAP_MAX_BLOCK_SZX 4 |
| #define COAP_OPT_BLOCK_LAST | ( | opt | ) | (COAP_OPT_LENGTH(opt) ? (COAP_OPT_VALUE(opt) + (COAP_OPT_LENGTH(opt)-1)) : 0) |
| #define COAP_OPT_BLOCK_MORE | ( | opt | ) | (COAP_OPT_LENGTH(opt) ? (*COAP_OPT_BLOCK_LAST(opt) & 0x08) : 0) |
| #define COAP_OPT_BLOCK_SZX | ( | opt | ) | (COAP_OPT_LENGTH(opt) ? (*COAP_OPT_BLOCK_LAST(opt) & 0x07) : 0) |
| int coap_add_block | ( | coap_pdu_t * | pdu, |
| unsigned int | len, | ||
| const unsigned char * | data, | ||
| unsigned int | block_num, | ||
| unsigned char | block_szx | ||
| ) |
Adds the block_num
block of size 1 << (block_szx
+ 4) from source data
to pdu
.
| pdu | The message to add the block. |
| len | The length of data . |
| data | The source data to fill the block with. |
| block_num | The actual block number. |
| block_szx | Encoded size of block block_number . |
1
on success, 0
otherwise. Definition at line 128 of file block.c.
| int coap_get_block | ( | coap_pdu_t * | pdu, |
| unsigned short | type, | ||
| coap_block_t * | block | ||
| ) |
Initializes block
from pdu
.
type
must be either COAP_OPTION_BLOCK1 or COAP_OPTION_BLOCK2. When option type
was found in pdu
, block
is initialized with values from this option and the function returns the value 1
. Otherwise, 0
is returned.
| pdu | The pdu to search for option type . |
| type | The option to search for (must be COAP_OPTION_BLOCK1 or COAP_OPTION_BLOCK2). |
| block | The block structure to initilize. |
1
on success, 0
otherwise. Definition at line 45 of file block.c.
|
inlinestatic |
| unsigned int coap_opt_block_num | ( | const coap_opt_t * | block_opt | ) |
|
inlinestatic |
| int coap_write_block_opt | ( | coap_block_t * | block, |
| unsigned short | type, | ||
| coap_pdu_t * | pdu, | ||
| size_t | data_length | ||
| ) |
Writes a block option of type type
to message pdu
.
If the requested block size is too large to fit in pdu
, it is reduced accordingly. An exception is made for the final block when less space is required. The actual length of the resource is specified in data_length
.
This function may change *block to reflect the values written to pdu
. As the function takes into consideration the remaining space pdu
, no more options should be added after coap_write_block_opt() has returned.
| block | The block structure to use. On return, this object is updated according to the values that have been written to pdu . |
| type | COAP_OPTION_BLOCK1 or COAP_OPTION_BLOCK2. |
| pdu | The message where the block option should be written. |
| data_length | The length of the actual data that will be added the pdu by calling coap_add_block(). |
1
on success, or a negative value on error. Definition at line 73 of file block.c.


{{ define "main" }}
Companies who want to hire through Froggodoggo also need to apply and get accepted. We only want to work with companies who understand that hiring a founder part-time is a great value for them, and ready to pay for the good quality they get.
After you've applied and been accepted to Froggodoggo, you can set your own availability and preferences. There's no need to apply for projects - companies will come looking for you. Just sit back and relax.
We think most platforms charge too much money and can be intransparent. We're upfront and fair: Froggodoggo will always be free for founders. We charge companies who hire you a USD $300 one-time matching fee.


| Table 1 |
Mean, standard deviation, minimum, maximum, and range of flo ... |
| Table 2 |
Standard least squares mixed model results at different spat ... |
| Table 3 |
Standard least squares mixed model results at different spat ... |
| Table 4 |
Correlation of monthly mean or annual mean temperatures vers ... |


I am currently working towards my Masters in Computer Science at Oregon State University. I'm experienced in Information and Network Security with a demonstrated history of working in the higher education industry.
The Information Security field fascinates me, and I've taken a variety of classes in it, such as System Security, Network Security, Cyber Attack and Defense, Cyber Security, Applied Cryptography.
• Pursuing research on IDS/IPS like Bro and Snort with Elastic Search to make them work together efficiently.
• As a Graduate Teaching Assistant, so far, I have worked with over 300 students as GTA of “Introduction to Computer Networks” and Software Engineering-1.
• Performed various duties such as teaching, grading, mentoring, researching, holding office hours, lab sessions and learned about Cybersecurity, intrusion detection, Bro, snort, elastic search, Kibana, Wireshark, etc.
• Worked as student Network administrator and Information security lab assistant for phishing attack detection.
• Learned about customer service, handling engineering requests (tickets), Active Directory, Windows enterprise and Server OS, troubleshooting wired and wireless networks, troubleshooting enterprise hardware and software, phishing attacks, on call and walkup support to customers, etc.
• Built a PHP website to monitor live readings of various sensors and meters by applying Laravel framework, JavaScript, Bootstrap and High Charts.
• Applying fuzzing (afl-fuzz) and symbolic execution (KLEE), exploits using python (pwntools)
• Implementing Huffman Compression and Rabin Information Dispersal for Mini Forensic Tool for Wireless Sensor Networks
• Working with multiple VMs, tcpreplay and .pcap files; IPsec, TLS Tunnelling for encryption; VPN; Bro and Snort as IDS.
• Prevent “system(/bin/sh)” calls on the network using Bro IDS.
• Denial of Service Mitigation with Client-Server Puzzles The goal is to create a four-step protocol between two processes, one will act as the client while the other will be the server. Given the request, the server generates a k-bit hard puzzle. Trying different puzzle difficulties to see the impact. For example, in one instance, k = 8, and observe how many connections requests the client is able to make. Then increase, set k = 16, 20, 32, and observing the difference.
• Implementing Merkle-hash tree, HORS signature and d-time O(1) key-size HORS/Merkle-tree Mini Post-Quantum Signature.
• Working with Mininet Simulations, tcpreplay, and .pcap files; Bro as IDS.
• Exploited Buffer Overflow, Arbitrary R/W, Format String vulnerabilities with Shell scripting; SQL Injection; Return Oriented Programming employing pwntools, Burp Suite etc. practicing reverse engineering of x86, x86-64 assembly with gdb.
• Python implementation to measure throughput and communication delay in a simple topology.
• Built a PHP website to monitor live readings of various sensors using Laravel, JavaScript, Bootstrap and High Charts.
GPA: 3.60
GPA: 6.80
C/C++, Bro, Snort, IDS/IPS, Elastic Search, Kibana, Wireshark, Mininet, tcpreplay, Shell Script, Return-oriented Programming (ROP), pwntools, Burp Suite, x86; x86-64 assembly, gdb, Linux, Python.
Active Listener, Excellent Communication, Effective Time Management, Pressure handling skills, Quick Learner, Excellent collaboration, team building skills, management, and customer service.
Apart from being a web developer, I enjoy most of my time being outdoors. In the winter, I am an avid skiier and novice ice climber. During the warmer months here in Colorado, I enjoy mountain biking, free climbing, and kayaking.
When forced indoors, I follow a number of sci-fi and fantasy genre movies and television shows, I am an aspiring chef, and I spend a large amount of my free time exploring the latest technolgy advancements in the front-end web development world.
A BOOTSTRAP THEME - Bootstrap is a free to use, open source theme avilable to use here!


Auxilliary Tool:
The main data structure for the MIPOMDP algorithm. It is reponsible for generating the MIPOMDP observation vector. The ImagePatchPyramid (IPP) is described in detail in Butko & Movellan 2009 (see Related Publications).
More...
#include <ImagePatchPyramid.h>
Inherited by MOImagePatchPyramid.
Public Member Functions | |
| ImagePatchPyramid (CvSize inputImageSize, CvSize subImageSize, CvSize gridSize, int numSubImages, CvMat *subImageGridPoints, OpenCVHaarDetector *detector) | |
| Main Constructor: Manually create an IPP. | |
| ImagePatchPyramid () | |
| Placeholder Constructor. | |
| ImagePatchPyramid (ImagePatchPyramid *ippToCopy) | |
| Deep Copy Constructor: Create an IPP that is identical to the one copied. | |
| virtual | ~ImagePatchPyramid () |
| Default Destructor. | |
| virtual void | searchFrameAtGridPoint (IplImage *grayFrame, CvPoint searchPoint) |
| The main method for generating an observation vector: given an image, generate a count of object-detector firings in each grid-cell based on a fixation point. After this method is called, the resulting observation is stored in the objectCount element. | |
| virtual CvPoint | searchHighResImage (IplImage *grayFrame) |
| Apply the object detector to the entire image. This is used for comparing the speed and accuracy of the foveated search strategy. After this method is called, the count of objects that the object detector found in each grid-cell in the high resolution image is stored in objectCount. The location of the object is inferred as being the grid-cell with the highest count. | |
| int | getNumScales () |
| The total number of levels that the IP Pyramid has. | |
| int | getUsedScales () |
| The total number of levels that the IP Pyramid is currently using. | |
| int | getGridCellHeightOfScale (int i) |
| The height (measured in grid-cells) of the ith largest scale, indexed from 0. | |
| int | getGridCellWidthOfScale (int i) |
| The width (measured in grid-cells) of the ith largest scale, indexed from 0. | |
| CvRect | getVisibleRegion (CvPoint searchPoint) |
| Find the region of the belief map that is visible in any scales when fixating a grid-point. | |
| CvSize | getInputImageSize () |
| The expected size of the next input image. | |
| CvSize | getSubImageSize () |
| The common reference size that image patches are down-scaled to. | |
| CvSize | getMinSize () |
| Get the minimum allowed subImageSize. | |
| CvPoint | gridPointForPixel (CvPoint pixel) |
| Map a pixel location in the original image into a grid-cell. | |
| CvPoint | pixelForGridPoint (CvPoint gridPoint) |
| Find the pixel in the original image that is in the center of a grid-cell. | |
| int | getGeneratePreview () |
| Find out if the foveaRepresentation preview image is being set after every fixation. This may be turned off in order to improve efficiency. | |
| int | getSameFrameOptimizations () |
| Check whether same-frame optimizations are being used. | |
| void | changeInputImageSize (CvSize newInputSize) |
| Change the size of the input image and the downsampled image patches. Omitting a newSubImageSize causes the smallest-used-scale to have a 1-1 pixel mapping with the downsampled image patch -- i.e. information is not lost in the smallest scale. | |
| void | changeInputImageSize (CvSize newInputSize, CvSize newSubImageSize) |
| Change the size of the input image and the downsampled image patches. | |
| void | setGeneratePreview (int flag) |
| Turns on/off the code that modifies foveaRepresentation to visualize the process of fixating. | |
| void | setMinSize (CvSize minsize) |
| Set the minimum allowed subImageSize. | |
| void | setNewImage () |
| Tell the IPP not to use the next-frame optimizations for the next frame. | |
| void | useSameFrameOptimizations (int flag) |
| Set whether same-frame optimizations are being used. | |
| void | setObjectDetectorSource (std::string newFileName) |
| Change the file used by the object detector for doing detecting. This is critical if a weights file is located at an absolute path that may have changed from training time. | |
| void | saveVisualization (IplImage *grayFrame, CvPoint searchPoint, const char *base_filename) |
| Save a variety of visual representations of the process of fixating with an IPP to image files. | |
Public Attributes | |
| IplImage * | objectCount |
| Number of times the object-detector fired in each grid-cell suring the last call to searchFrameAtGridPoint() or searchHighResImage(). | |
| IplImage * | foveaRepresentation |
| A visually informative representation of the IPP Foveal represention. | |
| OpenCVHaarDetector * | detector |
| A pointer to the oject detector used in searching. By exposing this variable, it is easy to switch out the object detector that is applied to an IPP, or to change its properties. | |
Friends | |
| std::ostream & | operator<< (std::ostream &ofs, ImagePatchPyramid *a) |
| Write to a file. | |
| std::istream & | operator>> (std::istream &ifs, ImagePatchPyramid *a) |
| Read from a file. |
Auxilliary Tool:
The main data structure for the MIPOMDP algorithm. It is reponsible for generating the MIPOMDP observation vector. The ImagePatchPyramid (IPP) is described in detail in Butko & Movellan 2009 (see Related Publications).
The IPP data structure divides an image up into grid-cells. It then extracts image patches comprising different numbers of grid-cells, and scales them down to a common size, and searches each patch for the target object. Any objects that are found in any grid-cell in any patch are added to a count-vector element corresponding to that grid-cell. This count-vector forms the bases for the MIPOMDP Observation.
In order to perform the above behavior, an IPP needs to know how big the images it receives are, to what smaller size it should scale each image patch, the size (height/width) of the grid-cell tiling of the image, how many image patches there will be, the size (height/width) in grid-cells of each image patch, and what object detector to apply.
| ImagePatchPyramid::ImagePatchPyramid | ( | CvSize | inputImageSize, |
| CvSize | subImageSize, | ||
| CvSize | gridSize, | ||
| int | numSubImages, | ||
| CvMat * | subImageGridPoints, | ||
| OpenCVHaarDetector * | detector | ||
| ) |
Main Constructor: Manually create an IPP.
An IPP needs to know how big the images it receives are, to what smaller size it should scale each image patch, the size (height/width) of the grid-cell tiling of the image, how many image patches there will be, the size (height/width) in grid-cells of each image patch, and what object detector to apply.
| inputImageSize | The size of the images that will be given to the IPP to turn into MIPOMDP observations. This allocates memory for underlying data, but it can be changed easily later if needed without recreating the object by calling the changeInputSize() functions. |
| subImageSize | The common size to which all image patches will be reduced, creating the foveation effect. The smaller subImageSize is, the faster search is, and the more extreme the effect of foveation. This allocates memory for underlying data, but it can be changed easily later if needed without recreating the object by calling the changeInputSize() functions. |
| gridSize | Size of the discretization of the image. The number of POMDP states is the product of the demensions of this size (e.g. 21x21). |
| numSubImages | Number of Patches in the Image Patch Pyramid. |
| subImageGridPoints | A matrix that describes the size and shape of each level (patch) of the IP Pyramid. This must be a matrix with size [numSubImages x 2]. Each row contains the width and height of the corresponding levels. These should be in order of *decreasing* size, so that the largest Image Patch is first. For example, in Butko and Movellan CVPR 2009, we used [21 21; 15 15; 9 9; 3 3]. Finaly, note that it is not necessary that the largest patch cover the entire image. However, when the largest patch is the same size as grid-cell-matrix, special optimizations become available that reduce the complexity of the algorithm when the same image, or same frame of video, is fixated multiple times. |
| detector | A pointer to an object detector. This object detector will be applied to each patch in the IPP, forming the basis for the MIPOMDP observation model. |
| ImagePatchPyramid::ImagePatchPyramid | ( | ) |
Placeholder Constructor.
Used to create a placeholder for an IPP, which can then be read from a file stream using the >> operator. Typical usage for this constructor is:
ipp = new ImagePatchPyramid();
in >> ipp;
| ImagePatchPyramid::~ImagePatchPyramid | ( | ) | [virtual] |
Default Destructor.
Deallocates all memory associated with the IPP.
| void ImagePatchPyramid::changeInputImageSize | ( | CvSize | newInputSize, |
| CvSize | newSubImageSize | ||
| ) |
Change the size of the input image and the downsampled image patches.
| newInputSize | The size of the next image that will be searched. |
| newSubImageSize | The desired size of the downsampled image patches. If the subImageSize is too small (below getMinSize()), the smallest scale is dropped and subImageSize is scaled up proportionally to the next scale. This process is repeated until subImageSIze is greater than getMinSize(). By default, minSize is 60x40. |
| void ImagePatchPyramid::changeInputImageSize | ( | CvSize | newInputSize ) |
Change the size of the input image and the downsampled image patches. Omitting a newSubImageSize causes the smallest-used-scale to have a 1-1 pixel mapping with the downsampled image patch -- i.e. information is not lost in the smallest scale.
| newInputSize | The size of the next image that will be searched. |
| CvSize ImagePatchPyramid::getMinSize | ( | ) |
Get the minimum allowed subImageSize.
If the subImageSize is too small (below getMinSize()), the smallest scale is dropped and subImageSize is scaled up proportionally to the next scale. This process is repeated until subImageSIze is greater than getMinSize(). By default, minSize is 60x40.
| int ImagePatchPyramid::getNumScales | ( | ) |
The total number of levels that the IP Pyramid has.
Note that this may be different from the number of scales that the IP Pyramid is *using*. If the subImageSize is too small (below getMinSize()), the smallest scale is dropped and subImageSize is scaled up proportionally to the next scale. This process is repeated until subImageSIze is greater than getMinSize(). To find out how many scales that the IPP is using, call getUsedScales().
| int ImagePatchPyramid::getSameFrameOptimizations | ( | ) |
Check whether same-frame optimizations are being used.
Under certain conditions, the computation needed to search a frame a second time are less than the computations needed to search it a first time. In these conditions, the same-frame optimizations will automatically be used. However, this requires setting setNewImage() each time the image to search changes (i.e. a new frame). If you are in a situation in which you know that each frame will only be fixated at one point, you may wish to turn same-frame optimizations off.
| CvSize ImagePatchPyramid::getSubImageSize | ( | ) |
The common reference size that image patches are down-scaled to.
This is not necessarily the value set in the constructor, or in changeInputImageSize(). If the requested subImageSize is too small (below getMinSize()), the smallest scale is dropped and subImageSize is scaled up proportionally to the next scale. This process is repeated until subImageSIze is greater than getMinSize().
| int ImagePatchPyramid::getUsedScales | ( | ) |
The total number of levels that the IP Pyramid is currently using.
Note that this may be different from the number of scales that the IP Pyramid has. If the subImageSize is too small (below getMinSize()), the smallest scale is dropped and subImageSize is scaled up proportionally to the next scale. This process is repeated until subImageSIze is greater than getMinSize(). To find out how many scales that the IPP is has, call getNumScales().
| CvRect ImagePatchPyramid::getVisibleRegion | ( | CvPoint | searchPoint ) |
Find the region of the belief map that is visible in any scales when fixating a grid-point.
NOTE: We assume that all patches are concentric, and that the largest image patch comes first.
| searchPoint | The grid-cell center of fixation. |
| void ImagePatchPyramid::saveVisualization | ( | IplImage * | grayFrame, |
| CvPoint | searchPoint, | ||
| const char * | base_filename | ||
| ) |
Save a variety of visual representations of the process of fixating with an IPP to image files.
This method saves a series of .png image files, each with a prefix given by base_filename. Images with the following suffix are created:
Additionally, one CSV file is created, suffix "FaceCounts.csv", which records the output of the object detector on the foveated representation in each grid-cell.
| grayFrame | The image to search. This image should have size inputImageSize, and be of type IPL_DEPTH_8U with a single channel. |
| searchPoint | The center of fixation. |
| base_filename | All of the files generated by this function will be given this as a prefix. |
| void ImagePatchPyramid::searchFrameAtGridPoint | ( | IplImage * | grayFrame, |
| CvPoint | searchPoint | ||
| ) | [virtual] |
The main method for generating an observation vector: given an image, generate a count of object-detector firings in each grid-cell based on a fixation point. After this method is called, the resulting observation is stored in the objectCount element.
| grayFrame | The image to search. This image should have size inputImageSize, and be of type IPL_DEPTH_8U with a single channel. |
| searchPoint | The grid-cell center of fixation. |
| CvPoint ImagePatchPyramid::searchHighResImage | ( | IplImage * | grayFrame ) | [virtual] |
Apply the object detector to the entire image. This is used for comparing the speed and accuracy of the foveated search strategy. After this method is called, the count of objects that the object detector found in each grid-cell in the high resolution image is stored in objectCount. The location of the object is inferred as being the grid-cell with the highest count.
| grayFrame | The image to search. This image should have size inputImageSize, and be of type IPL_DEPTH_8U with a single channel. |
| void ImagePatchPyramid::setGeneratePreview | ( | int | flag ) |
Turns on/off the code that modifies foveaRepresentation to visualize the process of fixating.
| flag | Set to 0 if visualization is not desired (more efficient) or to 1 if visualization is desired. |
| void ImagePatchPyramid::setMinSize | ( | CvSize | minsize ) |
Set the minimum allowed subImageSize.
If the subImageSize is too small (below getMinSize()), the smallest scale is dropped and subImageSize is scaled up proportionally to the next scale. This process is repeated until subImageSIze is greater than getMinSize(). By default, minSize is 60x40.
The will have no effect on the current subImageSize, or getUsedScales() until changeInputImageSize() is called.
| minsize | The minimum allowed subImageSize. |
| void ImagePatchPyramid::setNewImage | ( | ) |
Tell the IPP not to use the next-frame optimizations for the next frame.
Every time you are searching an image that is different from the one you searched before, this should be set (unless same-frame optimizations are turned off by the useSameFrameOptimizations() function).
When interfacing with the IPP via the MIPOMDP class, setNewImage() is always called for all search methods except searchFrameAtGridPoint().
| void ImagePatchPyramid::setObjectDetectorSource | ( | std::string | newFileName ) |
Change the file used by the object detector for doing detecting. This is critical if a weights file is located at an absolute path that may have changed from training time.
When an ObjectDetector is loaded from disk, it will try to reload its weights file from the same source used in training. If this fails, a warning will be printed, and the detector's source will need to be set.
| void ImagePatchPyramid::useSameFrameOptimizations | ( | int | flag ) |
Set whether same-frame optimizations are being used.
Under certain conditions, the computation needed to search a frame a second time are less than the computations needed to search it a first time. In these conditions, the same-frame optimizations will automatically be used. However, this requires setting setNewImage() each time the image to search changes (i.e. a new frame). If you are in a situation in which you know that each frame will only be fixated at one point, you may wish to turn same-frame optimizations off.
Generally same-frame optimizations should not be turned on unless you know that they were turned on automatically. Turning them on when inappropriate will lead to incorrect behavior. In general, it is appropriate to turn them on if the first scale (largest scale) in the IPP is the same size as entire visual field.
| flag | If 0, Same Frame Optimizations will not be used. If 1, Same Frame Optimizations will be used regardless of whether or not it's appropriate. Be careful setting this to 1. |
A pointer to the oject detector used in searching. By exposing this variable, it is easy to switch out the object detector that is applied to an IPP, or to change its properties.
For example, with an OpenCVHaarDetector, the search granularity and minimum-patch-size parameters can be changed.
| IplImage* ImagePatchPyramid::foveaRepresentation |
A visually informative representation of the IPP Foveal represention.
This is meant as an image that is appropriate for display in a GUI, to visualize the algorithm in action. The image has the same size as inputImageSize. In order to increase efficiency, generation of this visualization should be disabled if it is not going to be accessed. This can be achieved by calling setGeneratePreview(0).
| IplImage* ImagePatchPyramid::objectCount |
Number of times the object-detector fired in each grid-cell suring the last call to searchFrameAtGridPoint() or searchHighResImage().
Has IplImage type IPL_DEPTH_8U, 1 channel.


Reports local variables referenced before assignment.
Example:
x = 0 if x > 10: b = 3 print(b)
The IDE reports a problem for print(b). A possible fix is:
print(b)


Try some of these toys from Santa's Online Toy Bag.
Please plan on waiting quite a while for some of these toys to download the first time. After that, they should load faster the next time you visit.
FaceMaker
Etch A Etch
Mr. Edible Starchy Tuber Head
Back
Page Design by
Misery Bay Publications


Comet parameter: decoy_search
- This parameter controls whether or not an internal decoy search is performed.
- Comet generates decoys by reversing each target peptide sequence, keeping the
N-terminal or C-terminal amino acid in place (depending on the "sense" value of the
digestion enzyme specified by search_enzyme_number).
For example, peptide DIGSESTK becomes decoy peptide TSESGIDK for a tryptic search
and peptide DVINHKGGA becomes DAGGKHNIV for an Asp-N search.
- Valid parameter values are 0, 1, or 2:
- 0 = no decoy search (default)
- 1 = concatenated decoy search. Target and decoy entries will be scored against
each other and a single result is performed for each spectrum query.
- 2 = separate decoy search. Target and decoy entries will be scored separately
and separate target and decoy search results will be reported.
- The default value is "0" if this parameter is missing.
Example:
decoy_search = 0
decoy_search = 1
decoy_search = 2


Suggest programming languages!
, the primary language you should learn is . This programming language is ideal to help you develop back end software.
Additionally, you should learn and to be flexible in other areas of programming needs.


Hi again! My name is Jonathan and I am in the Columbus, Ohio area. I have 4+ years of experience as a Front End Web Developer. I have primarily built responsive, interactive, and media rich web apps, but I've created games from time to time as well.
I started learning code with C and C++. Then moved over to scripting languages, and then web development languages. What I learned originally has carried over to the tools I use and learn now.
My primary toolset consists of HTML5, CSS3, and Javascript. I also have experience with PHP, Sass, Bootstrap, Git, Grunt, Photoshop, Flash, and Maya.
I enjoy taking on coding challenges and creating responsive web interactions.


The HMRC prototype kit
This kit lets you rapidly create HTML prototypes of HMRC services.
It contains all you need to prototype anything from simple static pages to complex, data-driven transactions.
About this page
We recommend you add links to your prototype to this page, rather than delete it. You'll find this page in the kit at '/app/views/index.html'.
You can change the service name by editing the file '/app/config.js'.


The Spotify backend is consists of a multitude of individual services. One such service is the music recommendation service, which is responsible for finding and recommending new tracks to Spotify users, according to their music taste.
The music recommendation service has lately been getting some pretty negative feedback from users. The word out on Twitter is that even monkeys could find better music recommendations!
Therefore, upper management has made an informed decision that the next version of the music recommendation service shall be operated entirely by monkeys. As product manager for the music recommendation service, your job is to make sure that the monkeys do a good job.
You have therefore decided to write a computer program that helps monkeys find good track recommendations for Spotify users.
This is all entirely fictional of course.
The task consists of implementing a program to play the Monkey Music game. The goal of the game is to score points by gathering track recommendations and giving them to a Spotify user.
Every game of Monkey Music is broken up into a number of turns.
Every turn, your program will be executed and fed information about the current state of the level by reading from stdin
. Your program responds by printing one command to stdout
. The command decides what your monkey does during the current turn.
Fate decides the order in which monkeys execute their commands in a turn.
Before every turn, execution of your program starts. After every turn, execution of your program stops.

When a track is delivered, you will recieve a score according to how well the track fits the music taste of the user. The player with the highest score at the end of the game will be the winner.
You should try to get as high a score as possible. {. tip}
Every game is played for a limited amount of turns. This limit is different for different levels.
The game ends when the turn limit is reached.
Every time your program is executed, the execution time will be measured. Every level has a total time limit, that your program should not exceed.
 Afte sleeping for 5
turns, the remaining execution time of your program will be replenished.
The number of tracks your monkey can pick up and hold at any given time is called carrying capacity.
The carrying capacity of your monkey is different for every level.
The level is a n x m
grid of cells. It is sent to the standard input of your program.
 Every monkey is identified by a unique numerical id.
#
Walls are inanimate objects that monkeys cannot pass through.
[URI]
Tracks are identified by their unique Spotify URI. Every track URI starts with spotify:track:
, followed by 22
alphanumerical characters.
Example: spotify:track:5H85hOp2oMlhMh9JlkdJP2
.
Tracks can be picked up and carried around by monkeys.
U
The user is where monkeys deliver their track recommendations. Monkeys are scored for every track delivered to the user, according to how well the track fits the user’s music taste.
[SPACE]
Nothing to do here.
A cell can only contain one thing at any time.
How well tracks match the music taste of a user is decided by the user’s toplists.
Every Spotify user has a track toplist, an album toplist and an artist toplist. Every entry in a toplist is a comma-separated string of metadata.
The toplists are sent to the standard input of your program on the following formats:
First an integer n
, followed by n
lines of track metadata entries.
n
track,album,artist,year
track,album,artist,year
...
First an integer n
, followed by n
lines of album metadata entries.
[n]
album,artist,year
album,artist,year
...
First an integer n
, followed by n
lines of artist metadata entries.
n
artist
artist
...
You will also receive a list of artists that the user does not like.
First an integer n
, followed by n
lines of artist entries.
n
artist
artist
...
Spotify does not actually keep toplists of disliked artists. ;)
Each track is scored according to the user toplists by placing it into 1 out of 5 score tiers.
There are three positive tiers: 1
, 2
and 3
. There are two negative tiers, -1
and -2
The following criteria decide which tier a track belongs to:
The track artist is in the user’s disliked artist toplist. To recommend one of these tracks is an epic fail.
The track is already in the user’s track toplist. There is not much point in recommending it.
The track artist is in the user’s artist toplist.
If track album in the user’s album toplist.
The year of the track belongs to the user’s top decade.
This is an interesting one. Every user has a top decade, which is the decade that is most prominent in the user’s track toplist and album toplist.
Your track will be scored according to it’s tier:
Tier -2: -16 points
Tier -1: -4 points
Tier 1: 4 points
Tier 2: 16 points
Tier 3: 64 points
Tier 3 tracks are obviously very valuable, so be on the lookout for these.
The game consists of two different phases.
The first phase is the initialization phase, it occurs once every game.
During the initialization phase, your program will be given information about the level that will be useful during the entire course of the game.
The information that can be read from stdin
during the init
phase is:
INIT\n
M[id]\n
[WIDTH]\n
[HEIGHT]\n
[TURN LIMIT]\n
[n]\n
[TRACK],[ALBUM],[ARTIST],[YEAR]\n
[n]\n
[ALBUM],[ARTIST],[YEAR]\n
[n]\n
[ARTIST]\n
[n]\n
[ARTIST]\n
"INIT"
width
of the mapheight
of the mapturn limit
of the gameAfter the initialization phase, execution of your program will stop until the next phase.
Make sure to keep the data from the initialization phase in a persistent cache!
After the initialization phase, a number of turn phases will follow.
The total number of turn phases is decided by the turn limit of the level.
The information that can be read from stdin
during a turn phase is:
TURN\n
M[ID]\n
[TURN NUMBER]\n
[REMAINING CAPACITY]\n
[REMAINING TIME]\n
[n]\n
[URI],[TRACK],[ALBUM],[ARTIST],[YEAR]\n
[LEVEL]\n
"TURN"
After reading the turn information from stdin
, your program will print a command for your monkey to stdout
.
Commands are sent from the standard output of your program. In each turn of the game, every monkey executes one command.
Commands which the monkeys can execute are:
[MOVE] | [METADATA LOOKUP] | B,[COMMAND],[COMMAND],[COMMAND]
You can command the monkey to move in the four cardinal directions using the commands:
W
Moves the monkey one cell to the left.
E
Moves the monkey one cell to the right.
N
Moves the monkey one cell up.
S
Moves the monkey one cell down.
Trying to move to an already occupied cell will casue the monkey to stand still for the duration of the round.
You can lookup the metadata of a track on the level by issuing a metadata lookup command:
spotify:track:......................
You will recieve the result of the metadata lookup the following turn.
Your monkey must every turn choose between moving and looking up the metadata of a track!
B,[COMMAND],[COMMAND],[COMMAND]
Once every game, the monkey can issue a boost command and then issue three other comma separated commands during the same turn.
You can only issue the boost command once every game. Choose wisely!
The turn input after having issued this command:
B,W,spotify:track:5H85hOp2oMlhMh9JlkdJP2,spotify:track:5H85hOp2oMlhMh9JlkdJP2
could look like:
TURN
10
M1
1
4529
2
spotify:track:5H85hOp2oMlhMh9JlkdJP2,TODO,TODO,TODO,TODO
spotify:track:5H85hOp2oMlhMh9JlkdJP2,TODO,TODO,TODO,TODO
When standing next to a track and executing a move command toward the track, your monkey will remain in the same cell and pick up the track.
Once a track is picked up, there is no way to get rid of it but to deliver it.
When standing next to the user and issuing a move command toward the track, your monkey will remain in the same cell and deliver all currently carried tracks to the user. You will then recieve score according to the score system.
Be careful about picking up negative tier tracks. You’ll have to deliver them.
Monkey Music depends on Ruby 1.9.
If your OS does not provide it by default, you can always get it using RVM.
To install the challenge runtime:
> gem install monkeymusic
To get started quickly:
> monkeymusic demo
To see something on the screen:
> monkeymusic -p demo_player
You can probably learn a lot about the game from reading the demo_player
.
Your competition entry is to be handed in as a zip archive containing everything needed to run your program.
When unpacked, your program should be runned through an executable file called runme
.


GO analysis of differentially expressed lncRNAs covering three domains: Biological processes, cellular components and molecular functions. The red columns indicate terms associated with cell components, the green columns indicate terms associated with molecular functions and the blue columns indicate terms associated with biological processes. GO, Gene Ontology; lncRNA, long non-coding RNA.


Happy New Year everyone!
This is the second part of a series about the Serverless framework. Read the first part to get up and running.
First I’ll describe the webservice I’m building. Then we’ll configure our environment for Typescript and Mocha testing.
Poor man’s dual factor authentication via a password of the day
I’m the technical lead for an enterprise application which is in use by about 100 large multinational corporates. As part of the installation process, we ask for a registration code which is based on the date. The customer has to call us to get the password of the day. This gives us an opportunity to engage with the customer and also gives us little more control. It’s a simple form of dual factor authorization where one of the factors requires a phone call.
In the old days, the routine for checking the validity of the password was part of the source code, but we’ve since moved the checking function to a web service.
It’s my goal to replace this ‘password of the day’ check function with a Serverless module. The service will take a password as input and check that it matches the password of the day.
It’s a tiny, simple, rarely-used web service but AWS lambda is still a great fit for it. Although lambda can scale if necessary, in this case it’s about not having the hassle of administering a server.
Mocha and TypeScript
New version 0.3.1
Edit: since the original version of this post, a new version 0.3.1 of Serverless was released. I have updated the tutorial below to reflect the newer version. Also, TSD has been deprecated in favour of Typings so I’ve updated to use Typings instead.
Let’s do things properly and set up a testing framework.
Make sure you’re in the component folder.
$ cd nodejscomponent
Then we’ll install Mocha.
$ npm install mocha --save-dev
<EMAIL_ADDRESS>node_modules/mocha
├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>└──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>Next we’ll install TypeScript. Of course you can use plain javascript if you prefer. My background is C#: I make fewer dumb mistakes with TypeScript. It looks like there is a typescript plugin in the pipeline which will make typescript integration even easier in the future, but for now:
$ npm install typescript --save
<EMAIL_ADDRESS>node_modules/typescript
$ npm install typings -g
/usr/local/bin/typings -> /usr/local/lib/node_modules/typings/dist/bin/typings.js
<EMAIL_ADDRESS>/usr/local/lib/node_modules/typings
├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>... etc ...
Initialise typings.
$ typings init
-> written typings.json
Now we add the type definitions for Mocha.
$ typings install mocha --ambient --save
? Found mocha typings for DefinitelyTyped. Continue? Yes
Installing<EMAIL_ADDRESS>(DefinitelyTyped)...
mocha
└── (No dependencies)
We need a config file for the TypeScript compiler. This goes in the same module directory (back/modules/potd in my case).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
Now make a subdirectory for our TypeScript source files.
$ mkdir src
$ mkdir src/test
Next up we need to modify the package.json file to add a scripts section. Only the "scripts"
section needs changing.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
We’ve finished setting up everything for TypeScript and Mocha. Whenever you run tsc
, any TypeScript files in /src will get compiled to javascript in /lib. And running npm test
will compile and then run any Mocha tests in /lib/test.
The source code so far is on GitHub. Note the default .gitignore file skips the admin.env file which contains the (sensitive) AWS keys in it so don’t forget to add your own.
In the next post we’ll create a TypeScript class for the guts of the lambda function which checks the password of the day, along with some corresponding Mocha tests, also written in TypeScript.


Added "Sacrifice confimation" option into confirmation option menu.
Sacrifice stuff will never always hide/show again.
Added unlimited tree study preset system by replacing the former tree study preset system. This also includes "Import" and "Rename" buttons like in load menu.
"Dimension Supersonic" cost scaling will now start at 200,000 dimension boosts and the cost multiplier will now increase for every 20,000 dimension boosts.
Bulk dimensional boosts now works faster for "Dimension Supersonic" cost scaling.
Recolored post-"meta-dimensions" outline/buttons to cyan for my custom theme.
Added my funny news tickers. It will appear when you get "Fake News" achievement.
Moved "Delete" buttons to after "Rename" buttons.
Moved "Import" button to before "NG+" button.
Added the support of NG++ v2.1x saves.
Added the support of Nyan Cat's NG-- mode and migration support of almost of all NG-- saves.
Code refactored.
Changed all "dimensional shifts/boosts" phrases to "dimension shifts/boosts".
Fixed a bug that the game breaks if canvases doesn't load.
Fixed a bug that sacrifice confirmation box would hide when you get a galaxy, infinitied, or eternitied.
Fixed a bug that tachyon particle gain would display wrong with tachyon particle gain formula without dil4 upgrades bought.
Fixed a bug that hotkeys can take action while importing.
Fixed a bug that renaming the save to empty does not change the title until you reload.
Fixed all NG-- bugs, I think.
Fixed a bug that importing NG++ v1 save from another site does not work.
Fixed a bug that importing a save fails for some more cases.
Increased the Sixth Dimension cost 10 times because Omsi will fix it for next unmodded AD update.
Percentage rates for all dimensions does not show up until you unlocked the next dimension that produces it.
Added commas and large number formatting above 1e12 for eighth dimension amount display, dimension shift/boost amount, amounts for all types of galaxies, and time theorems for below 100 K.
Changed the free galaxy requirement and rebuyable cost scalings and to start at either 580 free galaxies or 1e45 DT.
s33 notice would now pop up at About page instead of the game page.
Recolored "meta-dimensions" outline/buttons to cyan for my custom theme.
Updated the NG++ mode to support meta-dimensions and uses dan-simon's balancing try instead of mine.
Changed the description of meta-dimension shift/boost reset button to "Reset meta-dimensions for a new dimension/the boost".
Added MA at the end for "buy meta-dimensions" buttons.
Added best meta-antimatter and meta-dimension shift/boosts for save progresses.
Added meta-antimatter change for offline progress pop-up.
Dimension boost costs will now have quadratic "Dimension Supersonic" cost scaling when you reach 190,000 dimension boosts. It will increase the cost multiplier by 4 for every 5,000 dimension boosts.
Added "import" button at load menu. Importing the save at here creates the new save with imported data.
Added a rename save option for all saves at load menu.
Added a new representation statistics that starts at e750,739,888 antimatter.
For my custom theme, text in inputs are now displayed differently.
Even more code refactoring.
Fixed a capitalization error for "Reset the game for a new dimension".
Fixed an article & capitalization errors for "Reset the game for the boost".
Fixed a typo for infinitied stat with banked infinities.
Fixed a typo for a missing period from several "I need to become Eternal." cases
Fixed a bug that manual dimension boosts never work if you did not switched to break_infinity.js yet.
Fixed a bug that floating text always show up while clicking dimension boost reset button if you turned on "Floating text" option.
Fixed a bug that the box shows yellow when hovering if "Until: 10" button is available to buy.
Fixed a bug that you can change sacrifice autobuyer's value into NaN if you did not switched to break_infinity.js yet.
Fixed a bug that s21 button would never hide when changing to an another save.
Fixed a bug that s33 does not work if About is clicked.
Fixed a bug that your NG++ save would migrate/update first while creating a new save.
7/26/2018
For my custom theme, IP gain rates for this crunch will never hide anymore.
Replicanti interval will now have centiseconds displayed for below a second.
Few more code refactoring.
Fixed a typo for replicanti upgrades.
Fixed a bug that you can get NaN costs when you buy 10 of dimensions if you switched to break_infinity.js.
Fixed a bug that last 10 infinities' IP/min peak does not update if you did not infinitied yet.
Fixed a bug that you can change big crunch autobuyer's value into NaN if you did not switched to break_infinity.js yet.
Fixed a bug that you can get NaN attributes for buying IP/EP mult upgrades if you switched to break_infinity.js.
Fixed a bug that "wait for IP/EP" values did not formatted for some cases.
Fixed a bug that big crunch autobuyers does not work for post-break if you switched to break_infinity.js.
Fixed a bug that IP/EP min peak does not reset while switching the save.
Fixed a bug that centiseconds display always have 2 decimal points after units.
Fixed a bug that you can't buy non-rebuyable NG++ dilation upgrades.
7/25/2018
Replicanti interval will now display as microseconds, seconds, minutes, and even beyond.
Eternitied stat will now display shortened and formatted values for 1 T or over.
Added tachyon particles for save description when you unlocked dilation.
More code refactoring to shorten the code.
At how to play page, you could show more buttons when you unlock something instead than reaching before it while avoiding spoilers.
Updated the guide link.
Fixed a bug that trying to unlock dilation would probably fail if you have exactly 13,000 total TTs.
Fixed a bug that some attributes does not update while dilating time, clicking "Disable dilation" button, or loading a different save.
Fixed a bug that you would gain more tachyon particles while disabling dilation.
Fixed a bug that in NG++, buying the last tickspeed cost multiplier increase upgrade could decrease tickspeed cost multiplier increase by 0.35x.
Fixed a bug that in NG+ and non-NG++, buying the last dimensional cost multiplier increase upgrade could decrease tickspeed cost multiplier increase by 0.35x.
Fixed a bug that migrating saves or deleting the save could clear all your saves instead.
Fixed a bug that save migrating does not work if you turned off NG- mode.
Fixed a bug that in how to play page, some buttons would disappear when you progress further if you avoid the spoilers.
Fixed a bug that in how to play page, time dilation would never disappear.
7/24/2018
Migrated the time dilation update to my modification.
Added percentages for tachyon particle gain and "This is what I have to do to get rid of you." achievement.
You can now get multiple dilated galaxies in one tick.
Removed "To be continued..." box.
Greek & Infinity notation exponents can now formatted as different notations.
Revamped the save system to add "new save" button, "delete save" button, made progress more necessary, and support infinite saves.
Updated the migration process to migrate all of your saves possible.
Moved "Challenge confirmation" and "Eternity confirmation" options into a new sub-options called "Confirmations".
Added "Dilation confirmation" button.
Changed the layout for options.
Replaced "New Game Minus" option with a toggleable NG- mode option for creating a new save.
Added the support for NG- v2 saves.
Updated the update process of NG- saves to update your NG- save into the latest version.
Added the support for NG+ and NG++ saves.
Welcome pop-up does not hide anymore until you click "Okay".
Expanded the size of welcome pop-up.
For NG++, cost scalings for dilated galaxy requirement and rebuyable upgrades are added starting from 400 galaxies and 1e35 dilated time.
Clicking "dilate time" and "disable dilation" does not delay the tick by 0.25s anymore.
Refactored some code which merges some lines into fewer lines.

Fixed a bug that dimension cost multiplier increase upgrade would show unrounded multipliers if you completed EC6 and EC11 5 times.
Fixed a bug that autobuyers would never hide until you reload the game.
Fixed some logarithmica_numerus.js bugs.
Fixed a bug from how to play page.
Fixed a bug from about page.
7/21/2018
Added "Welcome to NG-!" pop-up.
Added update process for importing your old NG- saves.
Switching game/decimal modes, or importing/resetting the save does not pop up "Game saved" anymore.
Switching game modes does not reload anymore if the saves have same Decimal modes.
For now on, the game will load the save when the page is fully loaded.
Fixed a bug that tickspeed does not hide when you load the save.
Fixed a bug that the notation option shows "Notation: Emojis" when you switch your notation to Cancer, save it, then reload it back.
Fixed a bug that the save is belong to NG- mode saves for some corrected saves.
Fixed a bug that exporting the save might accidentally scroll the page.
Reduced the code by some lines, code refactoring, and unnecessary/useless code removal.
The next build would include all of Time Dilation update and more improvements. Stay tuned!
6/10/2018
Updated break_infinity.js to v1.0.6.
Fixed the cost for dimension cost multiplier increase upgrade does not appear.
Fixed some cases for 2x dimension cost multiplier increase upgrade to display as 2.0x.
6/8/2018
Readded break_infinity.js with a new option called "Decimal mode".
Added new game minus option.
If you did not infinitied several times in this eternity or eternitied several times, some summaries disappear and last 10 runs changes.
Shortened time display now includes 'X:XX', 'XX:XX', 'X:XX:XX', 'Xd, XX:XX:XX', and 'Xy, Xd, XX:XX:XX'.
Renamed "Challenge X" name to a reward but following by "challenge" in "Challenge Records" subtab to avoid confusion.
Added "Percentage to "What do I have to do to get rid of you"". This will be shown when you have no time studies bought and unlocked "But I wanted an another prestige layer..." but did not unlock "What do I have to do to get rid of you" yet.
Fixed the bug that tickspeed can be displayed as "1000 / 1eX".
Fixed the game broke when you have more than 3 galaxies.
Fixed dark & light time studies in my modification theme.
6/6/2018
Changed a lot of things to have faster performance.
In Automated Dimensional Boosts challenge, "Antimatter Galaxies" now includes replicated galaxies and "Distant Antimatter Galaxies".
Dimension cost multiplier increase and tickspeed cost multiplier increase displays multiplier as integer if the multiplier is integer.
Extended Standard even more to includes attillion (= e(3e18+3)) and beyond.
Added two notations, Greek and Game Percentages.
Removed some links in the footer.
Added Eternity Challenges in "How to play" page.
Fixed scientific always display '1eX' instead of '1.00eX'.
Fixed dimensions and tickspeed cost always display 'X.XXeX' instead of 'XeX' for pre-infinity.
Fixed some cases for checking dimension boosts is available and so galaxies.
Fixed broken tickspeed reduction when the tickspeed reduction reaches over 1.79e308.
Fixed the bug that tab switching doesn't work after eternitying if you are in emptiness tab.
Fixed my modification theme.
5/31/2018
Added my modification


|
|
Single Carrot's End of Season Soiree: $5 all you can drink
Friday Night Only!
Single Carrot Theatre
120 W. North Ave. Baltimore, Maryland 21201
Regular Price: $10
BaltimoreFunSavers Discounted Price: $5
Move to Baltimore? Check.
Create theatre company? Check.
Get a theatre? Check.
Produce five show season? Check.
Looks like the only thing left on Single Carrot Theatre's Year One agenda is... "Party Your Brains Out?"
In that case, we're throwing a party and all of you are invited. I know we ask you all to do a lot. Donate, support us, attend our shows, come to our events, give us your first born, etc. But this time, we're giving back. All you have to do this time is celebrate.
SINGLE CARROT THEATRE'S END-OF-THE-SEASON BASH:
Where: Single Carrot Theatre: 120 W. North Ave.
(at Load of Fun)
When: Friday, the 22nd. Doors at 7:30. We go till question mark.
 Or you can pay $5 per drink at some bar. It's a tough call, I know.
What to wear: Party attire. Black tie. Or jeans. Or whatever.
 And any friends who share that desire.
Peace. Love. Party.
We'll see you friday.
-SCT
443-844-9253 for questions.
To Redeem:
Show up and say "funsaver" or "Collegetown" or "Fun guide" or something remotely close to one of those.
|
|
|
|
Mount Clare Museum House
August 21, 22 and 23, 2008
Tours on the hour from 10am to 3pm
Mount Clare Museum House
1500 Washington Boulevard Baltimore, Maryland 21230
Regular Price: 6
BaltimoreFunSavers Discounted Price: 3
Enjoy a tour of Mount Clare Museum House, the 1760 Georgian mansion of Charles Carroll, Barrister, and his wife, Margaret Tilghman Carroll. Mount Clare has an outstanding collection of 18th and 19th Century furniture and decorative arts. When one admission at the regular price is purchased, get one admission of equal or lesser value at half price.
To Redeem:
Must be redeemed in person upon arrival. Please bring a copy of this offer with you. Cannot be combined with any other discount or offer.
|
|
|
|
bare the musical
Fri, Aug 15, 2008 - 8pm
Sat, Aug 16, 2008 - 8pm
Sun, Aug 17, 2008 - 2pm
Fri, Aug 22, 2008 - 8pm
Sat, Aug 23, 2008 - 8pm
Sun, Aug 24, 2008 - 2pm
Theatre Project
45 West Preston Street
Baltimore, Maryland 21201
Regular Price: 20.00
BaltimoreFunSavers Discounted Price: 10.00
bare is a contemporary new musical that tells the story of a group of students at a Catholic boarding school struggling to find their own voices in a modern world that both embraces and isolates them. In their search to be "seen" and "heard" these teenagers confront coming of age, coming out, and coming to terms with the often contradictory but always high expectations of parents, peers, and the Church.
In the spirit of shows like RENT and Spring Awakening, bare the musical speaks through an urgent, pop/rock influenced score that is the ceaseless pulse for the "operatic love story" that is its heart. Sold out audiences across the country have thrilled to the emotional, honest, and exciting new musical that is bare
To Redeem:
MUST order online - www.barethemusicalinbaltimore.com
MUST use Discount Code: FG-bare
NO Telephone Orders
NO Walk-ins
|
|
|
|
Last Chance to see ALL FAITHS BEAUTIFUL!
Museum is open Tues-Sun, 10AM–6PM
American Visionary Art Museum
800 Key Highway Baltimore, Maryland 21230
Regular Price: 12.00
BaltimoreFunSavers Discounted Price: 6.00
American Visionary Art Museum's 13th Annual thematic mega art exhibition, "All Faiths Beautiful," closes on August 31! Print out this offer and enjoy 2-for-1 admission until the closing date!
"All Faiths Beautiful: From Atheism to Zoroastrianism, Respect for Diversity of Belief" features highly personal works of art from 50 artists on the subject of belief – with a special emphasis on those who honor the beauty in faiths other than their own. Be it deeply personal and whole, a work in progress, a torment or a blessing, what we believe — and especially what we don't — is our most precious life-shaping human experience. ALL FAITHS BEAUTIFUL is a communal invitation to the public of all ages to deepen their own exploration of personal, idiosyncratic, and traditional belief.
To Redeem:
Print out this offer and present to our fantastic Front Desk staff. Oh, and bring a friend to enjoy the exhibition with...the offer is for 2-for-1 Admission to the entire museum.
|
|
|
|
October 2nd Performance of Mozart's Lord Giovanni
Thursday, October 2, 2008 at 7:30pm
Opera Vivente
811 Cathedral Street Baltimore, Maryland 21201
Regular Price: 55
BaltimoreFunSavers Discounted Price: 27.50
4 Section I seats to Opera Vivente's production of Lord Giovanni on Thursday, October 2, 2008.
To Redeem:
Please call the box office at<PHONE_NUMBER> to purchase discounted tickets.
|
|
|
|
Helena Troy
Fri, Aug 15, 2008 at 8pm
Sat, Aug 16, 2008 at 8pm
Sun, Aug 17, 2008 at 2pm
Fri, Aug 22, 2008 at 8pm
Sat, Aug 23, 2008 at 8pm
Sun, Aug 24, 2008 at 2pm
Fri, Aug 29, 2008 at 8pm
Sat, Aug 30, 2008 at 8pm
Sun, Aug 31, 2008 at 2pm
Spotlighters
817 Saint Paul Street Baltimore, Maryland 21202
Regular Price: 18.00
BaltimoreFunSavers Discounted Price: 9.00
Helena Troy
by Rich Espey
directed by William Hauserman
Aug 15 - Aug 31, 2008
Fri & Sat - 8pm; Sun - 2pm
Theatre Athena is bankrupt!
Amy's play could save it - if she can convince her boyfriend that it is from Ancient Greece, satisfy two divas, help a friend come out, and resurrect an old professor.
To Redeem:
Must Order online at www.spotlighters.org
Must Use Discount Code: FG-BPFHT
NO Telephone Orders
NO Email Orders
|
|
|
|
Thursday Night Premium Seating Subscription
Thursday, October 2, 2008 at 7:30pm
Thursday, March 12, 2009 at 7:30pm
Thursday, May 7, 2009 at 8pm
Opera Vivente
811 Cathedral Street Baltimore, Maryland 21201
Regular Price: 148.50
BaltimoreFunSavers Discounted Price: 74.25
1 Section I ticket to each of our Thursday night performances during the 2008-2009 season (Mozart's Lord Giovanni, Monteverdi's The Coronation of Poppea, Britten's Albert Herring)
To Redeem:
Please call the box office at<PHONE_NUMBER> to purchase FunGuide priced subscription.
|
|
|


{% extends "base.html" %} {% block title %} {{ title }} {% endblock %} {% block content %}
Some quick example text to build on the card title and make up the bulk of the card's content.