29. Packages
29.1. Packages
29.1.1. Packages overview
| devon4Net is composed by a number of packages that increases the functionality and boosts time development. Each package has it’s own configuration to make them work properly. In appsettings.json set up your environment. On appsettings.{environment}.json you can configure each component. |
29.1.2. The packages
You can get the devon4Net packages on nuget.org.
Devon4Net.Application.WebAPI.Configuration
Description
The devon4Net web API configuration core.
Configuration
-
Install package on your solution:
PM> Install-Package Devon4Net.Application.WebAPI.Configuration
Defaul configuration values
"devonfw": {
"UseDetailedErrorsKey": true,
"UseIIS": false,
"UseSwagger": true,
"Environment": "Development",
"KillSwitch": {
"killSwitchSettingsFile": "killswitch.appsettings.json"
},
"Kestrel": {
"UseHttps": true,
"HttpProtocol": "Http2", //Http1, Http2, Http1AndHttp2, none
"ApplicationPort": 8082,
"KeepAliveTimeout": 120, //in seconds
"MaxConcurrentConnections": 100,
"MaxConcurrentUpgradedConnections": 100,
"MaxRequestBodySize": 28.6, //In MB. The default maximum request body size is 30,000,000 bytes, which is approximately 28.6 MB
"Http2MaxStreamsPerConnection": 100,
"Http2InitialConnectionWindowSize": 131072, // From 65,535 and less than 2^31 (2,147,483,648)
"Http2InitialStreamWindowSize": 98304, // From 65,535 and less than 2^31 (2,147,483,648)
"AllowSynchronousIO": true,
"SslProtocol": "Tls12", //Tls, Tls11,Tls12, Tls13, Ssl2, Ssl3, none. For Https2 Tls12 is needed
"ServerCertificate": {
"Certificate": "localhost.pfx",
"CertificatePassword": "localhost"
},
"ClientCertificate": {
"DisableClientCertificateCheck": true,
"RequireClientCertificate": false,
"CheckCertificateRevocation": true,
"ClientCertificates": {
"Whitelist": [
"3A87A49460E8FE0E2A198E63D408DC58435BC501"
],
"DisableClientCertificateCheck": false
}
}
},
"IIS": {
"ForwardClientCertificate": true,
"AutomaticAuthentication": true,
"AuthenticationDisplayName" : ""
}
}
Devon4Net.Infrastructure.CircuitBreaker
Description
The Devon4Net.Infrastructure.CircuitBreaker componnet implements the retry pattern for HTTP/HTTPS calls.
Configuration
-
Install package on your solution:
PM> Install-Package Devon4Net.Infrastructure.CircuitBreaker
Defaul configuration values
"CircuitBreaker": {
"CheckCertificate": true,
"Endpoints": [
{
"Name": "SampleService",
"BaseAddress": "https://localhost:5001/",
"Headers": {
},
"WaitAndRetrySeconds": [
0.0001,
0.0005,
0.001
],
"DurationOfBreak": 0.0005,
"UseCertificate": true,
"Certificate": "localhost.pfx",
"CertificatePassword": "localhost",
"SslProtocol": "3072" //TLS12
}
]
}
| Property | Description |
|---|---|
CheckCertificate |
True if HTTPS is requiered. This is usefull when developing an API Gateway needs a secured HTTP, disabling this on development we can use communications with a valid server certificate |
Endpoints |
Array with predefined sites to connect with |
Name |
The name key to identificate the destination URL |
Headers |
Not ready yet |
WaitAndRetrySeconds |
Array wich determinates the number of retruies and the lapse period between each retry. The value is in milliseconds. |
Certificate |
Ceritificate client to use to perform the HTTP call |
SslProtocol |
The secure protocol to use on the call |
Protocols
| Protocol | Key | Description |
|---|---|---|
SSl3 |
48 |
Specifies the Secure Socket Layer (SSL) 3.0 security protocol. SSL 3.0 has been superseded by the Transport Layer Security (TLS) protocol and is provided for backward compatibility only. |
TLS |
192 |
Specifies the Transport Layer Security (TLS) 1.0 security protocol. The TLS 1.0 protocol is defined in IETF RFC 2246. |
TLS11 |
768 |
Specifies the Transport Layer Security (TLS) 1.1 security protocol. The TLS 1.1 protocol is defined in IETF RFC 4346. On Windows systems, this value is supported starting with Windows 7. |
TLS12 |
3072 |
Specifies the Transport Layer Security (TLS) 1.2 security protocol. The TLS 1.2 protocol is defined in IETF RFC 5246. On Windows systems, this value is supported starting with Windows 7. |
TLS13 |
12288 |
Specifies the TLS 1.3 security protocol. The TLS protocol is defined in IETF RFC 8446. |
Usage
Add via Dependency Injection the circuit breaker instance. PE:
public class FooService : Service<TodosContext>, ILoginService
{
public FooService(IUnitOfWork<AUTContext> uoW, ICircuitBreakerHttpClient circuitBreakerClient,
ILogger<LoginService> logger) : base(uoW)
{
...
}
}
At this point you can use the circuit breaker functionality in your code.
To perform a POST call you should use your circuit breaker instance as follows:
await circuitBreakerClient.PostAsync<YourOutputClass>(NameOftheService, EndPoint, InputData, MediaType.ApplicationJson).ConfigureAwait(false);
Where:
| Property | Description |
|---|---|
YourOutputClass |
The type of the class that you are expecting to retrieve from the POST call |
NameOftheService |
The key name of the endpoint provided in the appsettings.json file at Endpoints[] node |
EndPoint |
Part of the url to use with the base address. PE: /validate |
InputData |
Your instance of the class with values that you want to use in the POST call |
MediaType.ApplicationJson |
The media type flag for the POST call |
devon4Net.Domain.UnitOfWork
Description
Unit of work implementation for devon4net solution. This unit of work provides the different methods to access the data layer with an atomic context. Sync and Async repository operations are provided. Customized Eager Loading method also provided for custom entity properties.
| This component will move on next releases to Infrastructure instead of being part of Domain components |
Configuration
-
Install package on your solution:
PM> Install-Package devon4Net.Domain.UnitOfWork
-
Adding the database connection information:
Add the databse connection on the SetupDatabase method at Startup.cs
private void SetupDatabase(IServiceCollection services)
{
services.SetupDatabase<TodoContext>(Configuration, "Default", WebAPI.Configuration.Enums.DatabaseType.InMemory);
}
Where:
| Param | Description |
|---|---|
TodoContext |
Is the database context definition |
Default |
Is the connection string defined at ConnectionString node at the appsettings configuration file |
WebAPI.Configuration.Enums.DatabaseType.InMemory |
Is the database driver selection. In this case InMemory data base is chosen |
The supported databases are:
-
SqlServer
-
Sqlite
-
InMemory
-
Cosmos
-
PostgreSQL
-
MySql
-
MariaDb
-
FireBird
-
Oracle
-
MSAccess
Notes
Now you can use the unit of work via dependency injection on your classes:
As you can see in the image, you can use Unit Of Work class with your defined ModelContext classes.
Predicate expression builder
-
Use this expression builder to generate lambda expressions dynamically.
var predicate = PredicateBuilder.True<T>();
Where T is a class. At this moment, you can build your expression and apply it to obtain your results in a efficient way and not retrieving data each time you apply an expression.
-
Example from My Thai Star .Net Core implementation:
public async Task<PaginationResult<Dish>> GetpagedDishListFromFilter(int currentpage, int pageSize, bool isFav, decimal maxPrice, int minLikes, string searchBy, IList<long> categoryIdList, long userId)
{
var includeList = new List<string>{"DishCategory","DishCategory.IdCategoryNavigation", "DishIngredient","DishIngredient.IdIngredientNavigation","IdImageNavigation"};
//Here we create our predicate builder
var dishPredicate = PredicateBuilder.True<Dish>();
//Now we start applying the different criteria:
if (!string.IsNullOrEmpty(searchBy))
{
var criteria = searchBy.ToLower();
dishPredicate = dishPredicate.And(d => d.Name.ToLower().Contains(criteria) || d.Description.ToLower().Contains(criteria));
}
if (maxPrice > 0) dishPredicate = dishPredicate.And(d=>d.Price<=maxPrice);
if (categoryIdList.Any())
{
dishPredicate = dishPredicate.And(r => r.DishCategory.Any(a => categoryIdList.Contains(a.IdCategory)));
}
if (isFav && userId >= 0)
{
var favourites = await UoW.Repository<UserFavourite>().GetAllAsync(w=>w.IdUser == userId);
var dishes = favourites.Select(s => s.IdDish);
dishPredicate = dishPredicate.And(r=> dishes.Contains(r.Id));
}
// Now we can use the predicate to retrieve data from database with just one call
return await UoW.Repository<Dish>().GetAllIncludePagedAsync(currentpage, pageSize, includeList, dishPredicate);
}
devon4Net.Infrastructure.Extensions
Description
Miscellaneous extension library which contains : - Predicate expression builder - DateTime formatter - HttpClient - HttpContext (Middleware support)
Configuration
-
Install package on your solution:
PM> Install-Package devon4Net.Infrastructure.Extensions
HttpContext
-
TryAddHeader method is used on devon4Net.Infrastructure.Middleware component to add automatically response header options such authorization.
devon4Net.Infrastructure.JWT
Description
JSON Web Token (JWT) is an open standard (RFC 7519) that defines a compact and self-contained way for securely transmitting information between parties as a JSON object. This information can be verified and trusted because it is digitally signed. JWTs can be signed using a secret (with the HMAC algorithm) or a public/private key pair using RSA or ECDSA.
https://jwt.io/introduction/
-
devon4Net component to manage JWT standard to provide security to .Net API applications.
Configuration
-
Install package on your solution:
PM> devon4Net.Infrastructure.JWT
Defaul configuration values
"JWT": {
"Audience": "devon4Net",
"Issuer": "devon4Net",
"TokenExpirationTime": 60,
"ValidateIssuerSigningKey": true,
"ValidateLifetime": true,
"ClockSkew": 5,
"Security": {
"SecretKeyLengthAlgorithm": "",
"SecretKeyEncryptionAlgorithm": "",
"SecretKey": "",
"Certificate": "",
"CertificatePassword": "",
"CertificateEncryptionAlgorithm": ""
}
}
-
ClockSkew indicates the token expiration time in minutes
-
Certificate you can specify the name of your certificate (if it is on the same path) or the full path of the certificate. If the certificate does not exists an exception will be raised.
-
SecretKeyLengthAlgorithm, SecretKeyEncryptionAlgorithm and CertificateEncryptionAlgorithm supported algorithms are:
| Algorithm | Description |
|---|---|
Aes128Encryption |
"http://www.w3.org/2001/04/xmlenc#aes128-cbc" |
Aes192Encryption |
"http://www.w3.org/2001/04/xmlenc#aes192-cbc" |
Aes256Encryption |
"http://www.w3.org/2001/04/xmlenc#aes256-cbc" |
DesEncryption |
"http://www.w3.org/2001/04/xmlenc#des-cbc" |
Aes128KeyWrap |
"http://www.w3.org/2001/04/xmlenc#kw-aes128" |
Aes192KeyWrap |
"http://www.w3.org/2001/04/xmlenc#kw-aes192" |
Aes256KeyWrap |
"http://www.w3.org/2001/04/xmlenc#kw-aes256" |
RsaV15KeyWrap |
"http://www.w3.org/2001/04/xmlenc#rsa-1_5" |
Ripemd160Digest |
"http://www.w3.org/2001/04/xmlenc#ripemd160" |
RsaOaepKeyWrap |
"http://www.w3.org/2001/04/xmlenc#rsa-oaep" |
Aes128KW |
"A128KW" |
Aes256KW |
"A256KW" |
RsaPKCS1 |
"RSA1_5" |
RsaOAEP |
"RSA-OAEP" |
ExclusiveC14n |
"http://www.w3.org/2001/10/xml-exc-c14n#" |
ExclusiveC14nWithComments |
"http://www.w3.org/2001/10/xml-exc-c14n#WithComments" |
EnvelopedSignature |
"http://www.w3.org/2000/09/xmldsig#enveloped-signature" |
Sha256Digest |
"http://www.w3.org/2001/04/xmlenc#sha256" |
Sha384Digest |
"http://www.w3.org/2001/04/xmldsig-more#sha384" |
Sha512Digest |
"http://www.w3.org/2001/04/xmlenc#sha512" |
Sha256 |
"SHA256" |
Sha384 |
"SHA384" |
Sha512 |
"SHA512" |
EcdsaSha256Signature |
"http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha256" |
EcdsaSha384Signature |
"http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha384" |
EcdsaSha512Signature |
"http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha512" |
HmacSha256Signature |
"http://www.w3.org/2001/04/xmldsig-more#hmac-sha256" |
HmacSha384Signature |
"http://www.w3.org/2001/04/xmldsig-more#hmac-sha384" |
HmacSha512Signature |
"http://www.w3.org/2001/04/xmldsig-more#hmac-sha512" |
RsaSha256Signature |
"http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" |
RsaSha384Signature |
"http://www.w3.org/2001/04/xmldsig-more#rsa-sha384" |
RsaSha512Signature |
"http://www.w3.org/2001/04/xmldsig-more#rsa-sha512" |
RsaSsaPssSha256Signature |
"http://www.w3.org/2007/05/xmldsig-more#sha256-rsa-MGF1" |
RsaSsaPssSha384Signature |
"http://www.w3.org/2007/05/xmldsig-more#sha384-rsa-MGF1" |
RsaSsaPssSha512Signature |
"http://www.w3.org/2007/05/xmldsig-more#sha512-rsa-MGF1" |
EcdsaSha256 |
"ES256" |
EcdsaSha384 |
"ES384" |
EcdsaSha512 |
"ES512" |
HmacSha256 |
"HS256" |
HmacSha384 |
"HS384" |
HmacSha512 |
"HS512" |
None |
"none" |
RsaSha256 |
"RS256" |
RsaSha384 |
"RS384" |
RsaSha512 |
"RS512" |
RsaSsaPssSha256 |
"PS256" |
RsaSsaPssSha384 |
"PS384" |
RsaSsaPssSha512 |
"PS512" |
Aes128CbcHmacSha256 |
"A128CBC-HS256" |
Aes192CbcHmacSha384 |
"A192CBC-HS384" |
Aes256CbcHmacSha512 |
"A256CBC-HS512" |
| Please check Microsoft documentation to get the lastest updates on supported encryption algorithms |
-
Add this line of code (only if you use this component stand alone):
services.AddBusinessCommonJwtPolicy();
On
Startup.cs
or on:
devon4Net.Application.Configuration.Startup/JwtApplicationConfiguration/ConfigureJwtPolicy method.
-
Inside the AddBusinessCommonJwtPolicy method you can add your JWT Policy like in My Thai Star application sample:
services.ConfigureJwtAddPolicy("MTSWaiterPolicy", "role", "waiter");
Notes
-
The certificate will be used to generate the key to encrypt the json web token.
devon4Net.Infrastructure.Middleware
Description
-
devon4Net support for middleware classes.
-
In ASP.NET Core, middleware classes can handle an HTTP request or response. Middleware can either:
-
Handle an incoming HTTP request by generating an HTTP response.
-
Process an incoming HTTP request, modify it, and pass it on to another piece of middleware.
-
Process an outgoing HTTP response, modify it, and pass it on to either another piece of middleware, or the ASP.NET Core web server.
-
-
devon4Net supports the following automatic response headers:
-
AccessControlExposeHeader
-
StrictTransportSecurityHeader
-
XFrameOptionsHeader
-
XssProtectionHeader
-
XContentTypeOptionsHeader
-
ContentSecurityPolicyHeader
-
PermittedCrossDomainPoliciesHeader
-
ReferrerPolicyHeader:toc: macro
-
Configuration
-
Install package on your solution:
PM> Install-Package devon4Net.Infrastructure.Middleware
-
You can configure your Middleware configuration on appsettings.{environment}.json:
"Middleware": {
"Headers": {
"AccessControlExposeHeader": "Authorization",
"StrictTransportSecurityHeader": "",
"XFrameOptionsHeader": "DENY",
"XssProtectionHeader": "1;mode=block",
"XContentTypeOptionsHeader": "nosniff",
"ContentSecurityPolicyHeader": "",
"PermittedCrossDomainPoliciesHeader": "",
"ReferrerPolicyHeader": ""
}
}
-
On the above sample, the server application will add to response header the AccessControlExposeHeader, XFrameOptionsHeader, XssProtectionHeader and XContentTypeOptionsHeader headers.
-
If the header response type does not have a value, it will not be added to the response headers.
devon4Net.Infrastructure.Swagger
Description
-
devon4net Swagger abstraction to provide full externalized easy configuration.
-
Swagger offers the easiest to use tools to take full advantage of all the capabilities of the OpenAPI Specification (OAS).
Configuration
-
Install package on your solution:
PM> devon4Net.Infrastructure.Swagger
-
You can configure your Swagger configuration on appsettings.{environment}.json:
"Swagger": {
"Version": "v1",
"Title": "devon4net API",
"Description": "devon4net API Contract",
"Terms": "https://www.devonfw.com/terms-of-use/",
"Contact": {
"Name": "devonfw",
"Email"<EMAIL_ADDRESS>"Url": "https://www.devonfw.com"
},
"License": {
"Name": "devonfw - Terms of Use",
"Url": "https://www.devonfw.com/terms-of-use/"
},
"Endpoint": {
"Name": "V1 Docs",
"Url": "/swagger/v1/swagger.json",
"UrlUi": "swagger",
"RouteTemplate": "swagger/v1/{documentName}/swagger.json"
}
}
-
Add this line of code (only if you use this component stand alone):
services.ConfigureSwaggerService();
On
Startup.cs
-
Also add this line of code (only if you use this component stand alone):
app.ConfigureSwaggerApplication();
On
Startup.cs/Configure(IApplicationBuilder app, IHostingEnvironment env)
-
Ensure your API actions and non-route parameters are decorated with explicit "Http" and "From" bindings.
Notes
-
To access to swagger UI launch your API project and type in your html browser the url http://localhost:yourPort/swagger.
-
In order to generate the documentation annotate your actions with summary, remarks and response tags:
/// <summary> /// Method to make a reservation with potential guests. The method returns the reservation token with the format: {(CB_|GB_)}{now.Year}{now.Month:00}{now.Day:00}{_}{MD5({Host/Guest-email}{now.Year}{now.Month:00}{now.Day:00}{now.Hour:00}{now.Minute:00}{now.Second:00})} /// </summary> /// <param name="bookingDto"></param> /// <response code="201">Ok.</response> /// <response code="400">Bad request. Parser data error.</response> /// <response code="401">Unauthorized. Authentication fail.</response> /// <response code="403">Forbidden. Authorization error.</response> /// <response code="500">Internal Server Error. The search process ended with error.</response> [HttpPost] [HttpOptions] [Route("/mythaistar/services/rest/bookingmanagement/v1/booking")] [AllowAnonymous] [EnableCors("CorsPolicy")] public async Task<IActionResult> BookingBooking([FromBody]BookingDto bookingDto) { try { ...
-
Ensure that your project has the generate XML documentation file check active on build menu:
-
Ensure that your XML files has the attribute copy always to true:
devon4Net.Infrastructure.Test
Description
devon4Net Base classes to create unit tests and integration tests with Moq and xUnit.
Configuration
-
Load the template: > dotnet new -i devon4Net.Test.Template > dotnet new devon4NetTest
Notes
-
At this point you can find this classes:
-
BaseManagementTest
-
DatabaseManagementTest<T> (Where T is a devon4NetBaseContext class)
-
-
For unit testing, inherit a class from BaseManagementTest.
-
For integration tests, inherit a class from DatabaseManagementTest.
-
The recommended databases in integration test are in memory database or SQlite database.
-
Please check My thai Star test project.
29.1.3. Deperecated packages
devon4Net.Domain.Context
Description
devon4Net.Domain.Context contains the extended class devon4NetBaseContext in order to make easier the process of having a model context configured against different database engines. This configuration allows an easier testing configuration against local and in memory databases.
Configuration
-
Install package on your solution:
PM> Install-Package devon4Net.Domain.Context
-
Add to appsettings.{environment}.json file your database connections:
"ConnectionStrings":
{
"DefaultConnection":
"Server=localhost;Database=MyThaiStar;User Id=sa;Password=sa;MultipleActiveResultSets=True;",
"AuthConnection":
"Server=(localdb)\\mssqllocaldb;Database=aspnet-DualAuthCore-5E206A0B-D4DA-4E71-92D3-87FD6B120C5E;Trusted_Connection=True;MultipleActiveResultSets=true",
"SqliteConnection": "Data Source=c:\\tmp\\membership.db;"
}
-
On Startup.cs :
void ConfigureServices(IServiceCollection services)
-
Add your database connections defined on previous point:
services.ConfigureDataBase(
new Dictionary<string, string> {
{ConfigurationConst.DefaultConnection, Configuration.GetConnectionString(ConfigurationConst.DefaultConnection) }});
-
On devon4Net.Application.Configuration.Startup/DataBaseConfiguration/ConfigureDataBase configure your connections.
devon4Net.Infrastructure.ApplicationUser
Description
devon4Net Application user classes to implement basic Microsoft’s basic authentication in order to be used on authentication methodologies such Jason Web Token (JWT).
Configuration
-
Install package on your solution:
PM> devon4Net.Infrastructure.ApplicationUser
-
Add the database connection string for user management on appsettings.{environment}.json:
"ConnectionStrings":
{
"AuthConnection":
"Server=(localdb)\\mssqllocaldb;Database=aspnet-DualAuthCore-5E206A0B-D4DA-4E71-92D3-87FD6B120C5E;Trusted_Connection=True;MultipleActiveResultSets=true"
}
-
Add the following line of code
services.AddApplicationUserDependencyInjection();
On
Startup.cs/ConfigureServices(IServiceCollection services)
or on:
devon4Net.Application.Configuration.Startup/DependencyInjectionConfiguration/ConfigureDependencyInjectionService method.
-
Add the data seeder on Configure method on start.cs class:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, DataSeeder seeder)
{
...
app.UseAuthentication();
seeder.SeedAsync().Wait();
...
}
Notes
-
You can use the following methods to set up the database configuration:
public static void AddApplicationUserDbContextInMemoryService(this IServiceCollection services) public static void AddApplicationUserDbContextSQliteService(this IServiceCollection services, string connectionString) public static void AddApplicationUserDbContextSQlServerService(this IServiceCollection services, string connectionString)
-
The method AddApplicationUserDbContextInMemoryService uses the AuthContext connection string name to set up the database.
-
This component is used with the components devon4Net.Infrastructure.JWT and devon4Net.Infrastructure.JWT.MVC.
devon4Net.Infrastructure.Communication
Description
Basic client classes to invoke GET/POST methods asynchronously. This component has the minimal classes to send basic data. For more complex operations please use ASP4Net.Infrastructure.Extensions.
Configuration
-
Install package on your solution:
PM> devon4Net.Infrastructure.Communication
-
Create an instance of RestManagementService class.
-
Use next methods to use GET/POST basic options:
public Task<string> CallGetMethod(string url);
public Task<Stream> CallGetMethodAsStream(string url);
public Task<string> CallPostMethod<T>(string url, T dataToSend);
public Task<string> CallPutMethod<T>(string url, T dataToSend);
Notes
-
Example:
private async Task RestManagementServiceSample(EmailDto dataToSend)
{
var url = Configuration["EmailServiceUrl"];
var restManagementService = new RestManagementService();
await restManagementService.CallPostMethod(url, dataToSend);
}
devon4Net.Infrastructure.JWT.MVC
Description
-
devon4Net Extended controller to interact with JWT features
Configuration
-
Extend your _ Microsoft.AspNetCore.Mvc.Controller_ class with devon4NetJWTController class:
public class LoginController : devon4NetJWTController
{
private readonly ILoginService _loginService;
public LoginController(ILoginService loginService, SignInManager<ApplicationUser> signInManager, UserManager<ApplicationUser> userManager, ILogger<LoginController> logger, IMapper mapper) : base(logger,mapper)
{
_loginService = loginService;
}
....
Notes
-
In order to generate a JWT, you should implement the JWT generation on user login. For example, in My Thai Star is created as follows:
public async Task<IActionResult> Login([FromBody]LoginDto loginDto)
{
try
{
if (loginDto == null) return Ok();
var logged = await _loginService.LoginAsync(loginDto.UserName, loginDto.Password);
if (logged)
{
var user = await _loginService.GetUserByUserNameAsync(loginDto.UserName);
var encodedJwt = new JwtClientToken().CreateClientToken(_loginService.GetUserClaimsAsync(user));
Response.Headers.Add("Access-Control-Expose-Headers", "Authorization");
Response.Headers.Add("Authorization", $"{JwtBearerDefaults.AuthenticationScheme} {encodedJwt}");
return Ok(encodedJwt);
}
else
{
Response.Headers.Clear();
return StatusCode((int)HttpStatusCode.Unauthorized, "Login Error");
}
}
catch (Exception ex)
{
return StatusCode((int)HttpStatusCode.InternalServerError, $"{ex.Message} : {ex.InnerException}");
}
}
-
In My Thai Star the JWT will contain the user information such id, roles…
-
Once you extend your controller with devon4NetJWTController you will have available these methods to simplify user management:
public interface Idevon4NetJWTController
{
// Gets the current user
JwtSecurityToken GetCurrentUser();
// Gets an specific assigned claim of current user
Claim GetUserClaim(string claimName, JwtSecurityToken jwtUser = null);
// Gets all the assigned claims of current user
IEnumerable<Claim> GetUserClaims(JwtSecurityToken jwtUser = null);
}
devon4Net.Infrastructure.MVC
Description
Common classes to extend controller functionality on API. Also provides support for paged results in devon4Net applications and automapper injected class.
Configuration
-
Install package on your solution:
PM> devon4Net.Infrastructure.MVC
Notes
-
The generic class ResultObjectDto<T> provides a typed result object with pagination.
-
The extended class provides the following methods:
ResultObjectDto<T> GenerateResultDto<T>(int? page, int? size, int? total);
ResultObjectDto<T> GenerateResultDto<T>(List<T> result, int? page = null, int? size = null);
-
GenerateResultDto provides typed ResultObjectDto object or a list of typed ResultObjectDto object. The aim of this methods is to provide a clean management for result objects and not repeating code through the different controller classes.
-
The following sample from My Thai Star shows how to use it:
public async Task<IActionResult> Search([FromBody] FilterDtoSearchObject filterDto)
{
if (filterDto == null) filterDto = new FilterDtoSearchObject();
try
{
var dishList = await _dishService.GetDishListFromFilter(false, filterDto.GetMaxPrice(), filterDto.GetMinLikes(), filterDto.GetSearchBy(),filterDto.GetCategories(), -1);
return new OkObjectResult(GenerateResultDto(dishList).ToJson());
}
catch (Exception ex)
{
return StatusCode((int)HttpStatusCode.InternalServerError, $"{ex.Message} : {ex.InnerException}");
}
}
devon4Net.Infrastructure.AOP
Description
Simple AOP Exception handler for .Net Controller classes integrated with Serilog.
Configuration
-
Install package on your solution:
PM> Install-Package devon4Net.Domain.AOP
Add this line of code on ConfigureServices method on Startup.cs
services.AddAopAttributeService();
Notes
Now automatically your exposed API methods exposed on controller classes will be tracked on the methods:
-
OnActionExecuting
-
OnActionExecuted
-
OnResultExecuting
-
OnResultExecuted
If an exception occurs, a message will be displayed on log with the stack trace.
devon4Net.Infrastructure.Cors
Description
Enables CORS configuration for devon4Net application. Multiple domains can be configured from configuration. Mandatory to web clients (p.e. Angular) to prevent making AJAX requests to another domain.
Cross-Origin Resource Sharing (CORS) is a mechanism that uses additional HTTP headers to tell a browser to let a web application running at one origin (domain) have permission to access selected resources from a server at a different origin. A web application makes a cross-origin HTTP request when it requests a resource that has a different origin (domain, protocol, and port) than its own origin.
Please refer to this link to get more information about CORS and .Net core.
Configuration
-
Install package on your solution:
PM> devon4Net.Infrastructure.Cors
-
You can configure your Cors configuration on appsettings.{environment}.json:
CorsPolicy: indicates the name of the policy. You can use this name to add security headers on your API exposed methods.
Origins: The allowed domains
Headers: The allowed headers such accept,content-type,origin,x-custom-header
-
If you specify the cors configuration as empty array, a default cors-policy will be used with all origins enabled:
"Cors": []
-
On the other hand, you can specify different Cors policies in your solution as follows:
"Cors": []
[
{
"CorsPolicy": "CorsPolicy1",
"Origins": "http:example.com,http:www.contoso.com",
"Headers": "accept,content-type,origin,x-custom-header",
"Methods": "GET,POST,HEAD",
"AllowCredentials": true
},
{
"CorsPolicy": "CorsPolicy2",
"Origins": "http:example.com,http:www.contoso.com",
"Headers": "accept,content-type,origin,x-custom-header",
"Methods": "GET,POST,HEAD",
"AllowCredentials": true
}
]
Notes
-
To use CORS in your API methods, use the next notation:
[EnableCors("YourCorsPolicy")]
public IActionResult Index() {
return View();
}
-
if you want to disable the CORS check use the following annotation:
[DisableCors]
public IActionResult Index() {
return View();
}


---
title: Convox re:Invent
layout: base
---
Convox @ re:Invent
Need help keeping up?
Alternatively sign up to Convox
to get started right away.
Convox is an official AWS container partner.
We learn everything about building on AWS so your team doesn't have to.
Convox sets up a cloud service-oriented architecture.
Every component is swappable, making it easy to update the architecture as AWS evolves.
The latest AMIs and Kernel patches are a convox update away.
Network security improves over time too.
Convox is open-source.
All the conversations about how to use AWS best is out in the open.


Solves the general Semi-Definite Linear Programming formulation using an R implementation of SDPT3 (K.C. Toh, M.J. Todd, and R.H. Tutuncu (1999) <doi:10.1080/10556789908805762>). This includes problems such as the nearest correlation matrix problem (Higham (2002) <doi:10.1093/imanum/22.3.329>), D-optimal experimental design (Smith (1918) <doi:10.2307/2331929>), Distance Weighted Discrimination (Marron and Todd (2012) <doi:10.1198/016214507000001120>), as well as graph theory problems including the maximum cut problem. Technical details surrounding SDPT3 can be found in R.H Tutuncu, K.C. Toh, and M.J. Todd (2003) <doi:10.1007/s10107-002-0347-5>.
| Version: | 0.2 |
| Depends: | Matrix, R (≥ 2.10) |
| Imports: | methods, stats |
| Published: | 2018-10-18 |
| Author: | Kim-Chuan Toh (Matlab/C), Micheal Todd (Matlab/C), Reha Tutunco (Matlab/C), Adam Rahman (R/C Headers), Timothy A. Davis (symamd C code), Stefan I. Larimore (symamd C code) |
| Maintainer: | Adam Rahman <a45rahma at uwaterloo.ca> |
| License: | GPL-2 | GPL-3 |
| NeedsCompilation: | yes |
| In views: | Optimization |
| CRAN checks: | sdpt3r results |
| Reference manual: | sdpt3r.pdf |
| Vignettes: |
sdpt3r sdpt3r sdpt3r sdpt3r sdpt3r sdpt3r sdpt3r sdpt3r sdpt3r sdpt3r sdpt3r sdpt3r |
| Package source: | sdpt3r_0.2.tar.gz |
| Windows binaries: | r-devel: sdpt3r_0.2.zip, r-release: sdpt3r_0.2.zip, r-oldrel: sdpt3r_0.2.zip |
| OS X binaries: | r-release: sdpt3r_0.2.tgz, r-oldrel: sdpt3r_0.2.tgz |
| Old sources: | sdpt3r archive |
Please use the canonical form https://CRAN.R-project.org/package=sdpt3r to link to this page.


| 0 |
https://mledits.github.io/icse_sp3/4/63871/details.html |
| 1 |
https://mledits.github.io/icse_sp1/5/59906/details.html |
| 2 |
https://mledits.github.io/icse_sp1/4/33381/details.html |
| 3 |
https://mledits.github.io/icse_sp3/4/46185/details.html |
| 4 |
https://mledits.github.io/icse_sp3/8/24273/details.html |
| 5 |
https://mledits.github.io/icse_sp3/6/16009/details.html |
| 6 |
https://mledits.github.io/icse_sp3/6/59463/details.html |
| 7 |
https://mledits.github.io/icse_sp3/4/67707/details.html |
| 8 |
https://mledits.github.io/icse_sp4/4/16916/details.html |
| 9 |
https://mledits.github.io/icse_sp4/3/64066/details.html |
| 10 |
https://mledits.github.io/icse_sp5/58/20237/details.html |
| 11 |
https://mledits.github.io/icse_sp5/6/37892/details.html |
| 12 |
https://mledits.github.io/icse_sp5/6/59463/details.html |


Generate a consistent 2D model(ESRI datasets) of a urban section(Part A and B in the following image) in Dresden, Germany using ArcGIS, including entries to the feature attribute data based on the orthophoto. Feature attributes include type, land-use code, storey number and building height. Transform a copy of this GIS model into a different spatial reference system and 3D format. Refine the 3D model(Part B in the following image) with Blender, including 3D roof and facade construction, and associative texturing and scene creation.
Construct roofs, windows, doors and other attachments of the building. The mainly used tool in Blender is extrusion, translate, insert faces, scale, subdivide, knife and loop cut. Depending on the available resource, three methods are used to texture the model, which are "image texturing with other reference data", "image provided texturing", "mathematical method". And to spice up the model, external open 3D plants model are added. (Resource: http://free3d.com/) Snap tool used to guarantee the plant snap to the closest faces.
Add a sun lamp and adjust the position as well as the angle of the sun as wanted.Then generate a dynamic sky.


- Patient - Class in com.example.healthtracker.EntityObjects
-
The Patient class creates Patient objects/users and their data
- Patient(String, String, String, String) - Constructor for class com.example.healthtracker.EntityObjects.Patient
-
constructor for creating a new Patient user and their appropriate profile information designated by parameter values
- Patient() - Constructor for class com.example.healthtracker.EntityObjects.Patient
-
singleton method for Patient
- PatientEditProblemViewIntentTest - Class in com.example.healthtracker
-
- PatientEditProblemViewIntentTest() - Constructor for class com.example.healthtracker.PatientEditProblemViewIntentTest
-
- PatientHomeView - Class in com.example.healthtracker.View
-
- PatientHomeView() - Constructor for class com.example.healthtracker.View.PatientHomeView
-
- PatientHomeViewIntentTest - Class in com.example.healthtracker
-
- PatientHomeViewIntentTest() - Constructor for class com.example.healthtracker.PatientHomeViewIntentTest
-
- PatientRecord - Class in com.example.healthtracker.EntityObjects
-
The patient record is a record added to a problem by a patient.
- PatientRecord(String, String, Double, Double, BodyLocation) - Constructor for class com.example.healthtracker.EntityObjects.PatientRecord
-
Constructor for PatientRecord that sets the record title and comment.
- PatientRecord() - Constructor for class com.example.healthtracker.EntityObjects.PatientRecord
-
Constructor for PatientRecord that requires no parameters and initializes title and comment
as empty strings.
- PatientRecordTest - Class in com.example.healthtracker
-
- PatientRecordTest() - Constructor for class com.example.healthtracker.PatientRecordTest
-
- PatientTest - Class in com.example.healthtracker
-
- PatientTest() - Constructor for class com.example.healthtracker.PatientTest
-
- Photo - Class in com.example.healthtracker.EntityObjects
-
Photo object that represents the photos that can be added to patient records.
- Photo(String) - Constructor for class com.example.healthtracker.EntityObjects.Photo
-
Constructor for creating a new photo.
- PhotoController - Class in com.example.healthtracker.Contollers
-
PhotoController handles saving images taken or selected by the Patient to both local and remote storage.
- PhotoController() - Constructor for class com.example.healthtracker.Contollers.PhotoController
-
- PhotoTest - Class in com.example.healthtracker
-
- PhotoTest() - Constructor for class com.example.healthtracker.PhotoTest
-
- Problem - Class in com.example.healthtracker.EntityObjects
-
The Problem object represents a patient's medical problem.
- Problem() - Constructor for class com.example.healthtracker.EntityObjects.Problem
-
An empty constructor for Problem that requires no parameters.
- Problem(String, String, String) - Constructor for class com.example.healthtracker.EntityObjects.Problem
-
A constructor for Problem that sets the title, date, and description of the Problem.
- ProblemTest - Class in com.example.healthtracker
-
Created by caochenlin on 2018/10/28.
- ProblemTest() - Constructor for class com.example.healthtracker.ProblemTest
-


average reaction time for correct trials: {{ test.reaction_time }} ms
accuracy: {{ test.accuracy }}%
average across all users:
highest score:
best personal score:
score history:
back
{% if test.author == current_user %}
Remove score
{% endif %}
{% endblock %}


--- layout: post title: EBGS writeup date: 2006-07-29 00:00:00 categories: amusing digital-media personal ---
The Eye Bent Grape Spasm get a writeup: "the bizarre and ready to download Large Scary Nasal Hair album by Eye Bent Grape Spasm, possibly the very first internet group, who recorded all sorts of Monty Pythonesque Zappa-meets-jungle-pirate-radio music"
"The very first internet group" :)


Hat-trick hero Wijnaldum 'so happy', says Netherlands boss Koeman
by OmnisportRonald Koeman said Georginio Wijnaldum feels "so happy with this Dutch team" after his Netherlands side beat Estonia 5-0 without any signs of the racism that blighted a league game in the country two days earlier.
Excelsior winger Ahmad Mendes Moreira was subjected to alleged racist chanting during last week's 3-3 draw against Den Bosch in Eerste Divisie, prompting Wijnaldum to speak out about the problem of racism in football ahead of the final Netherlands Euro 2020 qualifying match at Johan Cruijff ArenA.
Wijnaldum went on to be the game's star player, netting the opening goal and going on to score two more, while Nathan Ake and Myron Boadu also got on the score sheet in Amsterdam on Tuesday.
Netherlands head coach Koeman revealed Wijnaldum was in high spirits after the match, and not just because of his goals.
"Gini just said something about it in the dressing room during our closing words with each other," Koeman told Dutch broadcaster NOS.
"He said he feels so happy with this Dutch team, where this problem does not occur.
"It is one team. It's nice to see that again."
Koeman made seven changes to the side that drew 0-0 with Northern Ireland three days earlier but still saw his players deliver a cohesive, confident performance.
While the likes of Ake, Wijnaldum, Frenkie de Jong and Matthijs de Ligt were outstanding against Estonia, Koeman said he will utilise friendly matches in March to finalise his squad selections for Euro 2020.
"It would be very strange if everything was clear against Estonia in one evening," said Koeman. "We still have six months.
"We have a lot of young players who will be half a year later. It will be a fight. strong possible selection.
"You use March for points of discussion within the selection. I will therefore let many players play.
"We then play two international matches and have consciously opted for Thursday and Sunday. We will not play with the same team twice."


Orchestrator.js is an open source platform for creating applications to heterogeneous and multi-device environment.
Make your devices to communicate seamlessly, and put their resouces into use!
Orchestrator.js offers web-based IDE for implementing apps in heterogenous, multi-user and multi-device environment. The Web Console can be used for implementing the apps, interactions, and device capabilities. Moreover, the IDE offers tools for testing purposes: it is easy to monitor device states, read debug messages directly from web browser's console, and also developers can manually trigger interactions for a predefined set of devices.
With Orchestrator.js it is easy to implement context-aware applications for a heterogenous set of device. The platform offers publish-subsrcibe API that easy to utilize in app implementations. The devices constantly report their state to the Orchestrator.js Device Registry, which publishes updates whenever devices' contextual data changes.
The platform currently runs in Amazon cloud, but is freely available from GitHub, and can be easily hosted on any computer with a network connectivity. The devices are constantly connected to the Orchestrator.js. On client-side we currently support Android, and devices capable of running Python. We are also working on with iOS implementation currently.
Coordinate Devices inside Mobile Clouds
Designed for ubiquitous mobile cloud environment
Entertaining zombie game for familiar strangers.


Connection object for advanced usage.
More...
#include <connection.h>
|
| struct | Info |
| | holds some diagnostics information about the connection object it came from More...
|
| |
| struct | RequestInfo |
| | holds some diagnostics information about a request More...
|
| |
Connection object for advanced usage.
| RestClient::Connection::Connection |
( |
const std::string & |
baseUrl | ) |
|
|
explicit |
constructor for the Connection object
- Parameters
-
| baseUrl | - base URL for the connection to use |
| void RestClient::Connection::AppendHeader |
( |
const std::string & |
key, |
|
|
const std::string & |
value |
|
) |
| |
append a header to the internal map
- Parameters
-
| key | for the header field |
| value | for the header field |
HTTP DELETE method.
- Parameters
-
- Returns
- response struct
we want HTTP DELETE
set HTTP DELETE METHOD
| void RestClient::Connection::FollowRedirects |
( |
bool |
follow | ) |
|
configure whether to follow redirects on this connection
- Parameters
-
| follow | - boolean whether to follow redirects |
HTTP GET method.
- Parameters
-
- Returns
- response struct
| std::string RestClient::Connection::GetUserAgent |
( |
| ) |
|
get the user agent to add to the request
- Returns
- user agent as std::string
HTTP HEAD method.
- Parameters
-
- Returns
- response struct
we want HTTP HEAD
set HTTP HEAD METHOD
| RestClient::Response RestClient::Connection::post |
( |
const std::string & |
url, |
|
|
const std::string & |
data |
|
) |
| |
HTTP POST method.
- Parameters
-
| url | to query |
| data | HTTP POST body |
- Returns
- response struct
Now specify we want to POST data
set post fields
| RestClient::Response RestClient::Connection::put |
( |
const std::string & |
url, |
|
|
const std::string & |
data |
|
) |
| |
HTTP PUT method.
- Parameters
-
| url | to query |
| data | HTTP PUT body |
- Returns
- response struct
initialize upload object
Now specify we want to PUT data
set read callback function
set data object to pass to callback function
set data size
| void RestClient::Connection::SetBasicAuth |
( |
const std::string & |
username, |
|
|
const std::string & |
password |
|
) |
| |
set username and password for basic auth
- Parameters
-
| void RestClient::Connection::SetCAInfoFilePath |
( |
const std::string & |
caInfoFilePath | ) |
|
set custom Certificate Authority (CA) path
- Parameters
-
| caInfoFilePath | - The path to a file holding the certificates used to verify the peer with. See CURLOPT_CAINFO |
set the custom headers map. This will replace the currently configured headers with the provided ones. If you want to add additional headers, use AppendHeader()
- Parameters
-
| void RestClient::Connection::SetTimeout |
( |
int |
seconds | ) |
|
set timeout for connection
- Parameters
-
| seconds | - timeout in seconds |
| void RestClient::Connection::SetUserAgent |
( |
const std::string & |
userAgent | ) |
|
set custom user agent for connection. This gets prepended to the default restclient-cpp/RESTCLIENT_VERSION string
- Parameters
-
| userAgent | - custom userAgent prefix |
The documentation for this class was generated from the following files:


2015 Reading Log
I started listening to audiobooks this year, which meant that I could read in the most uncomfortable situations! Walking around the city! Commuting on the BART! Going on a run! I’ve also been sewing a lot this year, and came home almost every night to sew and read with a giant mug of tea. While I didn’t read significantly more books this year than last (33 v. 27), the length of the books I read increased, and I started reading more nonfiction.
I also read a ton of space operas this year. :D
For a prettier view, Goodreads has a great year in review.
Favorites (in approximate order)
- ✨Emperor of All Maladies✨, Siddhartha Mukherjee
- A very well-written book that explains the intricate mechanics of cancer in a really approachable way. I can’t recommend this enough.
- ✨Sisters of the Revolution✨
- An anthology of feminist science fiction. It was disturbing and heart-warming and provocative in all the right ways. This was way too intense to read continuously.
- ✨The Dispossessed✨, Ursula Le Guin
- I loved this book. It’s currently my go-to explanation for why I love science fiction – it enables you to set up a universe where you can explore fun concepts for the length of the novel. Working at a mostly structureless startup transitioning to a proper organization, the pitfalls of structurelessness are eerily familiar.
- ✨The Death and Life of Great American Cities✨, Jane Jacobs
- So delightful! This resonates really well, and many of Jacobs’ complaints still hold true. She rails against large “superblocks” and praises mixed-use neighborhoods.
- ✨Embassytown✨, China Miéville
- Like most of China Miéville’s books, the ideas he explores stick with me for a very long time. Unlike most of China Miéville’s books, I really enjoyed the characters and the plot in this book. Where City and the City is a good metaphor for the world we live in, Embassytown is a good metaphor for languages. This is kind of the “Darmok & Jalad” idea, but at novel-lengths.
- ✨House of Suns✨, Alastair Reynolds
- This was a fantastic space opera, with really fun characters and a great world! The basic conceit is a deep-space chase scene that takes place over millenia, by a society of clones enmeshed in a conspiracy involving conscious robots. FUN.
And everything else! These were really good, too.
Winter 2015
- The City and The City, China Miéville
- I wasn’t really sold on it while I was reading it, but the world has really stuck with me since. It’s a great metaphor to use when describing split worlds. This hits my biggest pet peeve with detective stories, though – I hate that I didn’t understand the mechanics of the world enough to follow along with the mystery; my favorite parts of mysteries are picking up on the clues and solving the problems alongside the main character.
- Season of the Witch, David Talbot
- Breathless prose, but amazing stories. Don’t read it for the writing. There are some less-than-tasteful chapter titles, but this is a really great history of San Francisco, and all of the tumult it’s seen – the Summer of Love, the Zebra Killings, Harvey Milk, the Grateful Dead, Jefferson Airplane, Patty Hearst, the People’s Temple, and more.
- Hild, Nicola Griffith
- This is a novel set in fifth century England, where all the main characters are women with agency. They control much of the politics, all of the economy, and (mostly) their own lives. I want to use this book as a counterpoint whenever someone waves away lazy depictions of women in fantasy/medieval stories by explaining that “oh, women just didn’t have much of a role back then.” I’m so glad I bought the audiobook for this. This is near incomprehensible as a written novel, because the prose feels like it’s more meant to be listened to than read.
Spring 2015
- Three Body Problem, Cixin Liu
- I enjoyed this book a lot – the premise is great. This has 3 distinct tones – starts as psychological horror, transitions to hard science fiction, and ends a little action thriller. The nihilism was a really interesting touch, and got me into a lot of discussions with Harold. If you do read this, take care to not read synopses/blurbs for the book!
- Quantum Thief, Hannu Rajaniemi
- Interesting read. Couldn’t get a hang of what tone this was trying to set. This is also super packed with cyberbabble, which doesn’t usually bother me, but was a little dense here. That said, the world was great – there’s a spinoff on the “brain in the cloud” trope, a society that has access control lists for your life, and time as a literal currency. A little Miéville.
Summer 2015
- Golem and the Jinni, Helene Wecker
- Really lovely. I know the book’s flawed in a number of ways, but I still really enjoyed reading it.
- Player of Games, Iain Banks
- Kind of trite. A dude is good at games!  The games are a metaphor! I see why people love this, but it’s a fairly weak Culture novel, though a good intro to the universe.
- Use of Weapons, Iain Banks
- I liked this a lot better than Player of Games – the ethics are a bit more grey. The characters are interesting and multidimensional, and Skaffen-Amtiskaw is a fantastic drone. The middle dragged a bit, but the ending is pretty masterful.
- 2001: A Space Odyssey, Arthur C. Clarke
- A classic. Goes into more detail than the movie does – they were written at the same time, with the book as the more fleshed-out story, and the movie with more fleshed-out visuals.
- The Speed of Dark, Elizabeth Moon
- POV of an autistic character. It’s told with a lot of compassion, but the characters are kind of cartoonish.
- Six Months, Three Days, Charlie Jane Anders
- Pragmatic Programmer, Andrew Hunt, David Thomas
- A decent overview of a bunch of best practices. For example – Don’t keep separate copies of config/data, automate as much as possible, build out the simplest end-to-end implementation of a system asap.
- Chaos: Making a New Science, James Gleick
- Fun popular science, but doesn’t get much deeper, either as a biography or as a study of the science.
- The Man Who Mistook His Wife for a Hat, Oliver Sacks
- A set of existential horror stories, if you read them that way. Even scarier for being true!
- Nimona, Noelle Stevenson
- An adorable comic about an irreverent, shapeshifting little girl. The graphics are gorgeous, and the characters lovable. I read this webcomic religiously in high school, and I’m glad to have the hardcover now. :)
- The Little Schemer
- A delightful introduction to Scheme/Lisp, focusing on recursion. Written in a question/response style.
Fall/Winter 2015
- Dark Forest, Cixin Liu
- I have such a love/hate relationship with this book. The premise is great – if you had 4 centuries to prepare for an alien invasion, but the aliens have magically stopped the progress of basic science, what would you do? The characters are awful, though, and the women are almost entirely infuriating, childish caricatures, and the protagonist wandered in from a Murakami novel. The ideas, though!
- Ancillary Mercy, Ann Leckie
- The return of my favorite agender spaceship! And the last in the series. Premise: what if your emperor’s consciousness were a distributed system, and a partition happened? 🍵🐓🐟🎶🚀
- Goblin Emperor, Katherine Addison
- A great character study, where the protagonist is kind and compassionate, and things work out for him! That said, everything working out was a little too pat – it fell into the “if I’m a great guy, things will be just fine!” There wasn’t a unifying story to root for, which made the book a little unsatisfying.
- Mr. Penumbra’s 24-Hour Bookstore, Robin Sloan
- Adorable, but super cringey. Unabashedly enthusiastic.
- Station Eleven, Emily St. John Mandel
- Moody and atmospheric, but it drags a little, and ends a little abruptly. Not sure what I think of it.
- Shards of Honour, Lois McMaster Bujold
- a measured space opera romance. Cheesy, but comforting. I hear this is the weakest in the series; if so, I’m very excited to read the rest.
- Rainbows End, Vernor Vinge
- Fairly disappointing. It has promise, but doesn’t really go anywhere with it. Doesn’t help that none of the characters are particularly likeable.
- Leviathan Wakes, James S.A. Corey
- Characterization is kind of flat, but the story and world make up for that. The pace really kicks off about halfway through, and it’s a really fun read.
Comments


