The fastai library simplifies training fast and accurate neural nets using modern best practices. See the fastai website to get started. The library is based on research into deep learning best practices undertaken at fast.ai
, and includes “out of the box” support for vision
, text
, tabular
, and collab
(collaborative filtering) models.
Interesting posts about NN from scratch using R:
To be able to give examples of optimizer steps, we will need some steppers, like the following:
library(magrittr)
library(fastai)
tst_param = function(val, grad = NULL) {
"Create a tensor with `val` and a gradient of `grad` for testing"
res = tensor(val) %>% float()
if(is.null(grad)) {
grad = tensor(val / 10)
} else {
grad = tensor(grad)
}
res$grad = grad %>% float()
res
}
tensor(1.)
tensor(0.9000)
tensor(0.1000)
This method will loop over all param groups, then all parameters for which grad
is not NULL
and call each function in stepper
, passing it the parameter p with the hyper-parameters in the corresponding dict in hypers
.
params = L(lapply(0:3, function(x) tst_param(x)))
opt = Optimizer(params, sgd_step, lr=0.1)
opt$step()
str(params$items)
List of 4
$ :tensor(0.)
$ :tensor(0.9900)
$ :tensor(1.9800)
$ :tensor(2.9700)
params = L(lapply(0:3, function(x) tst_param(x)))
opt = Optimizer(params, list(weight_decay, sgd_step), lr=0.1, wd = 0.1)
opt$step()
str(params$items)
List of 4
$ :tensor(0.)
$ :tensor(0.9800)
$ :tensor(1.9600)
$ :tensor(2.9400)
params = L(lapply(0:3, function(x) tst_param(x)))
opt = Optimizer(params, sgd_step, lr=0.1)
try(params[3]$grad <- NULL,
TRUE)
params[3]$grad
opt$step()
str(params$items)
List of 4
$ :tensor(0.)
$ :tensor(0.9900)
$ :tensor(1.9800)
$ :tensor(3.)
params = L(lapply(0:3, function(x) tst_param(x)))
opt = Optimizer(list(params[0:1],params[2:3]), sgd_step, lr=0.1)
opt$hypers$items[[1]][[1]] = 0.01
opt$step()
str(params$items)
List of 4
$ :tensor(0.)
$ :tensor(0.9990)
$ :tensor(1.9800)
$ :tensor(2.9700)
params = L(lapply(0:3, function(x) tst_param(x)))
opt = Optimizer(params, list(weight_decay, sgd_step), lr=0.1, wd = 0.1)
opt$zero_grad()
str(params$items)
List of 4
$ :tensor(0.)
$ :tensor(1.)
$ :tensor(2.)
$ :tensor(3.)
Keeps track of the avg grads of p
in state
with mom
.
`dampening = FALSE
gives the classical formula for momentum in SGD:
whereas dampening = TRUE
makes it an exponential moving average:
dampening = FALSE
gives the classical formula for momentum in SGD:
whereas dampening = TRUE
makes it an exponential moving average:
p = tst_param(c(1,2,3), c(4,5,6))
state = average_sqr_grad(p, sqr_mom = 0.99, dampening = FALSE)
p$grad$pow(2)
# tensor([16., 25., 36.])
p$grad$pow(2) * 1.99
# tensor([31.8400, 49.7500, 71.6400])
state = average_sqr_grad(p, sqr_mom = 0.99)
p$grad$pow(2) * 1e-2
# tensor([0.1600, 0.2500, 0.3600])
state = average_sqr_grad(p, sqr_mom = 0.99)
p$grad$pow(2)*(0.01*0.99+0.01)
# tensor([0.3184, 0.4975, 0.7164])
params = L(lapply(0:3, function(x) tst_param(x)))
opt = Optimizer(params, sgd_step, lr = 0.1)
opt$freeze_to(1L)
A Optimizer
for SGD with lr
and mom
and params
.
Optional weight decay of wd
is applied, as true weight decay (decay the weights directly) if decouple_wd = TRUE
else as L2
regularization (add the decay to the gradients).
params = L(lapply(0:3, function(x) tst_param(x)))
opt = SGD(params, lr = 0.1)
opt$step()
str(params$items)
List of 4
$ :tensor(0.)
$ :tensor(0.9900)
$ :tensor(1.9800)
$ :tensor(2.9700)
params = L(lapply(0:3, function(x) tst_param(x)))
opt = SGD(params, lr = 0.1, mom = 0.9)
opt$step()
str(params$items)
List of 4
$ :tensor(0.)
$ :tensor(0.9900)
$ :tensor(1.9800)
$ :tensor(2.9700)
Test weight decay, notice how we can see that L2
regularization is different from weight decay even for simple SGD with momentum.
params = L(lapply(0:3, function(x) tst_param(x)))
#Weight decay
opt = SGD(params, lr=0.1, mom=0.9, wd=0.1)
opt$step()
str(params$items)
List of 4
$ :tensor(0.)
$ :tensor(0.9800)
$ :tensor(1.9600)
$ :tensor(2.9400)
params = L(lapply(0:3, function(x) tst_param(x)))
#L2 reg
opt = SGD(params, lr=0.1, mom=0.9, wd=0.1, decouple_wd=FALSE)
opt$step()
str(params$items)
List of 4
$ :tensor(0.)
$ :tensor(0.9800)
$ :tensor(1.9600)
$ :tensor(2.9400)
A Optimizer
for RMSProp
with lr
, sqr_mom
, mom
and params
.
RMSProp
was introduced by Geoffrey Hinton in his course. What is named sqr_mom
here is the alpha
in the course. Optional weight decay of wd
is applied, as true weight decay (decay the weights directly) if decouple_wd = TRUE
else as L2 regularization (add the decay to the gradients).
params = tst_param(c(1:3), c(0.1,0.2,0.3))
opt = RMSProp(params, lr=0.1)
opt$step()
opt$step()
step = (-0.1 * 0.1) / (sqrt((0.01*0.99+0.01) * 0.1**2) + 1e-8)
params; tensor(c(step, 1+step, 2+step))
tensor([-0.7089, 0.2911, 1.2911])
tensor([-0.7089, 0.2911, 1.2911])
params = tst_param(c(1:3), c(0.1,0.2,0.3))
opt = RMSProp(params, lr=0.1, mom=0.9)
opt$step()
opt$step()
step = (- 0.1 * (0.1 + 0.9*0.1)) / (sqrt((0.01*0.99+0.01) * 0.1**2) + 1e-8)
params; tensor(c(step, 1+step, 2+step))
tensor([-1.3469, -0.3469, 0.6531])
tensor([-1.3469, -0.3469, 0.6531])
A Optimizer for Adam with lr
, mom
, sqr_mom
, eps
and params
.
Adam was introduced by Diederik P. Kingma and Jimmy Ba in Adam: A Method for Stochastic Optimization. For consistency across optimizers, we renamed beta1
and beta2
in the paper to mom
and sqr_mom
. Note that our defaults also differ from the paper (0.99 for sqr_mom
or beta2
, 1e-5 for eps
). Those values seem to be better from our experiments in a wide range of situations.
Optional weight decay of wd
is applied, as true weight decay (decay the weights directly) if decouple_wd=TRUE
else as L2
regularization (add the decay to the gradients).
params = tst_param(c(1:3), c(0.1,0.2,0.3))
opt = Adam(params, lr=0.1, wd=0)
opt$step()
step = (-0.1 * 0.1) / (sqrt(0.1**2) + 1e-8)
params; tensor(c(1+step, 2+step, 3+step))
tensor([0.9000, 1.9000, 2.9000])
tensor([0.9000, 1.9000, 2.9000])
tensor([0.8000, 1.8000, 2.8000])
tensor([0.8000, 1.8000, 2.8000])
An Optimizer for Adam with lr
, mom
, sqr_mom
, nus
, eps
and params
.
params = tst_param(c(1:3), c(0.1,0.2,0.3))
opt = QHAdam(params, lr=0.1)
opt$step()
step = (-0.1 * (((1-0.7) * 0.1) + (0.7 * 0.1)) )/ (
sqrt(((1-1.0) * 0.1**2) + (1.0 * 0.1**2)) + 1e-8)
params; tensor(c(1+step, 2+step, 3+step))
# tensor([0.9000, 1.9000, 2.9000])
# tensor([0.9000, 1.9000, 2.9000])
opt$step()
params; tensor(c(1+2*step, 2+2*step, 3+2*step))
# tensor([0.8000, 1.8000, 2.8000])
# tensor([0.8000, 1.8000, 2.8000])
A Optimizer
for Adam
with lr
, mom
, sqr_mom
, eps
and params
.
The LARS optimizer was first introduced in Large Batch Training of Convolutional Networks then refined in its LARC variant (original LARS is with clip=FALSE
). A learning rate is computed for each individual layer with a certain trust_coefficient
, then clipped to be always less than lr
.
Optional weight decay of wd
is applied, as true weight decay (decay the weights directly) if decouple_wd = TRUE
else as L2
regularization (add the decay to the gradients).
params = list(tst_param(c(1:3), c(0.1,0.2,0.3)), tst_param(c(1:3), c(0.01,0.02,0.03)))
opt = Larc(params, lr=0.1)
opt$step()
#First param local lr is 0.02 < lr so it's not clipped
opt$state[params[[1]]]['local_lr']
$local_lr
tensor(0.0200)
$local_lr
[1] 0.1
params = list(tst_param(c(1:3), c(0.1,0.2,0.3)), tst_param(c(1:3), c(0.01,0.02,0.03)))
opt = Larc(params, lr=0.1, clip = FALSE)
opt$step()
#Second param local lr is 0.2 > lr so it's clipped
opt$state[params[[1]]]['local_lr']
$local_lr
tensor(0.0200)
$local_lr
tensor(0.2000)
A Optimizer
for Adam with lr
, mom
, sqr_mom
, eps
and params
.
LAMB was introduced in Large Batch Optimization for Deep Learning: Training BERT in 76 minutes. Intuitively, it’s LARC applied to Adam. As in Adam, we renamed beta1 and beta2 in the paper to mom and sqr_mom. Note that our defaults also differ from the paper (0.99 for sqr_mom
or beta2
, 1e-5 for eps
). Those values seem to be better from our experiments in a wide range of situations.
Optional weight decay of wd
is applied, as true weight decay (decay the weights directly) if decouple_wd=TRUE
else as L2 regularization (add the decay to the gradients).
tensor([0.7840, 1.7840, 2.7840])
params = tst_param(c(1:3), c(0.1,0.2,0.3))
p = params$data$clone()
g = tensor(c(0.1,0.2,0.3))
opt = Lookahead(SGD(params, lr=0.1))
for(i in 1:5) {
opt$step()
}
#first 5 steps are normal SGD steps
params; p - g * 0.5
# tensor([0.9500, 1.9000, 2.8500])
# tensor([0.9500, 1.9000, 2.8500])
#Since k=6, sixth step is a moving average of the 6 SGD steps with the initial weight
opt$step()
params; p * 0.5 + (p-g*0.6) * 0.5
# tensor([0.9700, 1.9400, 2.9100])
# tensor([0.9700, 1.9400, 2.9100])


|
JB.Toolkit
A collection of useful classes, extensions and tools written in C# to aid in a wide variety of development. With components for ASP Net MVC, Winform and Console applications. Integrations for Google, AD and SQL and pre-written implementations / helpers for a variety of tasks... Just Because.
|
Directories | |
| directory | Assembly |
| directory | CSV |
| directory | Database |
| directory | Domain |
| directory | Encryption |
| directory | Extensions |
| directory | FuzzyLogic |
| directory | |
| directory | Imaging |
| directory | InterProcessComms |
| directory | JQueryDataTableViewModels |
| directory | licenses |
| directory | Logger |
| directory | obj |
| directory | PdfDoc |
| directory | Properties |
| directory | RegularExpressions |
| directory | Streams |
| directory | Web |
| directory | Windows |
| directory | WinForms |
| directory | XmlDoc |
| directory | Zip |
Files | |
| file | GlobalSuppressions.cs |


One of the most glaring examples of fear mongering in the attempt to hinder the truth from coming out is the 2003 film The Core.
The film's main focus is how dangerous it is to go to the center of the earth. This is a direct assault on free thinking. The film is a cautionary tale aimed to dissuade the public from ever finding out the truth about the center of the earth by their own emperical testing.
The educational system is rife with lies told about the center of the earth. Take for instance the classic earth cutaway used to indoctrinate the unwashed masses.
The educators of the world would have you believe that the earths center is a hot ball of molten metal to try and keep you away from it.  Simply go outside and put your hand on the ground. Surely if the earth was full of molten metal, the ground would be extremely hot. WRONG


We make a wide variety of products; unfortunetly none of them are available at the moment. On the plus side our janitor is auctioning off a lightly used plunger from storage closet three.
Iterative approaches to corporate strategy foster collaborative thinking to further the overall value proposition.
Buy Now


#include <SFML/Network/Export.h>
#include <SFML/Network/IpAddress.h>
#include <SFML/Network/Types.h>
#include <stddef.h>
Go to the source code of this file.
Functions | |
| CSFML_NETWORK_API void | sfFtpListingResponse_destroy (sfFtpListingResponse *ftpListingResponse) |
| Destroy a FTP listing response. More... | |
| CSFML_NETWORK_API sfBool | sfFtpListingResponse_isOk (const sfFtpListingResponse *ftpListingResponse) |
| Check if a FTP listing response status code means a success. More... | |
| CSFML_NETWORK_API sfFtpStatus | sfFtpListingResponse_getStatus (const sfFtpListingResponse *ftpListingResponse) |
| Get the status code of a FTP listing response. More... | |
| CSFML_NETWORK_API const char * | sfFtpListingResponse_getMessage (const sfFtpListingResponse *ftpListingResponse) |
| Get the full message contained in a FTP listing response. More... | |
| CSFML_NETWORK_API size_t | sfFtpListingResponse_getCount (const sfFtpListingResponse *ftpListingResponse) |
| Return the number of directory/file names contained in a FTP listing response. More... | |
| CSFML_NETWORK_API const char * | sfFtpListingResponse_getName (const sfFtpListingResponse *ftpListingResponse, size_t index) |
| Return a directory/file name contained in a FTP listing response. More... | |
| CSFML_NETWORK_API void | sfFtpDirectoryResponse_destroy (sfFtpDirectoryResponse *ftpDirectoryResponse) |
| Destroy a FTP directory response. More... | |
| CSFML_NETWORK_API sfBool | sfFtpDirectoryResponse_isOk (const sfFtpDirectoryResponse *ftpDirectoryResponse) |
| Check if a FTP directory response status code means a success. More... | |
| CSFML_NETWORK_API sfFtpStatus | sfFtpDirectoryResponse_getStatus (const sfFtpDirectoryResponse *ftpDirectoryResponse) |
| Get the status code of a FTP directory response. More... | |
| CSFML_NETWORK_API const char * | sfFtpDirectoryResponse_getMessage (const sfFtpDirectoryResponse *ftpDirectoryResponse) |
| Get the full message contained in a FTP directory response. More... | |
| CSFML_NETWORK_API const char * | sfFtpDirectoryResponse_getDirectory (const sfFtpDirectoryResponse *ftpDirectoryResponse) |
| Get the directory returned in a FTP directory response. More... | |
| CSFML_NETWORK_API void | sfFtpResponse_destroy (sfFtpResponse *ftpResponse) |
| Destroy a FTP response. More... | |
| CSFML_NETWORK_API sfBool | sfFtpResponse_isOk (const sfFtpResponse *ftpResponse) |
| Check if a FTP response status code means a success. More... | |
| CSFML_NETWORK_API sfFtpStatus | sfFtpResponse_getStatus (const sfFtpResponse *ftpResponse) |
| Get the status code of a FTP response. More... | |
| CSFML_NETWORK_API const char * | sfFtpResponse_getMessage (const sfFtpResponse *ftpResponse) |
| Get the full message contained in a FTP response. More... | |
| CSFML_NETWORK_API sfFtp * | sfFtp_create (void) |
| Create a new Ftp object. More... | |
| CSFML_NETWORK_API void | sfFtp_destroy (sfFtp *ftp) |
| Destroy a Ftp object. More... | |
| CSFML_NETWORK_API sfFtpResponse * | sfFtp_connect (sfFtp *ftp, sfIpAddress server, unsigned short port, sfTime timeout) |
| Connect to the specified FTP server. More... | |
| CSFML_NETWORK_API sfFtpResponse * | sfFtp_loginAnonymous (sfFtp *ftp) |
| Log in using an anonymous account. More... | |
| CSFML_NETWORK_API sfFtpResponse * | sfFtp_login (sfFtp *ftp, const char *userName, const char *password) |
| Log in using a username and a password. More... | |
| CSFML_NETWORK_API sfFtpResponse * | sfFtp_disconnect (sfFtp *ftp) |
| Close the connection with the server. More... | |
| CSFML_NETWORK_API sfFtpResponse * | sfFtp_keepAlive (sfFtp *ftp) |
| Send a null command to keep the connection alive. More... | |
| CSFML_NETWORK_API sfFtpDirectoryResponse * | sfFtp_getWorkingDirectory (sfFtp *ftp) |
| Get the current working directory. More... | |
| CSFML_NETWORK_API sfFtpListingResponse * | sfFtp_getDirectoryListing (sfFtp *ftp, const char *directory) |
| Get the contents of the given directory. More... | |
| CSFML_NETWORK_API sfFtpResponse * | sfFtp_changeDirectory (sfFtp *ftp, const char *directory) |
| Change the current working directory. More... | |
| CSFML_NETWORK_API sfFtpResponse * | sfFtp_parentDirectory (sfFtp *ftp) |
| Go to the parent directory of the current one. More... | |
| CSFML_NETWORK_API sfFtpResponse * | sfFtp_createDirectory (sfFtp *ftp, const char *name) |
| Create a new directory. More... | |
| CSFML_NETWORK_API sfFtpResponse * | sfFtp_deleteDirectory (sfFtp *ftp, const char *name) |
| Remove an existing directory. More... | |
| CSFML_NETWORK_API sfFtpResponse * | sfFtp_renameFile (sfFtp *ftp, const char *file, const char *newName) |
| Rename an existing file. More... | |
| CSFML_NETWORK_API sfFtpResponse * | sfFtp_deleteFile (sfFtp *ftp, const char *name) |
| Remove an existing file. More... | |
| CSFML_NETWORK_API sfFtpResponse * | sfFtp_download (sfFtp *ftp, const char *distantFile, const char *destPath, sfFtpTransferMode mode) |
| Download a file from a FTP server. More... | |
| CSFML_NETWORK_API sfFtpResponse * | sfFtp_upload (sfFtp *ftp, const char *localFile, const char *destPath, sfFtpTransferMode mode) |
| Upload a file to a FTP server. More... | |
| enum sfFtpStatus |
Status codes possibly returned by a FTP response.
| enum sfFtpTransferMode |
| CSFML_NETWORK_API sfFtpResponse* sfFtp_changeDirectory | ( | sfFtp * | ftp, |
| const char * | directory | ||
| ) |
Change the current working directory.
The new directory must be relative to the current one.
| ftp | Ftp object |
| directory | New working directory |
| CSFML_NETWORK_API sfFtpResponse* sfFtp_connect | ( | sfFtp * | ftp, |
| sfIpAddress | server, | ||
| unsigned short | port, | ||
| sfTime | timeout | ||
| ) |
Connect to the specified FTP server.
The port should be 21, which is the standard port used by the FTP protocol. You shouldn't use a different value, unless you really know what you do. This function tries to connect to the server so it may take a while to complete, especially if the server is not reachable. To avoid blocking your application for too long, you can use a timeout. Using 0 means that the system timeout will be used (which is usually pretty long).
| ftp | Ftp object |
| server | Name or address of the FTP server to connect to |
| port | Port used for the connection |
| timeout | Maximum time to wait |
| CSFML_NETWORK_API sfFtp* sfFtp_create | ( | void | ) |
Create a new Ftp object.
| CSFML_NETWORK_API sfFtpResponse* sfFtp_createDirectory | ( | sfFtp * | ftp, |
| const char * | name | ||
| ) |
Create a new directory.
The new directory is created as a child of the current working directory.
| ftp | Ftp object |
| name | Name of the directory to create |
| CSFML_NETWORK_API sfFtpResponse* sfFtp_deleteDirectory | ( | sfFtp * | ftp, |
| const char * | name | ||
| ) |
Remove an existing directory.
The directory to remove must be relative to the current working directory. Use this function with caution, the directory will be removed permanently!
| ftp | Ftp object |
| name | Name of the directory to remove |
| CSFML_NETWORK_API sfFtpResponse* sfFtp_deleteFile | ( | sfFtp * | ftp, |
| const char * | name | ||
| ) |
Remove an existing file.
The file name must be relative to the current working directory. Use this function with caution, the file will be removed permanently!
| ftp | Ftp object |
| name | File to remove |
| CSFML_NETWORK_API void sfFtp_destroy | ( | sfFtp * | ftp | ) |
Destroy a Ftp object.
| ftp | Ftp object to destroy |
| CSFML_NETWORK_API sfFtpResponse* sfFtp_disconnect | ( | sfFtp * | ftp | ) |
Close the connection with the server.
| ftp | Ftp object |
| CSFML_NETWORK_API sfFtpResponse* sfFtp_download | ( | sfFtp * | ftp, |
| const char * | distantFile, | ||
| const char * | destPath, | ||
| sfFtpTransferMode | mode | ||
| ) |
Download a file from a FTP server.
The filename of the distant file is relative to the current working directory of the server, and the local destination path is relative to the current directory of your application.
| ftp | Ftp object |
| remoteFile | Filename of the distant file to download |
| localPath | Where to put to file on the local computer |
| mode | Transfer mode |
| CSFML_NETWORK_API sfFtpListingResponse* sfFtp_getDirectoryListing | ( | sfFtp * | ftp, |
| const char * | directory | ||
| ) |
Get the contents of the given directory.
This function retrieves the sub-directories and files contained in the given directory. It is not recursive. The directory parameter is relative to the current working directory.
| ftp | Ftp object |
| directory | Directory to list |
| CSFML_NETWORK_API sfFtpDirectoryResponse* sfFtp_getWorkingDirectory | ( | sfFtp * | ftp | ) |
Get the current working directory.
The working directory is the root path for subsequent operations involving directories and/or filenames.
| ftp | Ftp object |
| CSFML_NETWORK_API sfFtpResponse* sfFtp_keepAlive | ( | sfFtp * | ftp | ) |
Send a null command to keep the connection alive.
This command is useful because the server may close the connection automatically if no command is sent.
| ftp | Ftp object |
| CSFML_NETWORK_API sfFtpResponse* sfFtp_login | ( | sfFtp * | ftp, |
| const char * | userName, | ||
| const char * | password | ||
| ) |
Log in using a username and a password.
Logging in is mandatory after connecting to the server. Users that are not logged in cannot perform any operation.
| ftp | Ftp object |
| name | User name |
| password | Password |
| CSFML_NETWORK_API sfFtpResponse* sfFtp_loginAnonymous | ( | sfFtp * | ftp | ) |
Log in using an anonymous account.
Logging in is mandatory after connecting to the server. Users that are not logged in cannot perform any operation.
| ftp | Ftp object |
| CSFML_NETWORK_API sfFtpResponse* sfFtp_parentDirectory | ( | sfFtp * | ftp | ) |
Go to the parent directory of the current one.
| ftp | Ftp object |
| CSFML_NETWORK_API sfFtpResponse* sfFtp_renameFile | ( | sfFtp * | ftp, |
| const char * | file, | ||
| const char * | newName | ||
| ) |
Rename an existing file.
The filenames must be relative to the current working directory.
| ftp | Ftp object |
| file | File to rename |
| newName | New name of the file |
| CSFML_NETWORK_API sfFtpResponse* sfFtp_upload | ( | sfFtp * | ftp, |
| const char * | localFile, | ||
| const char * | destPath, | ||
| sfFtpTransferMode | mode | ||
| ) |
Upload a file to a FTP server.
The name of the local file is relative to the current working directory of your application, and the remote path is relative to the current directory of the FTP server.
| ftp | Ftp object |
| localFile | Path of the local file to upload |
| remotePath | Where to put to file on the server |
| mode | Transfer mode |
| CSFML_NETWORK_API void sfFtpDirectoryResponse_destroy | ( | sfFtpDirectoryResponse * | ftpDirectoryResponse | ) |
Destroy a FTP directory response.
| ftpDirectoryResponse | Ftp directory response to destroy |
| CSFML_NETWORK_API const char* sfFtpDirectoryResponse_getDirectory | ( | const sfFtpDirectoryResponse * | ftpDirectoryResponse | ) |
Get the directory returned in a FTP directory response.
| ftpDirectoryResponse | Ftp directory response |
| CSFML_NETWORK_API const char* sfFtpDirectoryResponse_getMessage | ( | const sfFtpDirectoryResponse * | ftpDirectoryResponse | ) |
Get the full message contained in a FTP directory response.
| ftpDirectoryResponse | Ftp directory response |
| CSFML_NETWORK_API sfFtpStatus sfFtpDirectoryResponse_getStatus | ( | const sfFtpDirectoryResponse * | ftpDirectoryResponse | ) |
Get the status code of a FTP directory response.
| ftpDirectoryResponse | Ftp directory response |
| CSFML_NETWORK_API sfBool sfFtpDirectoryResponse_isOk | ( | const sfFtpDirectoryResponse * | ftpDirectoryResponse | ) |
Check if a FTP directory response status code means a success.
This function is defined for convenience, it is equivalent to testing if the status code is < 400.
| ftpDirectoryResponse | Ftp directory response |
| CSFML_NETWORK_API void sfFtpListingResponse_destroy | ( | sfFtpListingResponse * | ftpListingResponse | ) |
Destroy a FTP listing response.
| ftpListingResponse | Ftp listing response to destroy |
| CSFML_NETWORK_API size_t sfFtpListingResponse_getCount | ( | const sfFtpListingResponse * | ftpListingResponse | ) |
Return the number of directory/file names contained in a FTP listing response.
| ftpListingResponse | Ftp listing response |
| CSFML_NETWORK_API const char* sfFtpListingResponse_getMessage | ( | const sfFtpListingResponse * | ftpListingResponse | ) |
Get the full message contained in a FTP listing response.
| ftpListingResponse | Ftp listing response |
| CSFML_NETWORK_API const char* sfFtpListingResponse_getName | ( | const sfFtpListingResponse * | ftpListingResponse, |
| size_t | index | ||
| ) |
Return a directory/file name contained in a FTP listing response.
| ftpListingResponse | Ftp listing response |
| index | Index of the name to get (in range [0 .. getCount]) |
| CSFML_NETWORK_API sfFtpStatus sfFtpListingResponse_getStatus | ( | const sfFtpListingResponse * | ftpListingResponse | ) |
Get the status code of a FTP listing response.
| ftpListingResponse | Ftp listing response |
| CSFML_NETWORK_API sfBool sfFtpListingResponse_isOk | ( | const sfFtpListingResponse * | ftpListingResponse | ) |
Check if a FTP listing response status code means a success.
This function is defined for convenience, it is equivalent to testing if the status code is < 400.
| ftpListingResponse | Ftp listing response |
| CSFML_NETWORK_API void sfFtpResponse_destroy | ( | sfFtpResponse * | ftpResponse | ) |
Destroy a FTP response.
| ftpResponse | Ftp response to destroy |
| CSFML_NETWORK_API const char* sfFtpResponse_getMessage | ( | const sfFtpResponse * | ftpResponse | ) |
Get the full message contained in a FTP response.
| ftpResponse | Ftp response object |
| CSFML_NETWORK_API sfFtpStatus sfFtpResponse_getStatus | ( | const sfFtpResponse * | ftpResponse | ) |
Get the status code of a FTP response.
| ftpResponse | Ftp response object |
| CSFML_NETWORK_API sfBool sfFtpResponse_isOk | ( | const sfFtpResponse * | ftpResponse | ) |
Check if a FTP response status code means a success.
This function is defined for convenience, it is equivalent to testing if the status code is < 400.
| ftpResponse | Ftp response object |


Equilinox is a new company focused on bringing the best possible services to its customers. These services range from webhosting to on-site dedicated servers, making sure to give you as many options as possible for the highest quality. Thanks to the dedication of its employees, Equilinox can guarantee a great service rendered and we are so confident in our ability to satisfy our clients that we will offer a refund if you find yourself unsatisfied by what we can bring to the table.
We offer different types of web hosting to accommodate our clients with the best choice for them. Below, you will find the options that we can provide you and the details that ensue.
Here at Equilinox, your experience is our top priority. If you have any questions or concerns, please contact us at


csictf Admin
The admin would love to see your favourite color! You can send it to him via this form.


Use the Firebug console to control the Outfox echo service on this page (e.g., outfox.echo.ping('some text');
). The method console.debug
is set as the callback for responses from the service.
See http://code.google.com/p/outfox/wiki/EchoServiceTutorial for an explanation of how this echo service was built.
Sample code copyright (c) 2008, 2009 Carolina Computer Assistive Technology under the terms of the BSD license.


AWS::NetworkManager::CustomerGatewayAssociation
Specifies an association between a customer gateway, a device, and optionally, a link. If you specify a link, it must be associated with the specified device. The customer gateway must be connected to a VPN attachment on a transit gateway that's registered in your global network.
You cannot associate a customer gateway with more than one device and link.
Syntax
To declare this entity in your AWS CloudFormation template, use the following syntax:
JSON
{ "Type" : "AWS::NetworkManager::CustomerGatewayAssociation", "Properties" : { "CustomerGatewayArn" :
String
, "DeviceId" :String
, "GlobalNetworkId" :String
, "LinkId" :String
} }
YAML
Type: AWS::NetworkManager::CustomerGatewayAssociation Properties: CustomerGatewayArn:
String
DeviceId:String
GlobalNetworkId:String
LinkId:String
Properties
CustomerGatewayArn
-
The Amazon Resource Name (ARN) of the customer gateway.
Required: Yes
Type: String
Minimum:
0
Maximum:
500
Pattern:
[\s\S]*
Update requires: Replacement
DeviceId
-
The ID of the device.
Required: Yes
Type: String
Minimum:
0
Maximum:
50
Pattern:
[\s\S]*
Update requires: Replacement
GlobalNetworkId
-
The ID of the global network.
Required: Yes
Type: String
Minimum:
0
Maximum:
50
Pattern:
[\s\S]*
Update requires: Replacement
LinkId
-
The ID of the link.
Required: No
Type: String
Minimum:
0
Maximum:
50
Pattern:
[\s\S]*
Update requires: Replacement
Return values
Ref
When you pass the logical ID of this resource to the intrinsic Ref
function, Ref
returns the ID of the global network and the Amazon Resource Name
(ARN) of the customer gateway. For example: global-network-01231231231231231|arn:aws:ec2:eu-central-1:123456789012:customer-gateway/cgw-00112233aabbcc112
.
For more information about using the Ref
function, see Ref.
Examples
Customer Gateway Association
The following example template creates a global network, device, customer gateway, VPN connection, and transit gateway. It registers the transit gateway in the global network, and creates an association between the customer gateway and device. The creation of the customer gateway association depends on the VPN connection and transit gateway registration.
JSON
{ "AWSTemplateFormatVersion": "2010-09-09", "Description": "Create a global network and customer gateway association", "Resources": { "GlobalNetwork": { "Type": "AWS::NetworkManager::GlobalNetwork" }, "Device": { "Type": "AWS::NetworkManager::Device", "Properties": { "Description": "Chicago office device", "GlobalNetworkId": { "Ref": "GlobalNetwork" }, "Location": { "Address": "227 W Monroe St, Chicago, IL 60606", "Latitude": "41.8", "Longitude": "-87.6" } } }, "TransitGateway": { "Type": "AWS::EC2::TransitGateway" }, "TransitGatewayRegistration": { "Type": "AWS::NetworkManager::TransitGatewayRegistration", "Properties": { "GlobalNetworkId": { "Ref": "GlobalNetwork" }, "TransitGatewayArn": { "Fn::Sub": "arn:aws:ec2:${AWS::Region}:${AWS::AccountId}:transit-gateway/${TransitGateway}" } } }, "CustomerGateway": { "Type": "AWS::EC2::CustomerGateway", "Properties": { "Type": "ipsec.1", "BgpAsn": 65534, "IpAddress": "<IP_ADDRESS>" } }, "VPNConnection": { "Type": "AWS::EC2::VPNConnection", "Properties": { "Type": "ipsec.1", "StaticRoutesOnly": true, "CustomerGatewayId": { "Ref": "CustomerGateway" }, "TransitGatewayId": { "Ref": "TransitGateway" } } }, "CustomerGatewayAssociation": { "DependsOn": [ "VPNConnection", "TransitGatewayRegistration" ], "Type": "AWS::NetworkManager::CustomerGatewayAssociation", "Properties": { "GlobalNetworkId": { "Ref": "GlobalNetwork" }, "DeviceId": { "Fn::GetAtt": [ "Device", "DeviceId" ] }, "CustomerGatewayArn": { "Fn::Sub": "arn:aws:ec2:${AWS::Region}:${AWS::AccountId}:customer-gateway/${CustomerGateway}" } } } } }
YAML
AWSTemplateFormatVersion: 2010-09-09 Description: 'Create a global network and customer gateway association' Resources: GlobalNetwork: Type: AWS::NetworkManager::GlobalNetwork Device: Type: AWS::NetworkManager::Device Properties: Description: Chicago office device GlobalNetworkId: !Ref GlobalNetwork Location: Address: "227 W Monroe St, Chicago, IL 60606" Latitude: "41.8" Longitude: "-87.6" TransitGateway: Type: AWS::EC2::TransitGateway TransitGatewayRegistration: Type: AWS::NetworkManager::TransitGatewayRegistration Properties: GlobalNetworkId: !Ref GlobalNetwork TransitGatewayArn: !Sub 'arn:aws:ec2:${AWS::Region}:${AWS::AccountId}:transit-gateway/${TransitGateway}' CustomerGateway: Type: AWS::EC2::CustomerGateway Properties: Type: ipsec.1 BgpAsn: 65534 IpAddress: <IP_ADDRESS> VPNConnection: Type: AWS::EC2::VPNConnection Properties: Type: ipsec.1 StaticRoutesOnly: true CustomerGatewayId: !Ref CustomerGateway TransitGatewayId: !Ref TransitGateway CustomerGatewayAssociation: DependsOn: - VPNConnection - TransitGatewayRegistration Type: AWS::NetworkManager::CustomerGatewayAssociation Properties: GlobalNetworkId: !Ref GlobalNetwork DeviceId: !GetAtt Device.DeviceId CustomerGatewayArn: !Sub 'arn:aws:ec2:${AWS::Region}:${AWS::AccountId}:customer-gateway/${CustomerGateway}'


Web Robot Controller
startState
goalState
View
Maniplation
IM-Size
Init
Preview
Plan
Execute
Plan & Execute


Coveney: Ireland has obligation to protect Smith’s child
Ireland has an obligation to protect Lisa Smith’s young daughter, Tánaiste Simon Coveney has said.
Mr Coveney has told the Dáil that Ms Smith, who travelled to Syria to support Islamic State, will face Garda questioning on her return to Ireland, but that his primary concern is now for her child
daughter.
Ms Smith and daughter, aged two, are currently being held in a camp along the Turkish-Syrian border.
Mr Coveney said: “There are only two people involved in conversations that we have with the Turkish authorities.
“One is a very young child in a very vulnerable situation.
“And she is my primary concern here. And I believe we have obligations in that regard.”
Responding to Fianna Fáil’s Seán Haughey — who asked if Ms Smith would be questioned by gardaí or if she would be regarded as a person of interest on her return to the country — Mr Coveney said: “There are all sorts of questions around radicalisation, around questioning, around the role of An Garda Síochána if and when Lisa Smith comes home.
“They are questions that we have to deal with comprehensively across Government in multiple different government departments, in particular the Department of Justice and in my department, so we are working closely together to make sure that we do what is appropriate here.
“But as I say my primary concern is a two-year-old little girl who in my view as an Irish citizen, we have an obligation to protect.”
The Tánaiste also confirmed reports members of the Defence Forces had been sent to Turkey, but he said this was solely to support the Irish embassy team and not for the purpose of repatriating Ms Smith and her child.
“It makes sense to have military personnel speaking to military personnel, although some people were suggesting that we were sending over Defence Force personnel to extract Lisa Smith from north east Syria, that is not the case and was never the case, they are providing an important support role, both from a security perspective but also a communications perspective to the ambassador and her team.”


Nothing here {{name}}
"No one likes Bit O' Honey." ~@griffinmcelroy #truth— Aru (@IAmAru) June 10, 2015
"No one likes Bit O' Honey." ~@griffinmcelroy #truth


Johnson extends poll lead in UK election campaign
by Richard GoodWith a little under four weeks to go to the UK general election, Boris Johnson’s Conservative Party has extending its lead in voting intention polls.
The UK Prime Minister has announced all candidates standing for the Conservatives have pledged to support his deal on Britain’s exit from the European Union.
Jeremy Corbyn’s opposition Labour Party will hope to revive its fortunes with a manifesto launch on Thursday — its opinion poll rating is slightly up following the first week of campaigning, but the performance has been overshadowed by the Conservative surge.
Scottish First Minister Nicola Sturgeon has been putting her weight behind the Scottish Nationalist Party’s call for a new independence referendum next year.
Jo Swinson meanwhile has been promising that a Liberal Democrat government would plant 60 million trees a year — but her party’s anti-Brexit stance has not so far led to an opinion poll boost.


Welcome to the WebVR Accessibility Demo
This experience takes place in a small town square
Listed here are the objectives in this demo:
- Orient yourself in the scene
- There are four beacons in every corner of the town square, you can navigate to them by pressing the trigger button on the VR headset.
- Find four points of interest:
- Fountain
- Farmers Market
- People sitting in a outdoors restaurant
- Person feeding pigeons


About Us
Remarkit's team has, as its core value, the passion to strive for the perfect project or service. The basic belief is that if you strive for perfection then at the very least you will hit excellence. Our aim to be successful through the provision of innovative solutions that assist our clients with meeting their technology goals.
One of our key strengths is the ability to see tomorrow's possibilities and challenges today, and through an innovative development process, provide the services to meet them. Remarkit have been described by many of its clients as a company that "just doesn't give up", and who "goes the extra mile" with the inspiring attitude that nothing is “too much bother”.
The client centric values we embrace has lead to a professionalism and commitment that has many times exceeded our client’s expectations.
Remarkit have been independently audited by Grant Thornton New Zealand against Information Security Management (NZISM) controls relevant to Remarkit as a provider of IT disposal services to New Zealand Government agencies


Compose Mail
No emails in this folder.
{{ email.from }}
{{email.dateTimeReceived }}
{{email.subject || " "}}
{{email.subject}}
{{email.from.name}}
{{email.from.emailAddress}}


Emergency ops centre opened at Sabarimala
Round-the-clock facility by KSDMA
by Special CorrespondentThe Kerala State Disaster Management Authority (KSDMA) has opened an Emergency Operations Centre (EOC) at Sabarimala that will function round the clock during the Mandalam-Makaravilakku season.
The EOC has been opened in association with the District Disaster Management Authority, Pathanamthitta. The 18-member EOC will coordinate activities related to disaster mitigation and coordinate with the departments/agencies concerned, particularly the departments of Police, Fire and Rescue Services, and Health.
The EOC will be based at Nilackal with units at Pampa and the Sannidhanam, with each of the units having six staff and officers deputed from the Departments of Police, Fire and Rescue Services, Forest, and Health. The three units are also equipped with communication facilities including wireless, hotlines, laptops and megaphones.
Further, the EOC will keep track of the number of devotees arriving for darshan, leaving the location, and the number present at the Sannidhanam at a given time. Information related to weather updates and water storage in the dams also will be available at the EOC.
Additionally, telephone numbers of various government departments and resource inventory would be available at the EOC, the KSDMA said.


1. Download and unzip the starting project from here:
<EMAIL_ADDRESS>2. Open the project in PyCharm and make sure that all required packages are installed.
(If you are downloading from Repl.it all packages should be pre-installed, but you can always check in the Project Preferences.


Tracks
0 Results
| # | Title | Album | Duration | Listen |
|---|---|---|---|---|
| {{track.popularity}} |
{{track.name}} |
{{track.album.name}} | {{ ((track.duration_ms / 1000) / 60) | number : '1.2-2'}} |
Albums
0 Results


Expert
Include big name in female fashion industry
# Closet
We are a group of friends who have the same concern about gender equality and desire to together affect this problem in someway. Realising that every girl/woman always have trouble in choosing for themself a apropiate outfit without taking too much time and that effect the way they feel about themself. So, to help them improve their confident in their daily life we create this website.
Your
# Closet
Where you get experts advise, so your clothes selection fast and stylish as well. #closet provides endless spaces so you can enjoy your creative workflow. With the science arrangement instead of randomly picking up things, you are completely confident about the ready-made clothes.


vanilla
strawberry
chocolate
9.3.7.b copy element has xforms-binding-exception event
When you try to select a flavor from the select control you must see an
xforms-binding-exception message or a fatal error due to an xforms-binding-exception.
Note: The copy is trying to bind to a different model.
Flavors
xforms-binding-exception
Icecream Order :


Reserve funding
Your funding can be reserved until 18 December 2017. Please review the information below and agree to the terms to activate it.
| Training | Mechatronics engineer: Level 4 |
| Quantity | 5 |
| Government funding | £5,000 |
| Your contribution | £500 |
To reserve your govermnent funding you need to agree to the following:
Agree to the terms and conditions
Agree that you will sign this contract with the ESFA
Agree to pay your £500 share of the funding to your chosen provider


Objectively monetize web-enabled expertise whereas enabled growth successful strategies.
Objectively monetize web-enabled expertise whereas enabled growth successful strategies.
Objectively monetize web-enabled expertise whereas enabled growth successful strategies.
Objectively monetize web-enabled expertise whereas enabled growth successful strategies.
Objectively monetize web-enabled expertise whereas enabled growth successful strategies.
Objectively monetize web-enabled expertise whereas enabled growth successful strategies.
Objectively monetize web-enabled expertise whereas enabled growth successful strategies.
Dynamically productivate reliable action items without an expanded array.
Return PolicyDynamically productivate reliable action items without an expanded array.
Ask a Question


Input Choices
Search Queries
Which input methods were used?
Which input methods were used?
#TODO Tree Map


Otoroshi clustering
Otoroshi can work as a cluster by default as you can spin many Otoroshi servers using the same datastore or datastore cluster. In that case any instance is capable of serving services, Otoroshi admin UI, Otoroshi admin API, etc.
But sometimes, this is not enough. So Otoroshi provides an additional clustering model named Leader / Workers
where there is a leader cluster (control plane), composed of Otoroshi instances backed by a datastore like Redis, Cassandra or Mongo, that is in charge of all writes
to the datastore through Otoroshi admin UI and API, and a worker cluster (data plane) composed of horizontally scalable Otoroshi instances, backed by a super fast in memory datastore, with the sole purpose of routing traffic to your services based on data synced from the leader cluster. With this distributed Otoroshi version, you can reach your goals of high availability, scalability and security.
Otoroshi clustering only uses http internally (right now) to make communications between leaders and workers instances so it is fully compatible with PaaS providers like Clever-Cloud that only provide one external port for http traffic.
Fig. 1: Simplified view
Fig. 2: Deployment view
Cluster configuration
otoroshi {
cluster {
mode = "leader" # can be "off", "leader", "worker"
compression = 4 # compression of the data sent between leader cluster and worker cluster. From -1 (disabled) to 9
leader {
name = ${?CLUSTER_LEADER_NAME} # name of the instance, if none, it will be generated
urls = ["http://<IP_ADDRESS>:8080"] # urls to contact the leader cluster
host = "otoroshi-api.oto.tools" # host of the otoroshi api in the leader cluster
clientId = "apikey-id" # otoroshi api client id
clientSecret = "secret" # otoroshi api client secret
cacheStateFor = 4000 # state is cached during (ms)
}
worker {
name = ${?CLUSTER_WORKER_NAME} # name of the instance, if none, it will be generated
retries = 3 # number of retries when calling leader cluster
timeout = 2000 # timeout when calling leader cluster
state {
retries = ${otoroshi.cluster.worker.retries} # number of retries when calling leader cluster on state sync
pollEvery = 10000 # interval of time (ms) between 2 state sync
timeout = ${otoroshi.cluster.worker.timeout} # timeout when calling leader cluster on state sync
}
quotas {
retries = ${otoroshi.cluster.worker.retries} # number of retries when calling leader cluster on quotas sync
pushEvery = 2000 # interval of time (ms) between 2 quotas sync
timeout = ${otoroshi.cluster.worker.timeout} # timeout when calling leader cluster on quotas sync
}
}
}
}
you can also use many env. variables to configure Otoroshi cluster
otoroshi {
cluster {
mode = ${?CLUSTER_MODE}
compression = ${?CLUSTER_COMPRESSION}
leader {
name = ${?CLUSTER_LEADER_NAME}
host = ${?CLUSTER_LEADER_HOST}
url = ${?CLUSTER_LEADER_URL}
clientId = ${?CLUSTER_LEADER_CLIENT_ID}
clientSecret = ${?CLUSTER_LEADER_CLIENT_SECRET}
groupingBy = ${?CLUSTER_LEADER_GROUP_BY}
cacheStateFor = ${?CLUSTER_LEADER_CACHE_STATE_FOR}
stateDumpPath = ${?CLUSTER_LEADER_DUMP_PATH}
}
worker {
name = ${?CLUSTER_WORKER_NAME}
retries = ${?CLUSTER_WORKER_RETRIES}
timeout = ${?CLUSTER_WORKER_TIMEOUT}
state {
retries = ${?CLUSTER_WORKER_STATE_RETRIES}
pollEvery = ${?CLUSTER_WORKER_POLL_EVERY}
timeout = ${?CLUSTER_WORKER_POLL_TIMEOUT}
}
quotas {
retries = ${?CLUSTER_WORKER_QUOTAS_RETRIES}
pushEvery = ${?CLUSTER_WORKER_PUSH_EVERY}
timeout = ${?CLUSTER_WORKER_PUSH_TIMEOUT}
}
}
}
}
You should use HTTPS exposition for the Otoroshi API that will be used for data sync as sensitive informations are exchanged between control plane and data plane.
You must have the same cluster configuration on every Otoroshi instance (worker/leader) with only names and mode changed for each instance. Some things in leader/worker are computed using configuration of their counterpart worker/leader.
Cluster UI
Once an Otoroshi instance is launcher as cluster Leader, a new row of live metrics tile will be available on the home page of Otoroshi admin UI.
you can also access a more detailed view of the cluster at Settings (cog icon) / Cluster View
Run examples
for leader
java -Dhttp.port=8091 -Dhttps.port=9091 -Dotoroshi.cluster.mode=leader -jar otoroshi.jar
for worker
java -Dhttp.port=8092 -Dhttps.port=9092 -Dotoroshi.cluster.mode=worker \
-Dotoroshi.cluster.leader.urls.0=http://<IP_ADDRESS>:8091 -jar otoroshi.jar


Anonymize a set of variables.
SPSSINC ANON VARIABLES=varnames*
/OPTIONS SVALUEROOT=“prefix” NAMEROOT=nprefix
METHOD=SEQUENTIAL** or TRANSFORM or RANDOM
SEED=number OFFSET=number SCALE=number
MAXRVALUE=positive integer or list of integers
ONETOONE=varnames
MAPPING=“input filespec”
/SAVE NAMEMAPPING=“filespec” VALUEMAPPING=“filespec”“
/HELP]
* Required
** Default
SPSSINC ANON /HELP displays this help and does nothing else.
SPSSINC ANON x y z
/OPTIONS METHOD=RANDOM
/SAVE VALUEMAPPING="c:/temp/values.txt".
This command replaces the values of the specified variables with new values according to one of three methods. It is intended for situations where the true values must be concealed for privacy or other reasons. It can also replace the variables names with anonymous equivalents.
VARIABLES specifies the list of variables to anonymize.
METHOD specifies how to generate the new values. The choices are
System-missing values are treated as the same value across cases, and for TRANSFORM, the new value will also be system missing.
MAXRVALUES, which applies only to the RANDOM method, can be a single integer applied to all variables or a list of as many integers as there are variables being anonymized. For string variables, the range is further limited by the declared string width.
TRANSFORM and SEQUENTIAL will produce unique values as long as, in the case of SEQUENTIAL with string variables, the field is wide enough. For RANDOM, you can specify a list of one or more variables as ONETOONE, which will generate unique values if that is possible. If unique values cannot be generated, the procedure will stop with an error message. Using ONETOONE increases the time and memory requirements.
For repeatability, you can specify a numerical value for SEED that will produce the same results if the syntax is rerun at a later time with the same inputs.
If the variable is a string, SVALUEROOT can specify a string to be prefixed to the new integer values if the string is wide enough.
If NAMEROOT is specified, the variables will be renamed to the form xxxnnn where xxx is the NAMEROOT value and nnn is an integer.
The SAVE parameters create text files containing the mapping of variable names, if any, and old and new values. The new-values file is in csv format. The new values are listed alphabetically by the new value within variable for ease of lookup. As explained above, the inverse mapping is sometimes not unique.
A new-values file can be used as input in a later run by specifying it in MAPPING if the method is SEQUENTIAL or RANDOM. If given, any variable mappings defined in that file are applied to the input values before applying the chosen method. This means that previously encountered values are mapped the same way as they were previously. However, if MAXRVALUE is different or the string width is different, the results are undefined.
There are side effects to this command. Value labels and missing value definitions are cleared, since they no longer apply. You can anonymize date-format variables, but the resulting values will usually not display as the values are not in the valid range for dates. Changing the variable type to numeric will allow the values to display.
/HELP displays this help and does nothing else.


Welcome !
This is my portfolio. You will find some of the projects I did or participated to, with links to the project repository. You can find more details in the project's readme.
Basic Sokoban
I created this game in order to learn Haxe with the Heaps Engine. You can check the source code here, learn more about heaps and haxe, and play it on browser here.
Tidying for Godot
Tidying for Godot is a game created in 48h during the Global Game Jam Online of 2021 by a team of three developpers. You can check the source code here, the game jam entry here, and play it on browser here.
Sudoku javascript
A small sudoku interface developped in javascript. The goal is to focus on the interface, making it easy for anyone to play it. You can check the source code here and test it here.
Polygons of Light
VideoPolygons of Light is a game created in 72h during the 46th edition of the Ludum Dare, by a team of three students, with some help for the music and a bit of game design. Playable on browser on itch.io.
Advent of Code 2019
My participation to advent of code 2019 using ADA. It helped me explore many ADA features I did not know or had difficulties with, and I learned a lot of things. I wrote some feedbacks in the readme while I was doing the challenge.


required
url
email
creditcard
min
max
min-max
pattern
Radio 1
Radio 2
Password
Verify Password
Submit


While developing a mobile app, chances are you will eventually hit a point where you need to test things out on an actual device. Here’s a quick primer on how to get your Ionic app up and running on an android smartphone.
Note: this guide is intended for developers on OS X and it is assumed that you already have a stable/working Ionic app
Step 1: Install the Java Development Kit (JDK) if you don’t have it already
Go to Oracle’s download page and install the latest version of the JDK.
Afterward, I recommend you verify your version of Java here.
Step 2: Install the Android SDK
Download the latest (zipped) SDK package here.
Unzip the package and move the extracted folder to your desired location (I have a “Workspace” directory for things like this).
Step 2.5: Make sure Ionic can access your android development tools
If you try to build your ionic app for android now, it may give you an error saying “ANDROID_HOME” / android
are not defined… To fix this, add the freshly downloaded SDK to your environment by adding these lines to the “.bashrc” file located in your home directory (/Users/[your_name]
):
export ANDROID_HOME="</path/to/android-sdk-macosx>"
export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
Note: You should replace the text in angle brackets with the path to your copy of the SDK
Step 3: Install the relevant Android SDK packages
Download and install the packages specifed on this page, as well as the “SDK Platform” package for Android version 21.
Step 4: Install Apache Ant
Use homebrew to install Apache Ant with the following command:
$ brew install ant
Step 5: Build your project
Navigate to the root directory of your project:
$ cd </path/to/ionic/project>
Build it for android:
$ ionic build android
Plug in your device (making sure debugging is enabled on the device) and run your app on it by entering the following command to your OS X terminal:
$ ionic run android
Note: After you plug your device in, make sure you authorize your computer to debug the device (you should see a popup on the device)
Step 6: Profit!
That’s it! You can now debug your app on physical devices.


This review contains some minor spoilers of the feature film "Godzilla," but I promise not to give away too many major revelations about the plot (not as if there really are any, but still...).
Nutshell: Summer has begun; mindless destruction and virtually no story, done with surprisingly less wit and inventiveness than usual.
----- Godzilla (USA, 1998)
PG-13, 140 minutes
Cast includes: Matthew Broderick (Dr. Niko Tatopoulos), Jean Reno (Philippe Roche), Maria Pitillo (Audrey Timmonds), Hank Azaria (Victor "Animal" Palotti), Kevin Dunn (Colonel Hicks), Michael Lerner (Mayor Ebert)
Distributed by TriStar Pictures (USA) Screenplay by Dean Devlin and Roland Emmerich Produced by Dean Devlin Directed by Roland Emmerich
Review by Jamahl Epsicokhan Rating out of 4: ** -----
Dean Devlin and Roland Emmerich, the two industry-smart coordinators behind "Stargate" (1994) and "Independence Day" (1996), have taken their special-effects approach to filmmaking a step further with "Godzilla," a film that has plenty of computer-generated monster-induced destruction but next to zero in terms of a story.
Quite frankly, I wasn't really expecting much in terms of a story. >From the word go, "Godzilla" was very obviously intended as the first mindless summer blockbuster of 1998. It promised a simple, streamlined story, lots of mayhem and destruction (a la "Independence Day" two years ago), and all the elaborate special-effects sequences a filmmaker can conjure with a $120 million budget.
But somewhere along the line, Devlin and Emmerich forgot that we still need to feel *something* as the movie progresses. We need to care how the events of the story will unfold. At the very least, we need to feel viscerally involved as New York City becomes a stomping ground for a 300-foot lizard.
Unfortunately, aside from a few isolated moments, "Godzilla" fails to generate those feelings of awe. I didn't care about any of the characters, I didn't care about the possible downfall of New York City or "the entire world itself"--and I didn't really even care about the lizard.
What we have here--a summer tradition invented once it became clear to producers and directors that computer-generated effects could bring a new sense of realism to the realm of natural (or unnatural) disaster action--is yet another "special-effects movie." Without the special effects (and a need to have well-known structures like the Chrysler Building and Madison Square Garden leveled by film's end) there wouldn't be a point to have the movie at all.
As always, there are good ways to do special-effects movies and bad ways. "Jurassic Park" back in 1993, with its sense of wonder concerning uncontrollable possibilities, was one of the groundbreaking examples of the good way. And "Independence Day," while shallow and silly, was also entertaining and had plenty of attitude to get by. But as characterization and even the general sense of intensity get stripped away, it becomes harder to feel that we're watching a giant lizard stomping through a major city, and all too obvious that we're watching millions of dollars and thousands of labor hours for special effects being projected onto the screen.
The plot to "Godzilla" is a no-brainer. After a few token scenes used to set up the premise and loosely establish the major characters, the giant lizard (which, as most already know, is dubbed "Godzilla" and is a mutated product of nuclear radiation) crawls out of the Atlantic and begins stomping through the City That Never Sleeps. A biological expert on mutated organisms (Matthew Broderick), known to most as "the worm guy" (because he studies worms at Chernobyl, you see) is brought in by the U.S. military to submit his opinions about the instincts of the 300-foot lizard. He naturally offers helpful hints to the military people, such as telling them to remove manhole covers so it can smell the hundreds of tons of fish that have been placed on the street to bait it. "What are they doing?" asks the unit's commander when his men scatter to open manholes. Well, says I, they're *your* men. If you can't keep up with what they're doing, then we're all probably in a lot of trouble, aren't we?
There are scenes where helicopters chase Godzilla through the city, firing thousands of rounds at him to no significant effect. One might wonder why it takes the military characters so long to figure out that bullets won't do the trick, except that a higher strategy is in work here--a strategy set to ensure the movie will last close to 2 1/2 hours and produce a maximum amount of net destruction. At one point, the mayor (Michael Lerner) complains to the colonel (Kevin Dunn), saying, "You've destroyed more of the city than he has!" As someone who is aware that this is a demolition derby rather than a plausible reaction to a crisis, I suspect that's the whole point.
There are plenty of slow-witted characters at work here. It always kills me the way officials in charge of situations like this one are always the most likely to scoff at issues that any rational person would address with swift action and undivided attention--like, oh, the fact that Broderick suspects Godzilla is laying eggs that could produce more Godzillas within only a few hours. Naturally, these people don't look for this nest of eggs; instead, they kick Broderick off the team because of a press leak. Talk about priorities.
As with all major disaster movies, there is of course a romantic theme; in this case it's between Broderick's character and his old college sweetheart (Maria Pitillo), who is an aspiring journalist trying to break the "Godzilla story" (undoubtedly the biggest thing to hit TV airwaves since O.J. Simpson). I was surprised at even how ineffective and perfunctory this angle of the story was. I expected it to be cliched, and it was, but I didn't expect it to be quite so hollow. Pitillo's character comes off as a complete airhead, and the performance doesn't bring a thing to it. At times the character seemed worthy of self-parody, but Pitillo plays it hopelessly straight.
It's frustrating that this movie doesn't contain any interesting characters or personalities. Everyone is a cardboard device used solely to advance the plot. The most watchable character is probably the one played by Jean Reno, an enigmatic persona who turns out to be from an organization that's best summed into a sound bite as "the French CIA."
I was also pretty amazed at how lacking the film was in original action. The scenes that take place in Madison Square Garden prove themselves to be so blatantly ripped off from the velociraptor attacks in "Jurassic Park" and last year's "The Lost World" that I found myself realizing how much more class and originality Steven Spielberg brings to his set pieces.
And you'd think a movie from the makers of "Independence Day" would have more room for good jokes about a 300-foot lizard. Alas, the humor is surprisingly lacking here, and, when present, is surprisingly stale.
The early-teenage level of the movie's pitch is perhaps a forewarning that everything about the story is just a means to fill time between lizard attacks: Every emotion is cued by David Arnold's relentlessly obvious score, the dialog is as simple and succinct as it possibly can be, and the supporting characters offer their comments only to prompt the subsequent actions. It's plotting by comic book means.
On the other hand, even if the story completely fails to generate a believable sense of doom, the effects manage to come off as very realistic. Devlin and Emmerich and their crews are technical experts when it comes to filming large-scaled destruction in a way that looks utterly convincing, and the scenes of Godzilla stomping through the streets, knocking down buildings and bridges and crushing cars are extremely well done, and particularly effective in the taut final fifteen minutes of the film. If you're going to see "Godzilla," see it only because you want the visual experience of seeing New York City decimated. There's no other reason to see it--though, deep down, you probably knew that.
----- Copyright (c) 1998 by Jamahl Epsicokhan, all rights reserved. Unauthorized reproduction or distribution of this article is prohibited.
Star Trek: Hypertext - http://www.epsico.com/st-hypertext/ Jamahl Epsicokhan -<EMAIL_ADDRESS>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


Why Entrepreneurship Involves Depression
If you’re headed into entrepreneurship, get ready to be depressed. Here’s how to get through it…
Sooner or later as an entrepreneur, you are going to face off against depression. At least the odds are extremely high. Those that deny it are probably hiding it or still in denial. It’s a virtually guaranteed part of entrepreneur life. The good news is that just knowing this gives you a huge edge going in.
Why You’ll Have to Confront Depression as an Entrepreneur
Whether it is before, during or after exiting a company, depression is likely to rear its head at the worst time. Yet, if you can make it through it, the silver lining can be far more rewarding than you planned.
Reasons entrepreneurs get depressed include:
- - Empty successes
- - Naturally being prone to high levels of anxiety
- - Difficulty not feeling in control
- - Large numbers of investor rejections
- - Stress and long working hours leading to burnout
- - Being sabotaged by partners, staff or investors
- - Being fired from your own company
- - Struggles gaining and maintaining traction
The depression can be moderate and fleeting. Or it can be personally bankrupting and lead to a deep dive into bad habits, homelessness, and may take many years to recover from. Some don’t at all.
Entrepreneurs are:
- - 2x more likely to suffer from depression
- - 6x more likely to have ADHD
- - 3x more likely to struggle with addiction
- - 11x more likely to receive a bipolar diagnosis
On the bright side here are nine ways to conquer depression as an entrepreneur.
(1) Anticipate & Prepare
Know the risks, be aware of the signs, and have a plan to prevent and deal with it. Positive self-talk and listening to old motivational content is great until you just don’t feel like you can face hearing it. Have some real go-to resources and solutions. Begin with realistic expectations. If you go in expecting to fail, or better, realizing that there is no such thing as failure, only learning opportunities, you can help vaccinate yourself in advance.
(2) Have a Strong Support Network
The worst thing you can probably do is to be alone. Have advisors, coaches, friends, and family lined up in advance. People you can be transparent with. People you don’t have to put on a false front to. Then recognize that being open about what you are feeling is actually a strength and the best positive action you can take.
I have the pleasure of interviewing some of the most successful entrepreneurs on the DealMakers Podcast. One of my recent guests was Rick Stollmeyer, cofounder of MINDBODY. He built the company out of his garage and recently sold it for over $1.9 billion. During the interview, Rick discussed some of the great reflections that he was able to share with his wife during the journey (listen to the full episode here).
(3) Sleep
There will be weeks that you may be so busy you won’t sleep for days. That may be a part of the job, but it isn’t healthy. Sleep is super important. It may be the single most important secret to success as an entrepreneur. It will help you perform better.
I recently interviewed Martin Rawls-Meehan, founder of Reverie. He bootstrapped his mattress company without financing to over $100 million in revenue. During the interview, he talks about the industry and why sleep is more important than anything else in order to take care of ourselves (listen to the full episode here).
(4) Take Time Out
You are not your business. It’s just something you are experimenting with for a part of your journey. It’s not the essence of your DNA and identity. Hire great people. Give yourself a break when you need it. Take a day, weekend, week, or even two months if you need it. That’s a lot better than the alternative.
Chances are that your business will still be there when you get back. Even if it isn’t, you’ll still live. Though since we entrepreneurs are terrible break takers, it may even be smarter to give someone else a red card they can throw down and call a timeout for you when they see the signs you might not.
(5) Eat Smart
Food is the best preventative and curative medicine. Or your worst poison. Be very self-aware.  Just learn what you are consuming so it doesn’t affect your mood or mental state.
(6) Exercise and Meditation
Exercise or meditation is perhaps second to diet when it comes to natural medicine. Healthy body, healthy mind. Again, you don’t have to go to the gym or compete in endurance races and win medals to make it work for you. Some of the serial entrepreneurs who have enjoyed the most longevity and success simply enjoy getting outdoors for a walk each day. It can do wonders for your mindset.
(7) Journal
Journaling is a great way to keep things in perspective. It’s a superb reference for how far you’ve come, what you’ve managed to survive before and to put your current situation in light of the big and long game.
(8) Look Outside of Yourself
If you only focus on yourself it is easy to fall into a victim of depression. One of the fastest cures is to turn things around and focus on others. Who else is in a worse position than you? Someone has it worse. Someone has been through the same trials and ordeals and has achieved far more than most people.
A good example of someone that was able to turn things around was Todd Olson. One of his first ventures failed due to market conditions. He was at one point in acquisition talks and things fell apart last minute. Given the short runway they had with cash in the bank to support operations, his company ended up shutting down. He learned from this and is now building his next company where he has raised over $100 million from some of the most respected investors (listen to the full episode here).
(9) Medication
Obviously, we’ve all been made starkly aware of some of the downsides of running straight to some form of medication at the slightest sign of resistance. However, entrepreneurs should never forgo help when they need it. This is especially true of those who have dealt with depression before and over long periods. It may just take talking to a professional or it could mean medication for physiological issues you’ve been battling for your whole life.
 Don’t pass up the help that’s there to get you in the best zone of your life!


Update available, click here to install
Status:
Waiting
SeqPlots stopped (click to restart)
SeqPlots running
debug mode
Data directory:
Change data directory
Quick reload
Exit
Loading, please wait...
×
Mobile Access
Not Enabled
Enabled
URL:
To toggle sharing, click the button below.