| 1 | /* | |
| 2 | * Licensed to the Apache Software Foundation (ASF) under one or more | |
| 3 | * contributor license agreements. See the NOTICE file distributed with | |
| 4 | * this work for additional information regarding copyright ownership. | |
| 5 | * The ASF licenses this file to You under the Apache License, Version 2.0 | |
| 6 | * (the "License"); you may not use this file except in compliance with | |
| 7 | * the License. You may obtain a copy of the License at | |
| 8 | * | |
| 9 | * http://www.apache.org/licenses/LICENSE-2.0 | |
| 10 | * | |
| 11 | * Unless required by applicable law or agreed to in writing, software | |
| 12 | * distributed under the License is distributed on an "AS IS" BASIS, | |
| 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| 14 | * See the License for the specific language governing permissions and | |
| 15 | * limitations under the License. | |
| 16 | */ | |
| 17 | package org.apache.commons.imaging.formats.psd.dataparsers; | |
| 18 | ||
| 19 | import org.apache.commons.imaging.formats.psd.ImageContents; | |
| 20 | ||
| 21 | public class DataParserStub extends DataParser { | |
| 22 | @Override | |
| 23 | protected int getRGB(final int data[][][], final int x, final int y, | |
| 24 | final ImageContents imageContents) { | |
| 25 |
1
1. getRGB : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE |
return 0; |
| 26 | } | |
| 27 | ||
| 28 | @Override | |
| 29 | public int getBasicChannelsCount() { | |
| 30 |
1
1. getBasicChannelsCount : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE |
return 1; |
| 31 | } | |
| 32 | ||
| 33 | } | |
Mutations | ||
| 25 |
1.1 |
|
| 30 |
1.1 |


Pylon API¶
-
class
pylon.
Cloudant
(url, username, password, **kwargs)[source]¶ The Cloudant class represents an authenticated session to a remote CouchDB/Cloudant instance.
It supports request retries on 429 responses from Cloudant.
-
all_docs
(database, **kwargs)[source]¶ Query the primary index.
Parameters: database – the name of the database we’re interested in. Return type: dict - Usage::
>>> docs = remote.all_docs('directory', keys=[ '7a36cbc16e43e362e1ae68861aa06c0f', '7a36cbc16e43e362e1ae68861aa06da1'])
See http://docs.couchdb.org/en/1.6.1/api/database/bulk-api.html#db-all-docs
-
all_docs_streamed
(database, **kwargs)[source]¶ Query the primary index, streaming the results. Generator of dicts.
Parameters: database – the name of the database we’re interested in. Return type: generator - Usage::
>>> for doc in remote.all_docs_streamed('directory', keys=[ '7a36cbc16e43e362e1ae68861aa06c0f', '7a36cbc16e43e362e1ae68861aa06da1' ]): print doc
See http://docs.couchdb.org/en/1.6.1/api/database/bulk-api.html#db-all-docs
-
bulk_docs
(database, data=[], **kwargs)[source]¶ Raw _bulk_docs.
This is a function primarily intended for internal use, but can be used directly to create, update or delete documents in bulk, so as to save on the HTTP overhead.
Parameters: - database – the name of the database we’re interested in.
- data – the list of documents to send
Return type: list
Note that many other methods are implemented in terms of bulk_docs.
>>> result = remote.bulk_docs('directory', [{'name':'alice'}, {'name':'bob'}])
See http://docs.couchdb.org/en/1.6.1/api/database/bulk-api.html#post–db-_bulk_docs
-
changes_streamed
(database)[source]¶ Convenience method for streaming a changes feed. Generator of dict.
Parameters: database – the name of the database we’re interested in. - Usage::
>>> from pylon import Cloudant >>> remote = Cloudant('https://user.cloudant.com', 'username', 'password') >>> changes = {doc['id']:True for doc in remote.changes_streamed('database') if 'id' in doc}
-
create_database
(database)[source]¶ Create a new database on the remote end called database. Returns the response body and a boolean which is true if a database was created, false if it already existed.
Parameters: database – the name of the database we’re interested in. Return type: tuple - Usage::
>>> (result, created) = remote.create_database('directory')
See http://docs.couchdb.org/en/1.6.1/CouchDB/database/common.html#put–db
-
database_info
(database)[source]¶ Return the metadata about a database.
Parameters: database – the name of the database we’re interested in. Return type: dict - Usage::
>>> result = remote.database_info('directory')
See http://docs.couchdb.org/en/1.6.1/CouchDB/database/common.html#get–db
-
delete_database
(database)[source]¶ Delete a database.
Parameters: database – the name of the database we’re deleting. Return type: dict - Usage::
>>> result = remote.delete_database('directory')
See http://docs.couchdb.org/en/1.6.1/CouchDB/database/common.html#delete–db
-
delete_doc
(database, docid, revid)[source]¶ Delete a document revision. Implemented via the _bulk_docs endpoint.
Parameters: - database – the name of the database we’re interested in.
- docid – document id
- revid – revision id
Return type: dict
- Usage::
>>> result = remote.delete_doc('directory', '7a36cbc16e43e362e1ae68861aa06c0f', '1-5a05c08a7a601c49c8bc344d77e23020')
See http://docs.couchdb.org/en/1.6.1/api/database/bulk-api.html#post–db-_bulk_docs
-
insert
(database, data={})[source]¶ Insert one or more new documents. If data is a dict, this is considered to be the body of a single document. If data is a list of dicts, these are considered to be a document set.
Note that this is implemented via the _bulk_docs endpoint, rather than a POST to /{database}.
Parameters: - database – the name of the database we’re interested in.
- data – a document (represented by a dict), or a list of documents
- Usage::
>>> single = remote.insert('directory', {'name':'alice'}) >>> multiple = remote.insert('directory', [{'name':'bob'}, {'name':'carl'}])
See http://docs.couchdb.org/en/1.6.1/api/database/bulk-api.html#post–db-_bulk_docs
-
list_databases
()[source]¶ Return a list of all databases under the authenticated user.
Return type: list - Usage::
>>> result = remote.list_databases()
See http://docs.couchdb.org/en/1.6.1/CouchDB/server/common.html#all-dbs
-
read_doc
(database, docid, **kwargs)[source]¶ Fetch a document from the primary index by docid
Parameters: - database – the name of the database we’re interested in.
- docid – the id of the document.
Return type: dict
See http://docs.couchdb.org/en/1.6.1/api/document/common.html#get–db-docid
- Usage::
>>> from pylon import Cloudant >>> remote = Cloudant('https://user.cloudant.com', 'username', 'password') >>> doc = remote.read_doc('animaldb', '7a36cbc16e43e362e1ae68861aa06c0f', rev='1-5a05c08a7a601c49c8bc344d77e23020')
-
request
(method, urlstr, **kwargs)[source]¶ Perform an HTTP request, returning the repsonse. This overrides the method from requests.Session.
Cloudant will return HTTP status ‘429: Too Many Requests’ if the reserved throughput capacity is exceeded. This method will retry a configurable number of times if this happens.
This method raises a requests.HTTPError for HTTP status code >= 400.
See https://docs.cloudant.com/http.html#http-status-codes
Parameters: - method – method for the new
Request
object. - url – URL for the new
Request
object. - params – (optional) Dictionary or bytes to be sent in the query string for the
Request
. - data – (optional) Dictionary, bytes, or file-like object to send in the body of the
Request
. - json – (optional) json data to send in the body of the
Request
. - headers – (optional) Dictionary of HTTP Headers to send with the
Request
. - cookies – (optional) Dict or CookieJar object to send with the
Request
. - files – (optional) Dictionary of
'name': file-like-objects
(or{'name': file-tuple}
) for multipart encoding upload.file-tuple
can be a 2-tuple('filename', fileobj)
, 3-tuple('filename', fileobj, 'content_type')
or a 4-tuple('filename', fileobj, 'content_type', custom_headers)
, where'content-type'
is a string defining the content type of the given file andcustom_headers
a dict-like object containing additional headers to add for the file. - auth – (optional) Auth tuple to enable Basic/Digest/Custom HTTP Auth.
- timeout (float or tuple) – (optional) How long to wait for the server to send data before giving up, as a float, or a (connect timeout, read timeout) tuple.
- allow_redirects (bool) – (optional) Boolean. Enable/disable GET/OPTIONS/POST/PUT/PATCH/DELETE/HEAD redirection. Defaults to
True
. - proxies – (optional) Dictionary mapping protocol to the URL of the proxy.
- verify – (optional) whether the SSL cert will be verified. A CA_BUNDLE path can also be provided. Defaults to
True
. - stream – (optional) if
False
, the response content will be immediately downloaded. - cert – (optional) if String, path to ssl client cert file (.pem). If Tuple, (‘cert’, ‘key’) pair.
Returns: Response
objectReturn type: requests.Response
- Usage::
>>> from pylon import Cloudant >>> remote = Cloudant('https://user.cloudant.com', 'username', 'password') >>> req = remote.request('GET', 'https://user.cloudant.com/database') <Response [200]>
- method – method for the new
-
request_streamed
(method, urlstr, **kwargs)[source]¶ Convenience method for streaming a request. Takes the same parameters as Cloudant.request().
Generator HTTP request using the authenticated session object. Not intended to be used directly. See convenience methods Cloudant.changes_streamed() and Cloudant.all_docs_streamed().
- Usage::
>>> # Note: to stream the changes feed, use changes_streamed() instead. >>> from pylon import Cloudant >>> remote = Cloudant('https://user.cloudant.com', 'username', 'password') >>> ch = remote.request_streamed('GET', endpoint(self.url, path('database', '/_changes')), params={'style':'all_docs', 'feed':'continuous', 'timeout':0}) >>> changes = {doc['id']:True for doc in ch if 'id' in doc}
-
retry_config
(max_retries=5, base_delay=0.1)[source]¶ Tune the retry parameters for 429 errors.
The default is 5 retries with an accumulative delay. Each iteration adds a fixed amount (default 0.1s) plus a little bit of noise (between 0 and 9 1/100th of a second) between retries.
Parameters: - max_retries – integer - max attempts when receiving a 429
- base_delay – float (seconds) to add to the delay between attempts
- Usage::
>>> remote.retry_config(10, 0.5)
-
update_doc
(database, docid, revid, body={})[source]¶ Update an existing document, creating a new revision.
Implemented via the _bulk_docs endpoint.
Parameters: - database – the name of the database we’re interested in.
- docid – document id
- revid – revision id
- body – new document body, as a dict
Return type: dict
- Usage::
>>> result = remote.update_doc('directory', '7a36cbc16e43e362e1ae68861aa06c0f', '1-5a05c08a7a601c49c8bc344d77e23020', {'name':'alice', 'phone':'07865432236'})
See http://docs.couchdb.org/en/1.6.1/api/database/bulk-api.html#post–db-_bulk_docs
-
view_query
(database, ddoc, viewname, **kwargs)[source]¶ Query a secondary index.
Parameters: - database – the name of the database we’re interested in.
- ddoc – design document name
- viewname – name of view function
Return type: dict
- Usage::
>>> cloudant.view_query(db, "my_ddoc", "my_view", keys=["alice", "bob"]) >>> { "rows": [ {"key" => "alice", "id" => "591c02fa8b8ff14dd4c0553670cc059a", "value" => 1}, {"key" => "bob", "id" => "591c02fa8b8ff14dd4c0553670cc13c1", "value" => 1} ], "offset": 0, "total_rows": 7 )
-


A person from the room you wish to join should send you a 6-character temporary key. Note that someone can only invite you to a room if they are an admin in that room. Do NOT use this to invite your other sessions to a room. Instead, go to your account settings and choose to sync your other sessions.


HOME
Menu
Helpful Sites
Contact Us
Choose Your Favourite Pizzas
Cheese Pizza
Pepperoni Pizza
Veggie Pizza
Hawaiian Pizza
Meat Lovers Pizza
Fully Loaded Pizza
Helpful Sites Page


Importance sampling from the truncated multivariate normal using the GHK (Geweke-Hajivassiliou-Keane) simulator. Unlike Gibbs sampling which can get stuck in one truncation sub-region depending on initial values, this package allows truncation based on disjoint regions that are created by truncation of absolute values. The GHK algorithm uses simple Cholesky transformation followed by recursive simulation of univariate truncated normals hence there are also no convergence issues. Importance sample is returned along with sampling weights, based on which, one can calculate integrals over truncated regions for multivariate normals.
| Version: | 1.0-2 |
| Published: | 2016-12-15 |
| Author: | Samsiddhi Bhattacjarjee |
| Maintainer: | Samsiddhi Bhattacharjee <sb1 at nibmg.ac.in> |
| License: | GPL-2 |
| URL: | https://www.r-project.org |
| NeedsCompilation: | yes |
| CRAN checks: | tmvnsim results |
| Reference manual: | tmvnsim.pdf |
| Package source: | tmvnsim_1.0-2.tar.gz |
| Windows binaries: | r-devel: tmvnsim_1.0-2.zip, r-release: tmvnsim_1.0-2.zip, r-oldrel: tmvnsim_1.0-2.zip |
| OS X binaries: | r-release: tmvnsim_1.0-2.tgz, r-oldrel: tmvnsim_1.0-2.tgz |
| Old sources: | tmvnsim archive |
Please use the canonical form https://CRAN.R-project.org/package=tmvnsim to link to this page.


{% load static %}
Shared Buffer
{{ name }}
Language Mode:
java
haskell
python
Share this buffer with friends:
https://buffersonline.com/read/{{ public_key }}


About
Disclaimer: The Golden Ratio is not everywhere
Click on XKCD comic below by Randal Munroe
Learning to Code HTML/CSS
This website is a project in fulfillment of HTML/CSS learning objectives:
- Viewport tag
- Variables in CSS
- Media Queries
- Tabular Data
- Flex box layout
- Grid layout
- Google Fonts
- CSS: target pseudo selector to create the hamburger navigation component
- Masonry layout using CSS column
- Media sharing: audio/video hosting, video and map embedding
- Fixed Layout


Match Play. 0-0 to 5. Should Red redouble? If redoubled, should White take?
pips Red=127 White=58
(CorrectAnswer= 0/0, ErrorScore= 0)
For money it would be a double blunder to redouble here. With a fully active cube giving it away now is definitely wrong by a long way.
However, at this match score, getting to 4-0 (Crawford) or even winning the match with a gammon is massive and not redoubling is a double blunder. For the umpteenth time the match score determines the decision.
However, at this match score, getting to 4-0 (Crawford) or even winning the match with a gammon is massive and not redoubling is a double blunder. For the umpteenth time the match score determines the decision.
Cube analysis 2-ply cubeless equity +0.240 (Money: +0.243) 0.624 0.140 0.004 - 0.376 0.148 0.002 Cubeful equities: 1. Double, take +0.450 2. Double, pass +1.000 (+0.550) 3. No double +0.434 (-0.016) Proper cube action: Redouble, take


Index
|
Contact
|
Examples
|
Tags
|
Table
|
Grid
|
Bender
|
Curriculum
|
Galeria
|
Finding Methods
|
Interval Letters
|
Clock
|
Carrousel
|
Mix
Trolled
Scroll a bit more on Index


{% extends 'mainSite/main.html' %} {% block content %}
The charts below are created based on the data collected from daily working of the NTU Printshop. For more information contact the project manager.


Nokia 7.1, 8 Sirocco & 3.1 Plus receiving November Security update 2019 now
by NayanNokia 7.1, 3.1 Plus & 8 Sirocco have started receiving the November Android Security update 2019 in many markets. These two Nokia smartphones have received only the November security patch and no new OS build. Check below for the update size, list of markets and the update changelog.
For all software update news related to other Nokia smartphones click here.
On the basis of tips received from our readers, we will collate a list of markets for the Nokia 7.1, 3.1 Plus & 8 Sirocco for which November Security update is now available. So, do let us know if you have received the update in the comments section. You can also try the VPN trick for getting the update and see if it works.
List of markets:
- Nokia 7.1 in India & Norway
- Nokia 8 Sirocco in India
- Nokia 3.1 Plus in India
Nokia 7.1 November update size:
The update size for Nokia 7.1 is 62.3 MB in size. You will either be prompted to download this update or you can check by going to Settings and searching system updates and then by checking for the update.
Nokia 8 Sirocco November update size:
The update size for Nokia 8 Sirocco is 94.3 MB in size. You will either be prompted to download this update or you can check by going to Settings and searching system updates and then by checking for the update.
Nokia 3.1 Plus November update size:
The update size for Nokia 3.1 Plus is 97.7 MB in size. You will either be prompted to download this update or you can check by going to Settings and searching system updates and then by checking for the update.
Nokia 7.1, 3.1 Plus & 8 Sirocco November Security update changelog:
The changelog only mentions the November Android Security update for Nokia 7.1, 3.1 Plus & 8 Sirocco. The most severe of these issues is a critical security vulnerability in the System component that could enable a remote attacker using a specially crafted file to execute arbitrary code within the context of a privileged process.
Read the complete details of the November Security update here.
HMD has been quite consistent in terms of releasing Monthly Security updates and OS updates for Nokia smartphones already available in the market. HMD has also made it clear that all Nokia Android Phones will receive a minimum of two years of OS update support.
Thanks, Tim, Uday, Uviktig & Khogendro for the tip & screenshot. Cheers!!


Sr Business Analyst (Reporting & ERP) -Contract-to-Hire
Raleigh, NC
Business Analyst (Reporting & ERP) -Contract-to-Hire
Boston, MA
Project Manager - Business Intelligence
San Francsico, CA
Sr Quality Engineer
San Jose, CA
Jr Javascript Developer - Contract-to-Hire
San Jose, CA
Chief Technology Officer
San Jose, CA
1. Sr Business Analyst (Customer Service) -Contract-to-Hire
Raleigh, NC
2. Business Analyst (Logistics) -Contract-to-Hire
Boston, MA
3. Android Software Engineer
San Francsico, CA
iOS Software Engineer
Raleigh, NC
Senior Technology Architect - Mobile
Boston, MA
Associate Project Manager - New Business Development
San Francsico, CA
Senior Product Manager - Mobile Apps
San Jose, CA
User Experience Architect - Business Solutions
San Jose, CA
User Interface Designer - Mobile
San Jose, CA


Structures
The following structures are available globally.
-
Utility struct containing logic for building
See moreCallTask
instances forPCloudAPIMethod
s.Declaration
Swift
public struct PCloudAPICallTaskBuilder
-
Utility struct containing logic for building
See moreUploadTask
instances forPCloudAPIMethod
s.Declaration
Swift
public struct PCloudAPIUploadTaskBuilder
-
Utility struct containing logic for building
See moreDownloadTask
instances.Declaration
Swift
public struct PCloudAPIDownloadTaskBuilder
-
File namespace.
See moreDeclaration
Swift
public struct File
-
Folder namespace.
See moreDeclaration
Swift
public struct Folder
-
Parses
See moreFile.Media.Icon
from a pCloud API response dictionary.Declaration
Swift
public struct FileIconParser : Parser
-
Parses
See moreFile.Media.ImageMetadata
from a pCloud API response dictionary.Declaration
Swift
public struct ImageMetadataParser : Parser
-
Parses
See moreFile.Media.VideoMetadata
from a pCloud API response dictionary.Declaration
Swift
public struct VideoMetadataParser : Parser
-
Parses
See moreFile.Media.AudioMetadata
from a pCloud API response dictionary.Declaration
Swift
public struct AudioMetadataParser : Parser
-
Parses
See moreFile.Metadata
from a pCloud API response dictionary.Declaration
Swift
public struct FileMetadataParser : Parser
-
Parses
See moreFolder.Metadata
from a pCloud API response dictionary.Declaration
Swift
public struct FolderMetadataParser : Parser
-
FileLink namespace.
See moreDeclaration
Swift
public struct FileLink
-
Call namespace.
See moreDeclaration
Swift
public struct Call
-
Upload namespace.
See moreDeclaration
Swift
public struct Upload
-
Download namespace.
See moreDeclaration
Swift
public struct Download
-
OAuth namespace.
See moreDeclaration
Swift
public struct OAuth
-
Concrete implementation of
See moreAuthenticator
using an OAuth2 access token.Declaration
Swift
public struct OAuthAccessTokenBasedAuthenticator
extension OAuthAccessTokenBasedAuthenticator: Authenticator
-
PCloudAPI namespace.
See moreDeclaration
Swift
public struct PCloudAPI
-
A dummy RawRepresentable that cannot be initialized.
See moreDeclaration
Swift
public struct NullError : RawRepresentable
-
Undocumented
See moreDeclaration
Swift
public struct URLSessionBasedNetworkOperationUtilities
-
The state of a pCloud API upload session.
See moreDeclaration
Swift
public struct UploadInfo
-
Parses
See moreUploadInfo
from a pCloud API response dictionary.Declaration
Swift
public struct UploadInfoParser : Parser
-
User namespace.
See moreDeclaration
Swift
public struct User
-
Parses
See moreUser.Metadata
from a pCloud API response dictionary.Declaration
Swift
public struct UserMetadataParser : Parser
-
An implementation of
See moreCancellable
that does nothing.Declaration
Swift
public struct VoidCancellationToken : Cancellable


DOUBLE JEOPARDY
Reviewed by Harvey Karten Paramount Pictures Director: Bruce Beresford Writer: David Weisberg & Douglas Cook Cast: Tommy Lee Jones, Ashley Judd, Annabeth Gish, Bruce Greenwood
To paraphrase the words of my esteemed online colleague, Chuck Schwartz aka The Cranky Critic, if the story of "Double Jeopardy" were printed in a supermarket tabloid, the headline would be, "I killed my husband who then stole my baby." That's pretty much what happens, but "Double Jeopardy" is a the sort of thriller that has been done in more or less the same, routine style during the '70s, the '80s and the '90s. No matter how colorful the photography (and the scenes from British Columbia are mighty pretty) and how exciting the chase scenes (and they do make the heart skip a beat), director Bruce Beresford has double-jeopardized any chance he may have considered of winning points for originality.
Exceptionally well cast, the movie is tailored for the likes of Tommy Lee Jones as the cynical seen-all ex-law professor busted from his profession for a fatal accident involving drunk driving and now in charge of a halfway house for women on conditional parole. But Ashley Judd walks away with the show doing a fine job as a woman sent up the river for a crime she did not commit who is bent not so much on revenge as on recovering the little boy she could not hold for the six years.
What I hear from people who watch too much TV is that you could easily save your eight bucks by watching the commercial for the film, which pretty gives away the plot. And since the action scenes and color photography are generic, however stirring, what good is a psychological thriller with no twists to tease the audience?
"Double Jeopardy" opens on what appears to be a deliriously happy young couple, Nick (Bruce Greenwood) and Libby (Ashley Judd), who have an adorable four-year-old boy, Matty (Benjamin Weir). After they set sail on a boat that Nick has offered to buy for his wife and soon indulge in the obligatory love-making, Libby falls asleep only to wake up to an empty craft filled with puddles of blood. Catching her with a knife clenched in her fist, the Coast Guard picks her up, she is tried for murder and sent to prison despite the absence of a body. She learns from an ex-lawyer in her cell area that she could kill her husband in the middle of Times Square and get away with it, since the prohibition against double jeopardy would bar a new trial. Paroled six years later to a half-way house under the direction of the hard-headed Travis (Tommy Lee Jones), Libby is determined to track down her husband who, she discovers is still alive and prospering and recover her little boy, but the disbelieving Travis is determined to find her and send her back to prison for curfew violations.
From time to time the Australian-born director Bruce Beresford, known for more challenging work like "Breaker Morant" two decades ago about cynical military politics and for the Oscar-winning "Driving Miss Daisy" in 1989, cuts to the chase. One particularly exciting pursuit finds Libby, already in top shape for working out in prison, outrun by two cops who are presumably weighed down by paraphernalia. In yet another chase, Travis pursues his captured and handcuffed prey into the water to the astonishment of hordes of tourists. (Does anyone believe he would leave his prisoner the keys to the ignition while he goes into a cafeteria for a snack?)
The picture has the usual plot holes and a typical fussy finale in which the culprit is downed because he hesitates before he shoots. Can a man presumably dead who turns up as a high-profile hotelier in New Orleans can go unrecognized for six years? The film is partially redeemed by a solid performance from the exquisite thirty-one year old Ashley Judd, who turned in a layered role in "Ruby in Paradise" some time back and a substantial job as a vulnerable drug addict in "Smoke" four years ago.
Rated R. Running Time: 105 minutes. (C) 1999 Harvey Karten
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


XMLNodeSet
public final class XMLNodeSet
Instances of this class represent an immutable collection of DOM nodes. An instance provides the interface similar to
the Node
’s one.
-
Concatenated HTML content of nodes in the collection. May be
nil
if no content is available.Declaration
Swift
public var html: String?
-
Concatenated XML content of nodes in the collection. May be
nil
if no content is available.Declaration
Swift
public var xml: String?
-
Concatenated inner HTML content of nodes in the collection.
Declaration
Swift
public var innerHTML: String?
-
Concatenated text content of nodes in the collection. May be
nil
if no content is available.Declaration
Swift
public var text: String?
-
Creates an empty collection of nodes.
Declaration
Swift
public init()
-
Creates a collection of nodes from the provided array of
XMLElement
sDeclaration
Swift
public init(nodes: [XMLElement])
Parameters
nodes
Nodes to create a node set from.
-
The position of the first element in a nonempty collection.
If the collection is empty,
startIndex
is equal toendIndex
.Declaration
Swift
public var startIndex: Int
-
Accesses the element at the specified position.
The following example accesses an element of an array through its subscript to print its value:
var streets = ["Adams", "Bryant", "Channing", "Douglas", "Evarts"] print(streets[1]) // Prints "Bryant"
You can subscript a collection with any valid index other than the collection’s end index. The end index refers to the position one past the last element of a collection, so it doesn’t correspond with an element.
Parameter
Parameter position: The position of the element to access.position
must be a valid index of the collection that is not equal to theendIndex
property.Declaration
Swift
public subscript(position: Int) -> XMLElement
Parameters
position
The position of the element to access.
position
must be a valid index of the collection that is not equal to theendIndex
property. -
The collection’s
past the end
position—that is, the position one greater than the last valid subscript argument.When you need a range that includes the last element of a collection, use the half-open range operator (
..<
) withendIndex
. The..<
operator creates a range that doesn’t include the upper bound, so it’s always safe to use withendIndex
. For example:let numbers = [10, 20, 30, 40, 50] if let index = numbers.index(of: 30) { print(numbers[index ..< numbers.endIndex]) } // Prints "[30, 40, 50]"
If the collection is empty,
endIndex
is equal tostartIndex
.Declaration
Swift
public var endIndex: Int
-
Returns the position immediately after the given index.
Returns
The index value immediately afteri
.Declaration
Swift
public func index(after i: Int) -> Int
Parameters
i
A valid index of the collection.
i
must be less thanendIndex
.Return Value
The index value immediately after
i
.
-
Returns a Boolean value indicating whether two values are equal.
Equality is the inverse of inequality. For any values
a
andb
,a == b
implies thata != b
isfalse
.- Parameters:
- lhs: A value to compare.
- rhs: Another value to compare.
Declaration
Swift
public static func ==(lhs: XMLNodeSet, rhs: XMLNodeSet) -> Bool
Parameters
lhs
A value to compare.
rhs
Another value to compare.
- Parameters:
-
A textual representation of this instance.
Instead of accessing this property directly, convert an instance of any type to a string by using the
String(describing:)
initializer. For example:struct Point: CustomStringConvertible { let x: Int, y: Int var description: String { return "(\(x), \(y))" } } let p = Point(x: 21, y: 30) let s = String(describing: p) print(s) // Prints "(21, 30)"
The conversion of
p
to a string in the assignment tos
uses thePoint
type’sdescription
property.Declaration
Swift
public var description: String


class UncaughtThrowError
Raised when throw
is called with a tag which does not
have corresponding catch
block.
throw "foo", "bar"
raises the exception:
UncaughtThrowError: uncaught throw "foo"
Public Class Methods
new(*args)
click to toggle source
Document-class: UncaughtThrowError
Raised when throw
is called with a tag which does not
have corresponding catch
block.
throw "foo", "bar"
raises the exception:
UncaughtThrowError: uncaught throw "foo"
static VALUE uncaught_throw_init(int argc, const VALUE *argv, VALUE exc) { rb_check_arity(argc, 2, UNLIMITED_ARGUMENTS); rb_call_super(argc - 2, argv + 2); rb_ivar_set(exc, id_tag, argv[0]); rb_ivar_set(exc, id_value, argv[1]); return exc; }
Public Instance Methods
tag → obj
click to toggle source
Return the tag object which was called for.
static VALUE uncaught_throw_tag(VALUE exc) { return rb_ivar_get(exc, id_tag); }
to_s → string
click to toggle source
Returns formatted message with the inspected tag.
static VALUE uncaught_throw_to_s(VALUE exc) { VALUE mesg = rb_attr_get(exc, id_mesg); VALUE tag = uncaught_throw_tag(exc); return rb_str_format(1, &tag, mesg); }
value → obj
click to toggle source
Return the return value which was called for.
static VALUE uncaught_throw_value(VALUE exc) { return rb_ivar_get(exc, id_value); }


Hillel Katzir
Democrat
Current occupation: Rabbi. Current part-time employers: Congregation B'nai Butte, Crested Butte, CO; adjunct faculty, Colorado State University. Also practiced law for 15 years in California and New Mexico.
BA degree from UCLA (1979); JD degree from University of LaVerne (1986); Rabbinic Ordination from Rabbinical Seminary International, 2004.
80524
As an active member of Together Colorado, World Wisdoms Project, Interfaith Council and Jewish Action Network, I have worked with representatives of many faith communities from many parts of Colorado to advocate for ballot measures and community projects to help build better communities in the State. As producer of a public affairs radio program in Fort Collins I have brought to the public's attention issues and NGOs that are working for better community for everyone, and also provided public access to public officials through interviews.
Donated to Democratic candidates for US Senate in Texas, Kentucky and elsewhere. Worked in a US Senate campaign in California in 1970.
As producer of local radio program, I have interviewed some office holders (Rep. Neguse, St.Sen. Joann Ginal, St.Rep. Jeni Arndt, Fort Collins Mayor Pro Tem Kristen Stephens); moderated public debate of candidates for mayor of Fort Collins; Board Member of World Wisdoms Project, Fort Collins; Member, Jewish Action Network of Northern Colorado; Member, Together Colorado; Member, Southern Poverty Law Center; Member, ACLU of Colorado; former member, Fort Collins Area Interfaith Council.
As a student and teacher of American History and the Constitution, I believe fair representation of all members of a community is an important tool to achieving the goals of the American political experiment. I want to serve on the commission to help achieve that fair representation for all Coloradans, regardless of party affiliation, race, religion or national origin.
I have worked for many years to bring people together across perceived dividing lines, especially in interfaith work, but also racial, ethnic and cultural lines. In 2019 I trained with the organization Better Angels to be a moderator of workshops designed to foster healthy and respectful discussion between people on different sides of the political divide. In the four years, I have been teaching refresher courses on the U.S. Constitution to all who have been interested, regardless of political persuasion, to remind everyone that we are all part of the American system, even when we disagree on issues.
Law school graduate, practiced law for 15 years in California and New Mexico; familiar with critical thinking practiced in the Jewish religion and study of Torah and Talmud; teacher of law, Constitution and other topics requiring critical thinking.
Male


Organ Eyez
Setup
Pricing
Founder
Login
Login
Email address
We'll never share your email with anyone else.
Password
Sign-In
Sign-Up
First Name
Last Name
Email
Password
Sign-Up Code
Organization
Choose
Sign Up


@* * Copyright 2016 HM Revenue & Customs * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *@ @(title: String, helloForm: Form[uk.gov.hmrc.exampleplay25.hello.HelloData])(implicit request: Request[_], messages: Messages) @import uk.gov.hmrc.play.views.html.helpers @uk.gov.hmrc.exampleplay25.views.html.main_template(title, bodyClasses = Some("hello-form")) {


+
-
Reset
power saving mode is:
On
Switch
DEGREES
Weather in
London
Current temperature
degrees
Change city


Class: Cask::DSL::Caveats Private
- Extended by:
- Predicable
- Defined in:
- cask/dsl/caveats.rb
Overview
This class is part of a private API. This class may only be used in the Homebrew/brew repository. Third parties should avoid using this class if possible, as it may be removed or changed without warning.
Class corresponding to the caveats
stanza.
Each method should handle output, following the convention of at least one trailing blank line so that the user can distinguish separate caveats.
The return value of the last method in the block is also sent to the output by the caller, but that feature is only for the convenience of cask authors.
Instance Method Summary collapse
-
#eval_caveats(&block) ⇒ Object
private
-
#initialize(*args) ⇒ Caveats
constructor
private
A new instance of Caveats.
-
#puts(*args) ⇒ Object
private
Override
puts
to collect caveats. -
#to_s ⇒ Object
private
Methods included from Predicable
Methods inherited from Base
#method_missing, #system_command
Constructor Details
#initialize(*args) ⇒ Caveats
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
Returns a new instance of Caveats.
22 23 24 25 26 27 |
# File 'cask/dsl/caveats.rb', line 22 def initialize(*args) super(*args) @built_in_caveats = {} @custom_caveats = [] @discontinued = false end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class Cask::DSL::Base
Instance Method Details
#eval_caveats(&block) ⇒ Object
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
50 51 52 53 54 55 56 |
# File 'cask/dsl/caveats.rb', line 50 def eval_caveats(&block) result = instance_eval(&block) return unless result return if result == :built_in_caveat @custom_caveats << result.to_s.sub(/\s*\Z/, "\n") end |
#puts(*args) ⇒ Object
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
Override puts
to collect caveats.
45 46 47 48 |
# File 'cask/dsl/caveats.rb', line 45 def puts(*args) @custom_caveats += args :built_in_caveat end |
#to_s ⇒ Object
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
40 41 42 |
# File 'cask/dsl/caveats.rb', line 40 def to_s (@custom_caveats + @built_in_caveats.values).join("\n") end |


SCARY MOVIE RATING: 7.5/10 --> Very good movie
For more reviews and movie screensavers, visit http://www.joblo.com/
I generally rate "spoof films" by the number of jokes that work in the film versus those that didn't. Classics like AIRPLANE, TOP SECRET and NAKED GUN get high marks for achieving an exceptionally high ratio of jokes that hit their mark, while others like MAFIA, HOT SHOTS and HIGH SCHOOL HIGH barely rattle off an average of 50%. This film is Keenen Ivory Wayans' third shot at the "spoof movie" gold, and after a decent effort with I'M GONNA GIT YOU SUCKA and lackluster results with DON'T BE A MENACE..., it looks like he's finally found the right formula. SCARY MOVIE is a funny movie.
PLOT: Hmmm...how could I put this? Do you remember the story line from the original SCREAM? Well, it's basically the same story but played out as a parody.  That's about it. Mix in a few other lampoons of other films, and there you have it.
CRITIQUE: The funniest movie that I've seen so far this year, I couldn't help but crack up during every other second of this film's first 30 minutes, with jokes a-plenty, an excellent re-creation of the spoofed films and spot-on potshots at the teen horror genre. Parody films work when most of the jokes in the film click, and this one had no problem delivering plenty of gross, over-the-top and clever moments in supposed tribute to those films which passed before it. Admittedly, the second half of the movie doesn't really keep up the joke-a-minute pace that the first half hour establishes early on, but plenty of funny moments still reside, lots of big laughs and a pretty neat ending keep it enjoyable all the way through.  I love the whole "spoof" genre and worried about the six (count 'em, six!) people credited as screenwriters for this movie. Fortunately for me, my worries were very short-lived as the jokes began rattling of my funny bone within the first few seconds of this flick.
Of course, the actors are always a very big part of movies such as this. They have to able to play their roles very seriously, and I give the most credit to Anna Faris in this regard, as she nailed the lead role down to a tee. Shannon Elizabeth was also good as the big-boobed bimbo, as was Marlon Wayans as the heterosexual jock with a few issues locked away in his closet. I think Cheri Oteri's character was a little underused, and despite finding most of the pot jokes pretty hilarious, I didn't really appreciate Shawn Wayans' over-the-top goofy pothead character. But hey, maybe that's just me! I also could have done without the whole MATRIX parody, which was already covered in DEUCE BIGALOW, earlier this year. Overall, the movie delivers laughs, clever moments a plenty, references galore, a cameo here and there, and even some pretty gruesome moments of murder (although they do still manage to lace those moments with humor just the same). In the end, I really liked the movie because it basically made fun of all of the stuff we always find unbelievable in horror films, and they did it while maintaining the authenticity from the original films.
 For the rest of ya'll, if THERE'S SOMETHING ABOUT MARY and SOUTH PARK were enjoyable to you, this one should be just another walk in the park.
Little Known Facts about this film and its stars: SCARY MOVIE was the original title of Kevin Williamson's SCREAM screenplay. Some of the films that are spoofed in this one include the SCREAM flicks, the I KNOW WHAT YOU DID... flicks, THE SIXTH SENSE, THE BLAIR WITCH PROJECT, PULP FICTION, AMISTAD, TITANIC, THE USUAL SUSPECTS, THE MATRIX and a couple of others, which I am sure to have missed. There is also an entire sequence which essentially parodies a complete "whazzup!" commercial. Carmen Electra's character spoofs the role Drew Barrymore played in the original SCREAM movie. Which is why her character's name is Drew in this one. Get it? Shannon Elizabeth's name is Buffy in this film, an obvious reference to "Buffy, The Vampire Slayer", the popular TV series starring Sarah Michelle Gellar. Note that Shannon's dad in this film is referred to as "Mr. Gellar". Just as in the original SCREAM movie, in which Henry Winkler played the principal (he's best known for having played The Fonz on TV's "Happy Days"), this one slapped another goofy leather-jacket wearing TV-star from the 70s as the principal. Principal Squiggy is played by David Lander (best known for his role as Squiggy on TV's "Laverne & Shirley"). This film was spliced together from two spoof scripts respectively named: "Last Summer I Screamed Because Halloween Fell On Friday the 13th" and "Scream If You Know What I Did Last Halloween".
Review Date: July 4, 2000 Director: Keenen Ivory Wayans Writers: Marlon Wayans, Shawn Wayans, Phil Beauman, Jason Friedberg, Buddy Johnson and Aaron Seltzer Producers: Eric L. Gold, Lee R. Mayes Actors: Anna Faris as Cindy Campbell Shannon Elizabeth as Buffy Gilmore Shawn Wayans as Ray Marlon Wayans as Randy Genre: Comedy Year of Release: 2000 ------------------------------------ JoBlo's Movie Emporium http://www.joblo.com/ ------------------------------------ (c) 2000 Berge Garabedian
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


SVG Icons - Generated by IcoMoon
Notice: This demo (along with "symbol-defs.svg" and "svgxuse.js" files) should be hosted on a web server to work properly.


PRICE WILLIAMS Richards&asociates Chambers 150 Airport Road, Lagos Nigeria<EMAIL_ADDRESS>CONFIDENTIAL AND EXCLUSIVE BUSINESS NEGOTIATION PROPOSAL. TRANSFER OF $15 MILLION UNCLAIMED FUNDS I am PRINCE WILLIAMS, an attorney . I was the personal attorney to MR HAMADA KASUMOTO(hereinafter refered as my client) from KOBE, JAPAN , who was a consultant with Shell-Development Company . On the 21st of April 2001, MR HAMADA was involved in a fatal road accident and died on the spot with his wife and two kids. Since then I have made several enquiries to the EMBASSY to locate any of my client's relatives or next of kin, this has also proved unsuccessful. I was appointed his trustee and sole admnistrator of his estate which includes his Bank Account. I am contacting you to assist in repatriating the money and property left behind by my client before it is confiscated or declared unserviceable by the bank where this deposit was lodged. Particularly the finance company where he has a Bank account deposit with credit balance $15 million dollars ( Fifteen million dollars ) have issued me a notice to provide the next of kin. I seek your consent to present you as the next of kin so that the proceeds of this account valued at $15 million dollars can be paid to you and then we can share the money. 50% to me and they Bank officers who will assist to accomplish it successfully while 45% to you. Then the balance of 5% will be reserved for incidental expences. I have all necessary legal documents that can be used to back up this transaction. All I require is your honest cooperation to enable us see this deal through. I am very sure with your trust and asistance, we will successfully and legally transfer this money to you before the Bank Management take any decision about it. As an experience lawyer, I guarantee that this will be executed under a legitimate arrangement that will protect you from any breach of the law as we have also arranged to immediately close the account immediately after the transfer. Please get in touch with me through my email as stated below and send to me your telephone and fax numbers to enable us discuss further about this transaction. I hereby attach the CERTIFICATE OF APPOINTMENT as his trustee and sole administrator of his estate and also the current statement of his already dormant Bank Account with Union Bank Finance securities which my client operated before the unfortunate incident with a fixed deposit Balance of $15M. Also attached is a form for next of kin for you to fill carefully and append your signature then return by email attachment or fax. Please contact me immediately through my email<EMAIL_ADDRESS>Note however, that your nature of business,sex or country of origin will not be a hindrance to the transfering of this money. Best regards, and peace be with you. Please if you want clarification or my personal photograph and international passport and driving licence, I will be happy to provide it provided you will not betray my trust and confidence in you and that you will provide yours too. PRINCE WILLIAMS email<EMAIL_ADDRESS>--


Archimedes Story
“From what I gather, those are latitude and longitude coordinates for a specific place on a map. Latitude is a north/south location on the globe, where 0 degrees is the equator, and longitude is an east-west location, where 0 degrees is on the Prime Meridian, which runs through a town in England named Greenwich. Would you like to learn more about latitude and longitude coordinates and the geographic coordinate system?”
COORDINATES
Example: the point (12,5) is 12 units along, and 5 units up. But there are other types of coordinates, such as polar coordinates and 3 dimensional coordinates.


Example 1
The SSH server will be able to access TCP port 80 on the SSH client by connecting to <IP_ADDRESS>:8000 on the SSH server.
Command line:
ssh -R <IP_ADDRESS>:8000:<IP_ADDRESS>:80 <IP_ADDRESS>
~/.ssh/config:
RemoteForward <IP_ADDRESS>:8000 <IP_ADDRESS>:80
Example 2
The SSH server will be able to access TCP port 80 on <IP_ADDRESS> (a host accessible from the SSH client) by connecting to <IP_ADDRESS>:8000 on the SSH server.
Command line:
ssh -R <IP_ADDRESS>:8000:<IP_ADDRESS>:80 <IP_ADDRESS>
~/.ssh/config:
RemoteForward <IP_ADDRESS>:8000 <IP_ADDRESS>:80
Example 3
The SSH server will be able to access TCP port 80 on <IP_ADDRESS> (a host accessible from the SSH client) by connecting to TCP port 8000 on the SSH server. Any other hosts able to connect to TCP port 8000 on the SSH server will also be able to access <IP_ADDRESS>:80. This can sometimes be insecure.
Command line:
ssh -R <IP_ADDRESS>:8000:<IP_ADDRESS>:80 <IP_ADDRESS>
~/.ssh/config:
RemoteForward <IP_ADDRESS>:8000 <IP_ADDRESS>:80