Functions have been the basic building blocks of software since the first lines of code were written and the need for code organization and reuse became a necessity. Azure Functions expand on these concepts by allowing developers to create "serverless", event-driven functions that run in the cloud and can be shared across a wide variety of services and systems, uniformly managed, and easily scaled based on demand. In addition, Azure Functions can be written in a variety of languages, including C#, JavaScript, Python, Bash, and PowerShell, and they're perfect for building apps and nanoservices that employ a compute-on-demand model.
In this lab, you will create an Azure Function that monitors a blob container in Azure Storage for new images, and then performs automated analysis of the images using the Microsoft Cognitive Services Computer Vision API. Specifically, The Azure Function will analyze each image that is uploaded to the container for adult or racy content and create a copy of the image in another container. Images that contain adult or racy content will be copied to one container, and images that do not contain adult or racy content will be copied to another. In addition, the scores returned by the Computer Vision API will be stored in blob metadata.
In this hands-on lab, you will learn how to:
The following are required to complete this hands-on lab:
This hands-on lab includes the following exercises:
Estimated time to complete this lab: 45 minutes.
The first step in writing an Azure Function is to create an Azure Function App. In this exercise, you will create an Azure Function App using the Azure Portal. Then you will add the three blob containers to the storage account that is created for the Function App: one to store uploaded images, a second to store images that do not contain adult or racy content, and a third to contain images that do contain adult or racy content.
Open the Azure Portal in your browser. If asked to log in, do so using your Microsoft account.
Click + New, followed by Compute and Function App.
Creating an Azure Function App
Enter an app name that is unique within Azure. Under Resource Group, select Create new and enter "FunctionsLabResourceGroup" (without quotation marks) as the resource-group name to create a resource group for the Function App. Choose the Location nearest you, and accept the default values for all other parameters. Then click Create to create a new Function App.
The app name becomes part of a DNS name and therefore must be unique within Azure. Make sure a green check mark appears to the name indicating it is unique. You probably won't be able to use "functionslab" as the app name.
Creating a Function App
Click Resource groups in the ribbon on the left side of the portal, and then click the resource group created for the Function App.
Opening the resource group
Periodically click the Refresh button at the top of the blade until "Deploying" changes to "Succeeded," indicating that the Function App has been deployed. Then click the storage account that was created for the Function App.
Opening the storage account
Click Blobs to view the contents of blob storage.
Opening blob storage
Click + Container. Type "uploaded" into the Name box and set Access type to Private. Then click the OK button to create a new container.
Adding a container
Repeat Step 7 to add containers named "accepted" and "rejected" to blob storage.
Confirm that all three containers were added to blob storage.
The new containers
The Azure Function App has been created and you have added three containers to the storage account created for it. The next step is to add an Azure Function.
Once you have created an Azure Function App, you can add Azure Functions to it. In this exercise, you will add a function to the Function App you created in Exercise 1 and write C# code that uses the Computer Vision API to analyze images added to the "uploaded" container for adult or racy content.
Return to the blade for the "FunctionsLabResourceGroup" resource group and click the Azure Function App that you created in Exercise 1.
Opening the Function App
Click the + sign to the right of Functions. Then click Custom function.
Adding a function
Set Language to C#. Then click BlobTrigger-CSharp.
Selecting a function template
Enter "BlobImageAnalysis" (without quotation marks) for the function name and "uploaded/{name}" into the Path box. (The latter applies the blob storage trigger to the "uploaded" container that you created in Exercise 1.) Then click the Create button to create the Azure Function.
Creating an Azure Function
Replace the code shown in the code editor with the following statements:
using Microsoft.WindowsAzure.Storage.Blob;
using Microsoft.WindowsAzure.Storage;
using System.Net.Http.Headers;
using System.Configuration;
public async static Task Run(Stream myBlob, string name, TraceWriter log)
{
log.Info($"Analyzing uploaded image {name} for adult content...");
var array = await ToByteArrayAsync(myBlob);
var result = await AnalyzeImageAsync(array, log);
log.Info("Is Adult: " + result.adult.isAdultContent.ToString());
log.Info("Adult Score: " + result.adult.adultScore.ToString());
log.Info("Is Racy: " + result.adult.isRacyContent.ToString());
log.Info("Racy Score: " + result.adult.racyScore.ToString());
if (result.adult.isAdultContent || result.adult.isRacyContent)
{
// Copy blob to the "rejected" container
StoreBlobWithMetadata(myBlob, "rejected", name, result, log);
}
else
{
// Copy blob to the "accepted" container
StoreBlobWithMetadata(myBlob, "accepted", name, result, log);
}
}
private async static Task<ImageAnalysisInfo> AnalyzeImageAsync(byte[] bytes, TraceWriter log)
{
HttpClient client = new HttpClient();
var key = ConfigurationManager.AppSettings["SubscriptionKey"].ToString();
client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", key);
HttpContent payload = new ByteArrayContent(bytes);
payload.Headers.ContentType = new MediaTypeWithQualityHeaderValue("application/octet-stream");
var results = await client.PostAsync("https://westus.api.cognitive.microsoft.com/vision/v1.0/analyze?visualFeatures=Adult", payload);
var result = await results.Content.ReadAsAsync<ImageAnalysisInfo>();
return result;
}
// Writes a blob to a specified container and stores metadata with it
private static void StoreBlobWithMetadata(Stream image, string containerName, string blobName, ImageAnalysisInfo info, TraceWriter log)
{
log.Info($"Writing blob and metadata to {containerName} container...");
var connection = ConfigurationManager.AppSettings["AzureWebJobsStorage"].ToString();
var account = CloudStorageAccount.Parse(connection);
var client = account.CreateCloudBlobClient();
var container = client.GetContainerReference(containerName);
try
{
var blob = container.GetBlockBlobReference(blobName);
if (blob != null)
{
// Upload the blob
blob.UploadFromStream(image);
// Get the blob attributes
blob.FetchAttributes();
// Write the blob metadata
blob.Metadata["isAdultContent"] = info.adult.isAdultContent.ToString();
blob.Metadata["adultScore"] = info.adult.adultScore.ToString("P0").Replace(" ","");
blob.Metadata["isRacyContent"] = info.adult.isRacyContent.ToString();
blob.Metadata["racyScore"] = info.adult.racyScore.ToString("P0").Replace(" ","");
// Save the blob metadata
blob.SetMetadata();
}
}
catch (Exception ex)
{
log.Info(ex.Message);
}
}
// Converts a stream to a byte array
private async static Task<byte[]> ToByteArrayAsync(Stream stream)
{
Int32 length = stream.Length > Int32.MaxValue ? Int32.MaxValue : Convert.ToInt32(stream.Length);
byte[] buffer = new Byte[length];
await stream.ReadAsync(buffer, 0, length);
stream.Position = 0;
return buffer;
}
public class ImageAnalysisInfo
{
public Adult adult { get; set; }
public string requestId { get; set; }
}
public class Adult
{
public bool isAdultContent { get; set; }
public bool isRacyContent { get; set; }
public float adultScore { get; set; }
public float racyScore { get; set; }
}
Run is the method called each time the function is executed. The Run method uses a helper method named AnalyzeImageAsync to pass each blob added to the "uploaded" container to the Computer Vision API for analysis. Then it calls a helper method named StoreBlobWithMetadata to create a copy of the blob in either the "accepted" container or the "rejected" container, depending on the scores returned by AnalyzeImageAsync.
Click the Save button at the top of the code editor to save your changes. Then click View files.
Saving the function
Click + Add to add a new file, and name the file project.json.
Adding a project file
Add the following statements to project.json:
{
"frameworks": {
"net46": {
"dependencies": {
"WindowsAzure.Storage": "7.2.0"
}
}
}
}
Click the Save button to save your changes. Then click run.csx to go back to that file in the code editor.
Saving the project file
An Azure Function written in C# has been created, complete with a JSON project file containing information regarding project dependencies. The next step is to add an application setting that the Azure Function relies on.
The Azure Function you created in Exercise 2 loads a subscription key for the Microsoft Cognitive Services Computer Vision API from application settings. This key is required in order for your code to call the Computer Vision API, and is transmitted in an HTTP header in each call. In this exercise, you will subscribe to the Computer Vision API, and then add an access key for the subscription to application settings.
In the Azure Portal, click + New, followed by AI + Cognitive Services and Computer Vision API.
Creating a new Computer Vision API subscription
Enter "VisionAPI" into the Name box and select F0 as the Pricing tier. Under Resource Group, select Use existing and select the "FunctionsLabResourceGroup" that you created for the Function App in Exercise 1. Check the I confirm box, and then click Create.
Subcribing to the Computer Vision API
Return to the blade for the "FunctionsLabResourceGroup" resource group and click the Computer Vision API subscription that you just created.
Opening the Computer Vision API subscription
Click Show access keys.
Viewing the access keys
Click the Copy button to the right of KEY 1 to copy the access key to the clipboard.
Copying the access key
Return to the Function App in the Azure Portal and click the function name in the ribbon on the left. Then click Platform features, followed by Application settings.
Viewing application settings
Scroll down to the "App settings" section. Add a new app setting named "SubscriptionKey" (without quotation marks), and paste the subscription key that is on the clipboard into the Value box. Then click Save at the top of the blade.
Adding a subscription key
The app settings are now configured for your Azure Function. It's a good idea to validate those settings by running the function and ensuring that it compiles without errors. Click BlobImageAnalysis. Then click Run to compile and run the function. Confirm that "Compilation succeeded" appears in the output log, and ignore any exceptions that are reported.
Compiling the function
The work of writing and configuring the Azure Function is complete. Now comes the fun part: testing it out.
Your function is configured to listen for changes to the blob container named "uploaded" that you created in Exercise 1. Each time an image appears in the container, the function executes and passes the image to the Computer Vision API for analysis. To test the function, you simply upload images to the container. In this exercise, you will use the Azure Portal to upload images to the "uploaded" container and verify that copies of the images are placed in the "accepted" and "rejected" containers.
In the Azure Portal, go to the resource group created for your Function App. Then click the storage account that was created for it.
Opening the storage account
Click Blobs to view the contents of blob storage.
Opening blob storage
Click uploaded to open the "uploaded" container.
Opening the "uploaded" container
Click Upload.
Uploading images to the "uploaded" container
Click the button with the folder icon to the right of the Files box. Select all of the files in this lab's "Resources" folder. Then click the Upload button to upload the files to the "uploaded" container.
Uploading images to the "uploaded" container
Return to the blade for the "uploaded" container and verify that eight images were uploaded.
Images uploaded to the "uploaded" container
Close the blade for the "uploaded" container and open the "accepted" container.
Opening the "accepted" container
Verify that the "accepted" container holds seven images. These are the images that were classified as neither adult nor racy by the Computer Vision API.
It may take a minute or more for all of the images to appear in the container. If necessary, click Refresh every few seconds until you see all seven images.
Images in the "accepted" container
Close the blade for the "accepted" container and open the blade for the "rejected" container. Verify that the "rejected" container holds one image. This image was classified as adult or racy (or both) by the Computer Vision API.
Images in the "rejected" container
The presence of seven images in the "accepted" container and one in the "rejected" container is proof that your Azure Function executed each time an image was uploaded to the "uploaded" container. If you would like, return to the BlobImageAnalysis function in the portal and click Monitor. You will see a log detailing each time the function executed.
What if you would like to view the scores for adult content and raciness returned by the Computer Vision API for each image uploaded to the "uploaded" container? The scores are stored in blob metadata for the images in the "accepted" and "rejected" containers, but blob metadata can't be viewed through the Azure Portal.
In this exercise, you will use the cross-platform Microsoft Azure Storage Explorer to view blob metadata and see how the Computer Vision API scored the images you uploaded.
If you haven't installed the Microsoft Azure Storage Explorer, go to http://storageexplorer.com and install it now. Versions are available for Windows, macOS, and Linux.
Start Storage Explorer. If you are asked to log in, do so using the same account you used to log in to the Azure Portal.
Find the storage account that was created for your Azure Function App in Exercise 1 and expand the list of blob containers underneath it. Then click the container named "rejected."
If this is the first time you have run Storage Explorer, you may have to click the person icon and tell it which Azure subscription or subscriptions you want it to display.
Opening the "rejected" container
Right-click (on a Mac, Command-click) the image in the "rejected" container and select Properties from the context menu.
Viewing blob metadata
Inspect the blob's metadata. IsAdultContent and isRacyContent are Boolean values that indicate whether the Computer Vision API detected adult or racy content in the image. adultScore and racyScore are the computed probabilities.
Scores returned by the Computer Vision API
Open the "accepted" container and inspect the metadata for some of the blobs stored there. How do these metadata values differ from the ones attached to the blob in the "rejected" container?
You can probably imagine how this might be used in the real world. Suppose you were building a photo-sharing site and wanted to prevent adult images from being stored. You could easily write an Azure Function that inspects each image that is uploaded and deletes it from storage if it contains adult content.
In this hands-on lab you learned how to:
This is just one example of how you can leverage Azure Functions to automate repetitive tasks. Experiment with other Azure Function templates to learn more about Azure Functions and to identify additional ways in which they can aid your research or business.
Copyright 2016 Microsoft Corporation. All rights reserved. Except where otherwise noted, these materials are licensed under the terms of the MIT License. You may use them according to the license as is most appropriate for your project. The terms of this license can be found at https://opensource.org/licenses/MIT.


This is a growing map of MMIW/P resources available across Turtle Island to help groups and families quickly locate agencies, non-profits, grassroots, and other organizations that provide direct services to families of MMIW/P and survivors of violence. The map was co-developed by Waking Women Healing Institute, the Data + Feminism Lab, and MIT students. We hope to improve responses and increase access to support for those experiencing violence and cases of MMIW/P.
Each dot opens a pop-up that shares the location, contact details, and services available for each known entity. Notably, this is an on-going, collaborative effort to map Indigenous-led, community-based organizations and we welcome your suggestions for groups that should be on the map. Please reach out to us with your suggestions at<EMAIL_ADDRESS>and<EMAIL_ADDRESS>Credits: Waking Women Healing Institute: Kristin Welch, Dr. Renee Gralewicz, Paula Mohan, Marianne Flynn Statz, Katelyne Welch, Alysse Corn; MIT Data + Feminism Lab: Catherine D’Ignazio, Kevin Lee, Dení López, Patricia García Iruegas, Ana Letelier, Hannah Shumway, Melissa Teng, Julia Christina Camacho, Betzabe Valdés, Gus Raymond
Data sources: The Safe Passage mapping project by the Native Women's Association of Canada. The National Center for Victims of Crime, National Congress of American Indians, Tribal Law and Policy Institute, and StrongHearts Native Helpline’s Tribal Resource Tool. Indigenous nation names and traditional territory boundaries from Native Land Digital. Data on government recognized Indigenous territories from Natural Resources Canada and the US Census Bureau.
Thanks to Profs. Gabriella Carolini and Larry Susskind for leading the Indigenous Environmental Planning course from which our collaboration began.


TABLE OF CONTENTS
A. GS1 Related B. GS2 Related POLITY 1. Penal law soon on triple talaq 2. No need for privacy in court: Supreme Court INTERNATIONAL AFFAIRS/BILATERAL RELATIONS 1. India pulls off a diplomatic coup, wins prized ICJ seat 2. 'Rakhine State Is a Crime Scene.' Amnesty International Accuses Myanmar of Apartheid 3. China draws 3-stage path for Myanmar, Bangladesh to resolve Rohingya crisis C. GS3 Related SCIENCE AND TECHNOLOGY 1. India calls for stronger treaties to protect space assets 2. Govt. unveils draft of law to regulate space sector 3. Oldest stars in our galaxy discovered ENVIRONMENTAL SCIENCE AND ECOLOGY 1. An app to get tiger numbers right D. GS4 Related E. Prelims Fact F. UPSC Prelims Practice Questions G. UPSC Mains Practice Questions
Nothing here for Today!!!
1. Penal law soon on triple talaq
In news:
- The Union government has set up a ministerial committee to frame a new law that would attract penal provisions in the case of use of triple talaq or talaq-e-biddat for divorce between Muslim couples, and will be bringing the new Bill in the winter session of Parliament.
Talaq-e-biddat:
- The Supreme Court had, in August this year, in a majority judgement set aside the practice of talaq-e-biddat, an arbitrary and unilateral decision by a Muslim husband to end the marriage by utterance of the word talaq three times.
Key Point : As the law stands today, the victims have no option even after approaching the police as there exists no provision in law to take action against the husband.
2. No need for privacy in court: Supreme Court
Context:
- The possibilities of having audio and video recordings of proceedings in the constitutional courts — the Supreme Court and the high courts.
In news:
- Judges have no need for privacy inside the courtrooms they preside in, Supreme Court judge, Justice A.K. Goel, said, giving the thumbs-up for audio and video recording of court proceedings.
- Unlike the legislature, proceedings inside courtrooms have been a zealously guarded affair.
- The to and fro between lawyers and judges, submissions made by the advocates and questions asked from the Bench have hitherto been beyond the eye of the camera or the ear of a recorder.
Category: INTERNATIONAL AFFAIRS/BILATERAL RELATIONS
1. India pulls off a diplomatic coup, wins prized ICJ seat
In news:
- India’s nominee to the International Court of Justice (ICJ), Dalveer Bhandari, was re-elected after the United Kingdom withdrew its candidate, Christopher Greenwood.
- The U.K. chose to withdraw after it became clear that it would not win the contest in the General Assembly (GA) and it did not have adequate support in the United Nations Security Council (UNSC) for its attempts to derail the voting process itself.
Notable incident :
- This is the first time in the 70-year history of the United Nations that the U.K. will not be on the ICJ; and this is the first time that one of the five permanent members of the UNSC lost out to an ordinary member in a race.
- This is also the first time that one sitting member of the ICJ lost to another sitting member.
Basic Information:
International Court of Justice:
- The International Court of Justice is the primary judicial branch of the United Nations (UN). Seated in the Peace Palace in The Hague, Netherlands, the court settles legal disputes submitted to it by states and provides advisory opinions on legal questions submitted to it by duly authorized international branches, agencies, and the UN General Assembly.
- The ICJ is composed of fifteen judges elected to nine-year terms by the UN General Assembly and the UN Security Council from a list of people nominated by the national groups in the Permanent Court of Arbitration.
- The election process is set out in Articles 4–19 of the ICJ statute. Elections are staggered, with five judges elected every three years to ensure continuity within the court. Should a judge die in office, the practice has generally been to elect a judge in a special election to complete the term.
2. ‘Rakhine State Is a Crime Scene.’ Amnesty International Accuses Myanmar of Apartheid
In news:
- Amnesty International said that Myanmar’s persecution of Rohingya Muslims fits the legal definition of apartheid, a crime against humanity.
- In a report based on a two-year investigation, the group said that Rohingya, a mostly stateless minority from Myanmar’s western state of Rakhine, are “trapped in a vicious system of state-sponsored, institutionalized discrimination.”
- Amnesty traces the roots of the crisis to systemic discrimination and segregation that has intensified dramatically since 2012, when deadly riots erupted between Buddhists and Muslims in several parts of the state. Buddhists make up the majority in both Rakhine state and in the country at large.
- Key Fact: The Rohingya are widely considered one of the world’s most persecuted minorities.
Basic Information:
Apartheid
Apartheid was a system of institutionalised racial segregation and discrimination in South Africa between 1948 and 1991.Broadly speaking, apartheid was delineated into petty apartheid, which entailed the segregation of public facilities and social events, and grand apartheid, which dictated housing and employment opportunities by race
3. China draws 3-stage path for Myanmar, Bangladesh to resolve Rohingya crisis
Context:
- China has proposed a three-phase plan for resolving the Rohingya crisis, starting with a ceasefire in Myanmar’s Rakhine State so that refugees can return from Bangladesh, China’s Foreign Ministry said ahead of meeting of European and Asian officials in Myanmar.
Rohingya crisis
- The refugee crisis erupted after the military launched a brutal counter-insurgency operations against the militants after attacks on an army base and dozens of police security posts in Rakhine on Aug. 25.
- Consequently, more than 600,000 Muslim Rohingya fled to Bangladesh .
- Myanmar’s military has said that all fighting against the Rohingya Islamist militants died out on Sept.5, but it remains on guard against incursions by fighters who had fled to Bangladesh with the refugees.
- The group behind those attacks, Arakan Rohingya Salvation Army (ARSA), had declared a one-month ceasefire on Sept.10, which was rejected by the government. But there have been no serious clashes since.
- The refugees’ suffering has caused an international outcry.
Asia-Europe Meeting (ASEM)
- The foreign ministers Asia-Europe Meeting, or ASEM, opening in the Myanmar is an important multilateral diplomatic gathering which happens once every two years and is designed to discuss issues between Asia and Europe.
China’s 3 stage solution :
- The first stage is to effect a ceasefire on the ground, to return to stability and order, so the people can enjoy peace and no longer be forced to flee.
- According to Chinese official the first phase’s aim has already basically been achieved, and the key is to prevent a flare-up.
- Second stage is bilateral dialogue to find a workable solution.
- The third phase should be to work toward a long-term solution based on poverty alleviation as poverty was the root cause of the conflict.
Myanmar’s Increased Engagement with the World
- The United States and other Western countries have become more engaged with Myanmar since it began a transition to civilian government after nearly 50 years of military rule.
- China has close relations with both Myanmar and Bangladesh, and has long been a key player in lawless borderlands where rebel ethnic groups have fought Myanmar’s government for decades.
- The conflict in those border regions have occasionally pushed thousands of refugees to seek shelter in China.
- Since the Rohingya crisis, China has repeatedly expressed support for what it calls the Myanmar government’s efforts to protect stability.
- The international community and the United Nations Security Council are expected to give encouragement and support to Myanmar and Bangladesh to create the necessary conditions and a good environment.
Category: SCIENCE AND TECHNOLOGY
1. India calls for stronger treaties to protect space assets
In news:
- Stressing international cooperation in space as in all domains of global commons, India called for strengthening global treaties to protect space-based assets and prevent militarization of outer space
Over 200 treaties
- India had more than 200 international cooperation agreements with more than 40 countries and international organizations
- The maiden moon mission, Chandrayaan-I, is a “successful example of international cooperation with international payloads”
- In May, ISRO launched the communications satellite GSAT-9, also called SAARC satellite, meant to provide connectivity and disaster support to countries in South Asia
- India is party to all the legally binding instruments on outer space
2. Govt. unveils draft of law to regulate space sector
Context:
- Space Activities Bill, 2017.
In News:
- The draft of the country’s first Space Law, stipulates licences for all space-related players and activities.
- The draft also sets out penalties of ₹1 crore and above and jail terms for violations.
- The proposed bill, also seeks to keep the government out of any liability arising out of harm that these commercial activities may cause — to people, environment, other countries or outer space.
- The draft Bill defines objects, people and geography that will come under the future law.
- The Centre will keep a registry of all space objects.
New body proposed
- All persons or entities engaged in space will now need a licence
- The government will form a new authorised body for the purpose of issuing license.
- So far, the national space agency Indian Space Research Organisation’s major works have related to satellites, launchers and applications. These were governed by the Satellite Communication Policy, 2000; the Remote Sensing Data Policy, 2011; and international treaty obligations on outer space activities as mandated by the UN Committee on Peaceful Uses of Outer Space or UNCOPUOS.
Why such a law is needed?
- Increasing applications of Space-based solutions have meant an increased participation of private sector industry and startups.
- Commercial opportunities in space activities and services, nationally and internationally, demand a higher order of participation by private sector agencies. This situation demands a necessary legal environment for orderly performance and growth of space sector.
3. Oldest stars in our galaxy discovered
In news:
- Astronomers have discovered some of the oldest stars in our Milky Way galaxy by determining their locations and velocities.
- Just like humans, stars have a life span: birth, youth, adulthood, senior and death.
- Scientists at Georgia State University in the U.S. focussed on old or “senior citizen” stars, also known as cool subdwarfs , that are much older and cooler in temperature than the Sun.
- In a study, astronomers conducted a census of our solar neighbourhood to identify how many young, adult and old stars are present.
- They targeted stars out to a distance of 200 light years, which is relatively nearby considering the galaxy is more than 1,00,000 light years across.
- A light year is how far light can travel in one year.
Category: ENVIRONMENTAL SCIENCE AND ECOLOGY
1. An app to get tiger numbers right
In news:
- In order to reduce human error and provide more reliable estimates, field data collection for tiger enumeration in the country is set to go digital
- In the forthcoming All-India Tiger Estimation , to be taken up in December-January, the authorities plan to eliminate the process of manual recording of signs of the carnivore and other habitat details
M-STRiPES:
- An app named M-STRiPES (Monitoring System For Tigers-Intensive Protection and Ecological Status) developed by the Wildlife Institute of India, Dehradun will be used for the first time
- Though the app has already been in place in some national parks, its usage and application has been made mandatory only now, for the fourth All-India Tiger Estimation
- With the availability of M-STRiPES, human error will be eliminated and the use of the app would ensure a more robust estimate
About the app
- It is a free app that will be made available to staff participating in the tiger census exercise, and they will feed in their observation during the carnivore sign survey and transect marking
- Details such as pellet density, vegetation status, and human disturbance, if any, will also be recorded
About National Tiger estimates
- The national tiger estimates are conducted once in four years, with the first conducted in 2006
- The last nationwide assessment, held in 2014, pegged the tiger figures across the country at 2,226
- Karnataka alone was home to 400 tigers, a bulk of them in Bandipur and Nagarahole
Nothing here for Today!!!
Kangri or Kanger:
- A kanger is an earthen pot woven around with wicker filled with hot embers used by Kashmiris and Himachalis beneath their traditional clothing to keep the chill at bay, which is also regarded as a work of art. In Kashmir, it is normally kept inside the Phiran, the Kashmiri cloak, or inside a blanket. If a person is wearing a jacket, it may be used as a hand warmer.
- It is generally believed that Kashmiris learnt the use of the kangri from the Italians who were in the retinue of the Mughal emperors, and usually visited the Valley during summer. In Italy (where a similar device was known as a scaldino) and Spain, braziers were made in a great variety of shapes and were profusely ornamented. Historical data, however, contradicts the claim that kangri came to Kashmir from Italy, but it is known that it was used in the time of the Mughal Empire. Those visiting Kashmir for the first time during the winter season are surprised to find people carrying firepots in their hands or in their laps but every Kashmiri know how to handle the apparatus with care. It is a part of Kashmiri tradition and even in modern times it sees a huge demand, and is even used in public or private offices during winters.
F. Practice Questions for UPSC Prelims Exam
Select the correct answer using the code given below:
- 1 only
- 2 only
- 1 & 2 only
- 1, 2 & 3 only
Select the correct statements
- 1 only
- 2only
- Both 1 and 2
- None of the above
G. UPSC Mains Practice Questions
You are a Public Information Officer (PIO) in a government department. You are aware that the
RTI Act 2005 envisages transparency and accountability in administration. The act has functioned
as a check on the supposedly arbitrarily administrative behaviour and actions. However, as a PIO
you have observed that there are citizens who filed RTI applications not for themselves but on
behalf of such stakeholders who purportedly want to have access to information to further their
own interests. At the same time there are these RTI activists who routinely file RTI
applications and attempt to extort money from the decision makers. This type of RTI activism has
affected the functioning of the administration adversely and also possibly jeopardises the
genuineness of the applications which are essentially aimed at getting justice.
What measures would you suggest to separate genuine and non-genuine applications? Give merits
and demerits of your suggestions. (Mains- 2017)
GS Paper III
GS Paper IV


Overview Data Flwo Transformations
Transformations always have at least one input and one output. Inputs can be connected either to other transformations or sources, and the output can also connect to other transformations or to destinations. The purpose of a transformation component is to take the data from its input(s) and post the transformed data to its outputs. This is done on a row-by-row basis. As soon as there is any data in the input, the transformation will start and post the result to the output.
Buffering
Every transformation will come with an input. If the components connected to the input post data faster than the transformation can process it, the buffer will hold this data until the transformation can continue with the next item. This allows a source to read as fast as possible, allowing the already read data to be buffered in the memory - so the transformation will always have some data ready to process.
Non-Blocking and Blocking transformations
Transformation can be either blocking or non-blocking.
Non-Blocking transformations will start to process data as soon as it finds something in its input buffer. In the moment where it discovers data in there, it will start to transform it and send the data to registered output components.
Blocking transformations will stop the data processing for the whole pipe - the input buffer will wait until all data has reached the input. This means it will wait until all sources in the pipe connected to the transformation have read all data from their source, and all transformations before have processed the incoming data. When all data was read from the connected sources and transformations further down the pipe, the blocking transformation will start the transformation. In a transformation of a blocking transformation, you will therefore have access to all data buffered within the memory. For instance, the sort component is a blocking transformation. It will wait until all data has reached the transformation block - then it will sort it and post the sorted data to its output.
Non blocking tranformations
RowTransformations
The RowTransformation is the simplest but most powerful transformation in ETLBox. The generic transformation has two types
- the type of the input data and the type of the output data. When creating a RowTransformation, you pass a delegate describing how each record in the dataflow is transformed. Here you can add any C# code that you like.
The RowTransformation is a non blocking transformation, so it won't use up much memory even for high amoutns of data.
Here is an example that convert a string array into a MySimpleRow
object.
public class MySimpleRow
{
public int Col1 { get; set; }
public string Col2 { get; set; }
}
RowTransformation<string[], MySimpleRow> trans = new RowTransformation<string[], MySimpleRow>(
csvdata =>
{
return new MySimpleRow()
{
Col1 = int.Parse(csvdata[0]),
Col2 = csvdata[1]
};
});
Lookup
The lookup is a row transformation, but before it starts processing any rows it will load all data from the given LookupSource into memory and will make it accessable as a List object. Though the lookup is non-blocking, it will take as much memory as the lookup table needs to be loaded fully into memory.
Here is an example:
DBSource<MyLookupRow> lookupSource = new DBSource<MyLookupRow>(connection, "Lookup");
List<MyLookupRow> LookupTableData = new List<MyLookupRow>();
Lookup<MyInputDataRow, MyOutputDataRow, MyLookupRow> lookup = new Lookup<MyInputDataRow, MyOutputDataRow, MyLookupRow>(
row =>
{
MyOutputDataRow output = new MyOutputDataRow()
{
Col1 = row.Col1,
Col2 = row.Col2,
Col3 = LookupTableData.Where(ld => ld.Key == row.Col1).Select(ld => ld.LookupValue1).FirstOrDefault(),
Col4 = LookupTableData.Where(ld => ld.Key == row.Col1).Select(ld => ld.LookupValue2).FirstOrDefault(),
};
return output;
}
, lookupSource
, LookupTableData
);
Multicast
A multicast split the input into two or more outputs. So basically you duplicate you data.
An example would look like this:
DBSource<MySimpleRow> source = new DBSource<MySimpleRow>(Connection, "Source");
DBDestination<MySimpleRow> dest1 = new DBDestination<MySimpleRow>(Connection, "Destination1");
DBDestination<MySimpleRow> dest2 = new DBDestination<MySimpleRow>(Connection, "Destination2");
DBDestination<MySimpleRow> dest3 = new DBDestination<MySimpleRow>(Connection, "Destination3");
Multicast<MySimpleRow> multicast = new Multicast<MySimpleRow>();
source.LinkTo(multicast);
multicast.LinkTo(dest1);
multicast.LinkTo(dest2);
multicast.LinkTo(dest3);
source.Execute();
dest1.Wait();
dest2.Wait();
dest3.Wait();
MergeJoin
A merge join combines two inputs into one output. A function describes how the two inputs are combined into one output. The type of the output and the inputs can be different, as long as you handle it in the join function. MergeJoin is a non blocking transformation.
Example:
DBSource<MySimpleRow> source1 = new DBSource<MySimpleRow>(Connection, "MergeJoinSource1");
DBSource<MySimpleRow> source2 = new DBSource<MySimpleRow>(Connection, "MergeJoinSource2");
DBDestination<MySimpleRow> dest = new DBDestination<MySimpleRow>(Connection, "MergeJoinDestination");
//Act
MergeJoin<MySimpleRow, MySimpleRow, MySimpleRow> join = new MergeJoin<MySimpleRow, MySimpleRow, MySimpleRow>(
(inputRow1, inputRow2) => {
inputRow1.Col1 += inputRow2.Col1;
inputRow1.Col2 += inputRow2.Col2;
return inputRow1;
});
source1.LinkTo(join.Target1);
source2.LinkTo(join.Target2);
join.LinkTo(dest);
source1.Execute();
source2.Execute();
dest.Wait();
Blocking Transformations
BlockTransformation
A BlockTransformation waits until all data is received at the BlockTranformation - then it will be available in a List object and you can do modifications on your whole data set. Keep in mind that this tranformation will need as much memory as the amount of data you loaded.
BlockTransformation<MySimpleRow> block = new BlockTransformation<MySimpleRow>(
inputData => {
inputData.RemoveRange(1, 2);
inputData.Add(new MySimpleRow() { Col1 = 4, Col2 = "Test4" });
return inputData;
});
Sort
A sort will wait for all data to arrive and then sort the data based on the given sort method.
Comparison<MySimpleRow> comp = new Comparison<MySimpleRow>(
(x, y) => y.Col1 - x.Col1
);
Sort<MySimpleRow> block = new Sort<MySimpleRow>(comp);


--- layout: post status: publish published: true title: 'Pyramid Consulting: Senior PHP(Magento/Drupal) Developer' author: display_name: PR Team login: prteam email<EMAIL_ADDRESS>url: '' author_login: prteam author_email<EMAIL_ADDRESS>wordpress_id: 871 wordpress_url: http://gatheringtalents.com/?p=871 date: '2012-06-05 15:17:25 +0000' date_gmt: '2012-06-05 07:17:25 +0000' categories: - Developer - Jobs tags: [] comments: [] ---
Responsibilities:
Work as Senior Software Developer in Web-based application projects in PHP technology:
• Analyze system requirements
• Participate in system design and implementation.
• Perform as a key member in technical problem resolution in projects with Team Leaders
• Can play the role of a Team Leader to manage several developers in projects.
• Research and sharpen the technical skills
• Coach for junior developers
Requirements:
• 3+ years of web industry experience
• Strong experience with some of frameworks/CMSs
- E-commerce: Magento, Prestashop (Expertise in Magento is a huge advantage)
- CMS/Portal: Drupal, Joomla, Wordpress (Expertise in Drupal is a huge advantage)
- Frameworks: Symfony, Zend, Yii, CakePHP
• Well equipped knowledge with OOP, Design Patterns, Web services (REST, SOAP), Prototols (HTTP(S), FTP, SMTP, POP, SSL…)
• Solid knowledge of AJAX, JavaScript, HTML, CSS, Mysql database
• Expertise in Linux and *NIX command line will be advantaged
• Expertise in Web security (Injection, XSS, CSRF, Misconfigurations …)
• Familiarity with SVN source control, web servers (WAMP, LAMP)
• Good practices in Web 2.0 and Social networking (FB, Gigya, Twitter, Myspace, Youtube) are benefits
• Must be independent, responsible, self-motivated, with ability to learn and achieve superior results.
• Good English and Aptitude to quick research new technologies
• Additional knowledge in JAVA, .NET is a plus.
Location: Ho Chi Minh City
Company information:
Pyramid Consulting is an International Web Agency offering Web-based, Multimedia and Wireless/SMS development services for Europe, North America and APAC clients who are the top International Interactive Marketing Agencies or Enterprise clients, founded since 1999 in Brussels, Belgium (Europe).
Pyramid Consulting Vietnam is the offshore Development Center of Pyramid Consulting Group, started since 2001, providing Online & Mobile development outsourcing services to world-wide customers. Pyramid Consulting Vietnam is currently one of top 3 largest Web development firms in Vietnam and is the only one serving online interactive marketing & e-business industry.
With 10 years of evolution and around more than 250 members, Pyramid Consulting is partner of the top International Interactive Marketing Communication Agencies in Europe (Belgium, France, Holland, UK), North America (Canada, United States) and APAC (Singapre, Hongkong, Australia, Vietnam), such as Publicis Moderm, MRM Worldwide, BBDO proximity, Ogilvy Interactive, McCann, FullSix, YellowPepper, etc.
The company is invested by IDG Ventures.
We offer a friendly, creative and cooperative workplace. Salary is kept competitive in the market.
Join and enrich your values at Pyramid Consulting Vietnam!


im classy
im not
i have an id
i dont
id like to be deleted
append something after me
prepend something before me
One
Two
Three
Four
Five
Six


WITNESS LIST Juvenile Justice & Family Issues Committee April 24, 2003-10:30A HB 79 For: Getting, Roy A. (Texas Fathers Alliance) Green, Jr., Robert L. (Self and Texas Fathers Alliance) HB 1461 For: Getting, Roy A. (Texas Fathers Alliance) Green, Jr., Robert L. (Self and Texas Fathers Alliance) On: Sampson, John J. (Self) HB 1908 On: Benham, Rose (Child Protective Services) Morris, Cathy (Texas Department of Protective and Regulatory Services) HB 1973 Against: Getting, Roy A. (Texas Fathers Alliance) Green, Jr., Robert L. (Self and Texas Fathers Alliance) HB 2225 For: Getting, Roy A. (Texas Fathers Alliance) Against: Best, Mary Anne (Self) Diaz, Vanessa (Self) Ehren, Paula (Self) Killough, Alisa (Self) Rosenkoetter, Eric (Support Kids, Inc.) HB 2253 For: Pena, Jr., Judge Horacio (Self and Mission Municipal Court) On: Nichols, Neil (Texas Youth Commission) SB 317 For: Flores, Nancy (Texas Council on Family Violence) Gaylor, Tom (Texas Municipal Police Association) SB 433 For: Flores, Nancy (Texas Council on Family Violence) Gaylor, Tom (Texas Municipal Police Association) Lippincott, Chris (Texas Association Against Sexual Assault) Against: Getting, Roy A. (Texas Fathers Alliance) Green, Jr., Robert L. (Self and Texas Fathers Alliance)


Babe's bar and grill celebrates final day after 31 years of business
by Melissa ParishAfter 31 years in business, Babe's Bar and Grill is closing for good on Saturday.
The restaurant is set to be demolished on November 26, according to owner Lynn Haker. An apartment building will go up in its place.
On Saturday, a crowd gathered for a final Badger football watch party at the bar.
General Manager Matt Bettschart said the feeling is bittersweet.
"I don't think it's sunk in really for most of us," he said. "Customers, staff, it's just hard to wrap our heads around really."
Construction on the new building is expected to be completed in 2020. While Babe's is closed, a new restaurant owned by Haker is expected to be part of the new development.
"We're excited for the future, and we think that we'll land on our feet," Bettshcart said.


|
Elektra
0.8.23
|
LCDproc is a piece of open source software that displays real-time system information from your Linux/*BSD box on a LCD.
LCDproc's website is a bit outdated but LCDproc itself is now well-maintained on GitHub and had a release recently.
Like in many projects, it invented its own configuration access and INI parser which did not evolve with the needs of the project. As a consequence inconsistencies and code duplication spread over the source. For example, the LCDproc configuration access does not support values that represent display's size (such as 20x4
). Thus every LCDproc's module has its own parsing code for such values.
Some days ago (16.03.2017), we met with Harald Geyer and discussed the current situation. We decided that we will elektrify LCDproc and remove all the configuration access and parsing code within LCDproc. To elektrify an application means to change the application so that it uses LibElektra afterwards.
We formulated three goals:
LCDd.conf
as they use it now.LCDd.conf
, the docbook, in code checking the limits, and the default parameter in the code.)Nice-to-have is:
make install
should not break the current LCDd.conf
. (As it is already done in Debian.)SIGHUP
-signals will work in any case.)500ms
for 0.5s
(seconds).Possible limitations are:
-c
option to specify a different configuration file is against the abstraction Elektra should deliver. We might create a wrapper script that emulates -c
via mountpoints.In any case, the advertised benefits of Elektra will automatically apply (incomplete list):
kdb
-tool which configuration settings LCDproc will receive.LCDd.conf
.)kdb set
to modify individual settings within scripts and validation.kdb editor
, which spawns your favourite editor but validates the configuration file before writing it out.kdb qt-gui
, the Qt GUI (thanks to Raffael Pancheri).LCDd.conf
is not checked out, thanks to Thomas Waser)Instead of if
s within the code, we will use SpecElektra for validation. SpecElektra is a configuration specification language that allows us to describe which configuration is valid.
This specification will be installed as part of LCDproc to /usr/share/elektra/specifications
. It uses the metadata as defined by the plugins to validate configuration changed via Elektra.
For broken installations or when executing LCDproc from the source repository, there is also a built-in specification. The specification will only be used if the installed one cannot be found.
Thus the configuration validation specification is a normal configuration file also integrated in Elektra, also the specification can be introspected: useful for system administrators who want to know about valid entries, but also for tools like our newly developed web-UI by Daniel Bugl.
The web-UI automatically restricts the interface so that only valid entries can be entered. For example, if you should enter a boolean, only a check box is presented to you.
We (mainly Dominik Hofer) are currently developing a high-level API, whose first user will be LCDproc. In this API, we will make sure during compilation, that configuration access is done correctly.
This is especially useful when configuration settings get renamed. Then all places where out-dated configuration settings are used will fail to compile.
In particular using code generation developers do not need to use strings to refer to configuration settings and they get easy-to-use enums consistent with the configuration specification.
Furthermore, code generation will make sure that a specification (and default configuration settings) will be found even if no /etc
or no /usr
is found.
We also found that we cannot use code generation everywhere. In generic access code, code generation obviously is limited.
Understandably, users might be concerned that such a change will not work or create problems in the future. Here we will discuss some of the concerns.
Elektra might be discontinued.
From history perspective, Elektra received steady development since 2004. Elektra is a FLOSS project and welcomes everyone to join. In the last years several people did, with an increasing number per year. Currently following people are working on substantial new features in Elektra (sorted by first name):
Obviously, there are many more casual contributors.
Elektra has a large set of automated tests and only a small amount of technical dept. Elektra has no required external dependencies except libc. So without internal changes, only minimal maintenance cost is required.
Elektra is unfinished.
Technically this is true: we did not reach 1.0. We are, however, on track to reach this goal within this summer. Now is the best time to join because we can provide more support and are more flexible for changes and wishes.
Some https://www.libelektra.org/news/2016-06-14_0.8.17.md "time ago" we asked in a survey in which direction Elektra should develop. Most open issues are (in)direct responses from this wanted direction.
Some plugins are experimental or proof-of-concept, but they are clearly marked as such.
It seems a bit to me like xkcd: Standards.
Elektra does not invent a new configuration file format nor new standards where to store configuration files but abstracts over these issues.
Elektra not being available in my distribution.
For the following Linux Distributions Elektra 0.8 packages are available:
See INSTALL for the complete and up-to-date list.
If Elektra does not take off and achieve world dominance, will we be worse off than before?
Making sure that projects will not be worse off is what we did the last years: Not only offer an API and wait for world dominance but to offer an implementation that can compete with any configuration library out there. We are not completely there yet (there are some details where specific other libraries are better than Elektra in specific points) but these are not points that the current configuration system of LCDproc supports (not even close). And the libraries that can compete with Elektra have a completely different level on which dependencies they have: Elektra is the only one only requiring libc.
Do we retain the old way of configuring things, i.e. manually editing a ini file in /etc?
Absolutely, you can think of libelektra as a small library in C that reads a configuration file and returns a data structure if you do not use any of its advanced features.
Do we retain the old way reloading/restarting the system service?
Elektra does not interfere with restarting. It is a passive library. It provides some techniques for reloading but they are optional (but we recommend that you keep the in-memory and persistent configuration in sync via notification).
For more information, see the FAQ.
We can both profit from it:
For oyranos it already worked well on both sides, see our discussions in the issue tracker, for example #1134.
If you also maintain an free or open source (FLOSS) project with an out-dated configuration system, please contact us.
Obviously, we cannot fully port every FLOSS project ourselves, instead we will handle requests on a first come, first serve basis. Earlier projects will also have an higher impact on the feature set of Elektra, thus you will less likely need to implement your own plugin.
Best regards, Markus


Overview
On Dec 31 the World Health Organisation was made aware of an illness showing similarities to respiratory pneumonia with symptoms that include a fever, cough and shortness of breath . The origins of this virus is believed to be in Wuhan City, the Hubei Province of China and is officially known as COVID-19. The virus belongs to a genome (the genetic material of an organism), that includes SARS Severe Acute Respiratory Syndrome and MERS Middle East Respiratory Syndrome. Given the almost exponential rise of infection rates world wide , early detection of the disease's presence is essential not only to ensure prompt treatment but also to help with the management and control of infection rates in the public domain.
The high infection rates and the shortage of Covid-19 test kits available, increases the necessity of the implementation of an automatic recognition system as a quick alternative to curb the infection rates Thus we propose the use of AI based CT image analysis to detect the virus under Project Treatise of Medical Image Processing v0.2.0.
Learn MoreNumber of CT Scans collected world-wide, we are continously collecting CT Scans as they become available
Number of X-Ray Scans collected in Asia, EU and US
Machine Learning models ChexNet, DenseNet, ResNet18, ResNet50 and VGGNet are used for transfer learning as pre-trained models
Sponsors Africa Business Integration and Intel Corporation
Machine Learning
We propose the use of Deep Neural Networks. As an initial experiment the CheXNeXt Pneumonia Detection Model was used as a baseline architecture where transfer learning was used to detect pneumonia. Secondly three different convolutional neural network architectures (ResNet50, VGGNet and DenseNet) was used to detect Coronavirus infected patients via chest X-rays.
CheXNeXt
CheXNeXt is a Deep Learning algorithm to concurrently detect 14 clinically important diseases in chest radiographs - by Stanford ML Group
VGGNet
VGGNet (Visual Geometry Group Neural Network) is a convolutional neural network for large-scale visual recognition - by Visual Geometry Group University of Oxford
Deep Learning Frameworks
Project TMIP 2019-nCoV makes use of open source deep learning frameworks to build COVID-19 classification algorithms
Collaboration
Project TMIP 2019-nCoV Detection welcomes contributors and collaboration opportunities. Data sets and software contributions will help us scale the project throughout the world.
Scalability
2019-nCoV AI Cloud is built on Intel Xeon Scalable Processors for accelerated deep learning and inference workloads in the Cloud.
Contact Us
TMIP 2019-nCoV
Treatise of Medical Image Processing (TMIP) is an Open source project initiated by Intel Software Innovators. The project is licensed under the MIT License
Cape Town
South Africa
info@4ir-abi.co.za


-I am Rita Sule, a Software Developer
I got exposed to programming during my undergraduate studies, I have always found it fascinating and I enjoy doing it a lot.
Since graduation, I have learned and thought myself amazing front end and back end development tools which has given me the ability to build sites from start to finish.
Find the list of my recent projects below:
We can do something together or email me on<EMAIL_ADDRESS>if you have any questions.
You can also connect with me on


Hello! I am a Graduate Student in the Paul G. Allen School of Computer Science & Engineering at the University of Washington studying Computer Science with a focus on Data Science topics. I am currently a Head TA for CSE 143x, Accelerated Intro to Programming, at UW.
Lead and organize weekly Exploration Sessions for Intro Series class (1500+ students), mentor 75+ TAs, work closely with professors to discuss grading criteria and class curriculum, work closely with TA Coordinators to handle administrative details
Interviewing and selecting new TAs, organizing weekly training sessions for new TAs, running weekly TA Community meetings, supervise and mentor 75+ TAs, administer TA evaluations, work closely with staff to handle administrative details
Lead class of 25 students, assisted students with homework assignments, graded exams and assignments, proctored exams, attended weekly community planning meetings.
Developed tools to facilitate Java learning in classes. Ran Hackathon event for 25 high school students. Taught Java online to other students.
Conducted market research on the information security challenges related to the Internet of Things. The research focused on the healthcare, automotive and home monitoring industries.
My love for playing guitar has given me opportunities to expand my experiences beyond my community. I worked with Buddies Without Borders, a nonprofit organization, to aid in fundraising efforts by creating a music video to raise disaster awareness for natural disasters such as floods and earthquakes. I also have performed live several times at a Silicon Valley business' (Accretive Wealth) award ceremony. These performances stretch my creative thinking and inspire me to continue to develop my musical language to appeal to larger and more diverse audiences. I teach guitar in my spare time as well, so if you are looking to learn feel free to contact me! :)
Selected to be part of a research team to utilize machine learning and computer vision to build an application that scans human eyes to identify the level of bilirubin to assist in the early identification of pancreatic cancer and Jaundice. Developed algorithms to classify the eye using machine learning and computer vision. Currently developing this app for the Ubiquitous Computing Lab at UW as part of a research program.
Built a robust Database Management System that can recover from crashes, process several transactions concurrently, and manage several database files. SimpleDb has 4 main components I built, a storage manager, query processor, shared utilities manager, and a log manager for recovery. Developed over the course of 10 weeks in a Database Internals course.
Built a simple website that uses a javascript text to shuffle lines of string. Developed for CSE 14x TA Community Meetings.
Built modular software that can be easily expanded on. The inspiration was to follow a model view and controller design in the application. Implemented Dijkstra's algorithm so that the app finds the shortest path between two building around UW Campus. Developed over the course of 9 weeks in a Software Design & Implementation course at UW.
Built data structures to process queries based on key words found in files, a file index system (inverted index) to save an index of files in a directory, and a web server to host the search engine. Developed over the course of 9 weeks in a Systems Programming course at UW.


DR. AKAGI (1998)
3 out of ****
Starring Akira Emoto, Kumiko Aso, Juro Kara, Masanori Sera, Jacques Gamblin, Keiko Matsuzaka; Directed by Shohei Imamura; Written by Imamura and Daisuke Tengan, from a novel by Ango Sakaguchi; Cinematography by Shigeru Komatsubara
DR. AKAGI--a farcical tragedy about (in no particular order) a blue whale, grave-robbing, a nuclear bomb, hepatitis, a Dutch spy, a morphine addict, a microscope, an arc lamp, a bayonet-wielding granny, and the fate of virgin boys in battle--is reputedly the final film by the great Japanese director Shohei Imamura. If so, he goes out with a bang--not that a whimper was ever likely. It is not his definitive work, but it is representative of his vision of human life as anarchic, fertile, harsh, communal, bawdy, and, above all, resilient.
World War II is nearing its end. The small Japanese town of Hibi is not what you would call strategically important, and it experiences the war at a distance, in radio broadcasts and air-raid sirens. But the psychic stresses the community feels are no less painful, and the people of Hibi mostly cope by means of the usual opiates--sex, drugs, alcohol--but while the opiates are usual, the people are not, including a drunken priest, a cynical morphine-addicted doctor, a prostitute-turned-doctor's-assistant (latest in a long line of pragmatic, carnal, emotive Imamura heroines), and so on. They are vividly portrayed, in the round, and the anguished sense that they use their vices as desperate survival strategies, as ways of both coping with and escaping from war-time reality, is moving.
Then there is Dr. Akagi, who stands apart. Our first sight of him is revealing. He is running, as he often does, from one patient's home to the next. He is immaculate and comic in a pristine white suit and shirt, knee-length black stockings and bow-tie, legs pumping furiously as a jaunty jazz theme plays on the soundtrack. The mock pomposity of this first impression is apt: there is something both absurd and admirable about Akagi, in his futile devotion and his fruitless heroics.
A middle-aged widower with a son serving in the army, he is unsparing of himself in his attention to his patients, but he also diagnoses all of them with hepatitis, and is affectionately mocked as a charlatan and "Dr. Liver." Nevertheless, he is beloved. He never seems to heal anyone, but he persists: if he did not, he might have to think about his son, his wife, the war, things for which there is no diagnosis, no prescription.
He is fond of telling anyone who will listen that hepatitis will be the next epidemic to sweep Japan, if preventive measures are not taken. It soon becomes clear that while Akagi truly believes he is talking about swollen livers, what the film is talking about is something else. Hepatitis is what happens when the body can no longer process its toxins properly, and, metaphorically, that is what is happening to Japan: destructive energies are not being contained, but are running rampant through the country, manifest as participation in the war. Every patient whom we see Akagi treat is treated for hepatitis (except, significantly, his one foreign patient), but what he is really trying--and failing--to treat is the underlying sickness of Japanese society.
When the nuclear bombs fall, in the end, as they must, it is the ultimate symptom of the sickness. The bomb may be dropped by America, but the blame, in DR. AKAGI, must be shouldered by Japan: the nuclear attack is the fatal consequence of the disease of war, the disease Japan refused to treat. It is a harsh message, and beneath the vital profuse energy that fuels the film, there is anger and sadness: anger that no one cured the sickness, sadness because maybe it couldn't be cured anyway.
DR. AKAGI is a busy movie: there's a lot going on, a lot of people, a lot of plots. It tries, with considerable gusto, to bring life to each character, each story, but it takes on too much.  Perhaps that is the necessary price of any attempt to show life as chaotic and haphazard, but in DR. AKAGI the disordered shapelessness of the film almost cripples its central thrust.
Then there is the ending, which, despite its uneven execution, is laudable for its audacity, and memorable. While his earlier (and better) BLACK RAIN was an unusually sober and gravely respectful look at the aftermath of the nuclear bombing, Imamura here frames a response to the bombing that is characteristic of his work as a whole. He provokes a sense both of pathos and preposterousness, as his characters look upon the rising mushroom cloud and discuss it in terms that are utterly banal and wildly inappropriate. He strives to wed the sublime to the ridiculous, but some risible special effects disrupt the complex discordance of tone, the attempt to shape the conflicted impulses of the film into something great. It is an attempt that fails, but not by much.
Subjective Camera: Movie Reviews by David Dalgleish subjective.freeservers.com
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


imgtool is a tool for dating, renaming, organizing, resizing, rotating and thumbnailing images based on the information stored in their EXIF header. This is to aid in the processing and organizing of digital photography images.
With a fairly large collection of digital photos I have taken with my phone and three different Nikon cameras.
In an effort to have unqique file names, I wrote this tool. I also added the functionality of a couple other operations I frequently do in post- processing.
A number of graphics tools will honor the Orientation tag in an image, however, on occasion, I find I need to manually rotate an image.  Sometimes other tools are employed which modify the timestamp of the file, on the files system, which can disrupt sorting. (I use a date descending order in my file manager to show me the most recent photos) The default operation of imgtool is to set the timestamp of the files it finds with the date stamp in the photo's EXIF header.
Files can be moved (or copied if to a different device) to another directory. The naming can have embedded exif data just like the format option. This would allow creation of a directory structure based on image data. E.g., ~/Photos/#Y-#m-#d .
will create a tree of directories based on the EXIF (or file) Date/Time. Any subdirectory trees are maintained.
If an output directory is specified, and, no other renaming is done, for operations such as dating or resizing, the file is copied to the output directory instead of renaming.
Files created by digital photography have a header built-in called Exhangeabe Image Format or EXIF (https://en.wikipedia.org/wiki/Exif) header. There is a lot of information that can be in this header that relates to the photograph, when it was taken, sometimes where it was taken, camera settings, camera model, etc. This tool extracts this information and uses it to create unique names for photography files, rotate them, etc.
usage: imgtool [-h] [-a ROTANGLE] [-R] [-c] [-D] [-d directory] [-e]
[--exif-rotate-thumb] [-f format-string] [-n] [-p Pattern]
[-q REQUIRED_TAG] [-r] [-t] [-s SET] [--thumb-dir directory]
[--thumb-geometry geometry] [-v] [-V] [-z geometry] [--debug]
[--dumpkeys] [--help-geometry] [--help-format] [--help-options]
[---dumpargs]
[PATH [PATH ...]]
-a ROTANGLE, --rotation-angle ROTANGLE
-c, --camera-names Rename pictures that have an embedded camera name to
-d directory, --output-directory directory
-D, --dry_run Dry run: show what will be done without actually doing
--debug Enable debugging messages
---dumpargs Pyton Pickle formatted dump of program arguments
--dumpkeys Dump all exif tag keys for first file and exit.
-e, --exif-extract-thumb
--exif-rotate-thumb Rotate EXIF thumnail(s) by EXIF orientation or by
-f format-string, --format format-string
-n, --no-clobber Do not overwrite existing files. Files will be named
-p Pattern, --pattern Pattern
-q REQUIRED_TAG, --required-tag REQUIRED_TAG
-r, --auto-rotate Automatically rotate images.
-R, --recurse Recurse into sub-directories
--thumb-dir directory
--thumb-dir to override output directory.
--thumb-geometry geometry
--thumb-geometry to override default of 96x96, use
-t, --thumbnail Generate thumbnails in the same output path. Use
-v, --verbose Describe what is being done.
-V, --version Show version information and exit.
-z geometry, --resize geometry
Geometry can be specified as a percentage of the overall image or as a pair of width:height. Width and height are specified in pixels. If width is specified but no height, e.g., 1000: the image will be reized to a width of 1000px with a height calculated in relation to width to maintain the image aspect ratio. Conversely, height is specified without a width, e.g., :1000 will resize the image to 1000px high with a width calculated to maintain the aspect ratio. When the width and height are spcecified no attempt to maintain the aspect ratio is made.
Thumbnails may be created or extracted from the EXIF data, when present.
When generating thumbnails from image data, they are written to the diretory specified with the --thumb-dir option or to the same path where the file is ultimately written using the pattern filename-thumb.png.
Thumbnails are often stored in the images EXIF header. These files are written with the same rule for paths of thumbnails above, but, they are written as JPEG images. Unless --exif-rotate-thumb is set, the thubnail is not rotated. If -a or --rotation-angle is set then that angle is used to rotate images otherwise the Exif.Image.Orientation data is used and if appropriate the thumbnail will be rotated.
Each image processed, if the operations are specified, has their operations peformed in this order: 1. Image resize 2. Auto-rotation 3. Dating and/or Renaming 4. Thumbnail generation
Setting options with -s or --set changes some program operations. Each option can be toggled. The format of these options are: >option-key[:option-key...]
Current options are:
Ignore files already processed by imgtool. Default is to ignore.
Set the processed flag in the image header. Default is to set the flag.
Ignore files without an EXIF header. Default is to process.
Formatting filenames for automatic renaming is as follows<EMAIL_ADDRESS>Tags starting with @ have their spaces replaced with periods (.), Tags starting with + do not have spaces replaced. There are two types of tags, File and Exif. File Tags are:
File.Name: Filename of the image without extension
File.Ext: Extension of filename, e.g., .JPG
File.ext: Extension of filename converted to lower-case, e.g., .jpg
File.Fullname: Full name of file with directories.
File.mtime: String representation YYYYMMDDhhmmss of the file's timestamp in
the filesystem.
EXIF Tags vary by image and camera. The program exiftool may be useful in finding appropriate tags. When specifying EXIF Tags, they are formatted as Exif.Image.Model which results in a string, for one of my cameras, as 'NIKON D3400',by default the resultant string will have spaced replaced with periods (.), to suppress this behavior, precede them with a plus (+). E.g.:
@Exif.Image.Make returns 'NIKON.D3400' where +Exif.Image.Make
returns 'NIKON D3400'
This conversion is done just before substituting the tag with its value.
Splitting the tag values can be done as an index of space separated words or as asubstring.
To use an index, place the index number in brackets, e.g, @Exif.Image.Make [1] returns 'D3400' instead of 'NIKON D3400'. Index values start with 0.
To use a substring, place the start and, optionally the length in parentheses. E.g,: @Exif.Image.Make(7,5) will return 'D3400' instead of 'NIKON D3400'. If the second value is omitted the length of the value, starting at the first number is presumed, so @Exif.Image.Make(7) will also result with 'D3400'
Any EXIF Tag present in the image EXIF header can be used to create all or part of a file name. For example, @Image.Make[1]_<EMAIL_ADDRESS>will create, from DSC_328.JPG a name of 'D3400_DSC_328.jpg'.
Note that the @File tags are never evaluated with a plus instead of an at-sign, and no indexing or substring operations are performed.
Time formatting, using the EIXF header's image time, is formatted using strftime(3) format, or with the following formatting keys:
#a The abbreviated name of the day of the week according to the
current locale. (Calculated from tm_wday.)
#A The full name of the day of the week according to the current
locale. (Calculated from tm_wday.)
#b The abbreviated month name according to the current locale.
(Calculated from tm_mon.)
#B The full month name according to the current locale.
(Calculated from tm_mon.)
#c The preferred date and time representation for the current
locale.
#C The century number (year/100) as a 2-digit integer. (SU)
(Calculated from tm_year.)
#d The day of the month as a decimal number (range 01 to 31).
(Calculated from tm_mday.)
#D Equivalent to #m/#d/#y. (Yecch—for Americans only. Americans
should note that in other countries #d/#m/#y is rather common.
This means that in international context this format is
ambiguous and should not be used.) (SU)
#e Like #d, the day of the month as a decimal number, but a
leading zero is replaced by a space. (SU) (Calculated from
tm_mday.)
#E Modifier: use alternative format, see below. (SU)
#F Equivalent to #Y-#m-#d (the ISO 8601 date format). (C99)
#G The ISO 8601 week-based year (see NOTES) with century as a
decimal number. The 4-digit year corresponding to the ISO
week number (see #V). This has the same format and value as
#Y, except that if the ISO week number belongs to the previous
or next year, that year is used instead. (TZ) (Calculated from
tm_year, tm_yday, and tm_wday.)
#g Like #G, but without century, that is, with a 2-digit year
(00–99). (TZ) (Calculated from tm_year, tm_yday, and tm_wday.)
#h Equivalent to #b. (SU)
#H The hour as a decimal number using a 24-hour clock (range 00
to 23). (Calculated from tm_hour.)
#I The hour as a decimal number using a 12-hour clock (range 01
to 12). (Calculated from tm_hour.)
#j The day of the year as a decimal number (range 001 to 366).
(Calculated from tm_yday.)
#k The hour (24-hour clock) as a decimal number (range 0 to 23);
single digits are preceded by a blank. (See also #H.)
(Calculated from tm_hour.) (TZ)
#l The hour (12-hour clock) as a decimal number (range 1 to 12);
single digits are preceded by a blank. (See also #I.)
(Calculated from tm_hour.) (TZ)
#m The month as a decimal number (range 01 to 12). (Calculated
from tm_mon.)
#M The minute as a decimal number (range 00 to 59). (Calculated
from tm_min.)
#n A newline character. (SU)
#O Modifier: use alternative format, see below. (SU)
#p Either "AM" or "PM" according to the given time value, or the
corresponding strings for the current locale. Noon is treated
as "PM" and midnight as "AM". (Calculated from tm_hour.)
#P Like #p but in lowercase: "am" or "pm" or a corresponding
string for the current locale. (Calculated from tm_hour.)
(GNU)
#r The time in a.m. or p.m. notation. In the POSIX locale this
is equivalent to #I:#M:#S #p. (SU)
#R The time in 24-hour notation (#H:#M). (SU) For a version
including the seconds, see #T below.
#s The number of seconds since the Epoch, 1970-01-01 00:00:00
+0000 (UTC). (TZ) (Calculated from mktime(tm).)
#S The second as a decimal number (range 00 to 60). (The range
is up to 60 to allow for occasional leap seconds.)
(Calculated from tm_sec.)
#t A tab character. (SU)
#T The time in 24-hour notation (#H:#M:#S). (SU)
#u The day of the week as a decimal, range 1 to 7, Monday being
1. See also #w. (Calculated from tm_wday.) (SU)
#U The week number of the current year as a decimal number, range
00 to 53, starting with the first Sunday as the first day of
week 01. See also #V and #W. (Calculated from tm_yday and
tm_wday.)
#V The ISO 8601 week number (see NOTES) of the current year as a
decimal number, range 01 to 53, where week 1 is the first week
that has at least 4 days in the new year. See also #U and #W.
(Calculated from tm_year, tm_yday, and tm_wday.) (SU)
#w The day of the week as a decimal, range 0 to 6, Sunday being
0. See also #u. (Calculated from tm_wday.)
#W The week number of the current year as a decimal number, range
00 to 53, starting with the first Monday as the first day of
week 01. (Calculated from tm_yday and tm_wday.)
#x The preferred date representation for the current locale
without the time.
#X The preferred time representation for the current locale
without the date.
#y The year as a decimal number without a century (range 00 to
99). (Calculated from tm_year)
#Y The year as a decimal number including the century.
(Calculated from tm_year)
#z The +hhmm or -hhmm numeric timezone (that is, the hour and
minute offset from UTC). (SU)
#Z The timezone name or abbreviation.
#+ The date and time in date format. (TZ) (Not supported in
glibc2.)
## A literal '#' character.
Some conversion specifications can be modified by preceding the
conversion specifier character by the E or O modifier to indicate
that an alternative format should be used. If the alternative format
or specification does not exist for the current locale, the behavior
will be as if the unmodified conversion specification were used. (SU)
The Single UNIX Specification mentions #Ec, #EC, #Ex, #EX, #Ey, #EY,
#Od, #Oe, #OH, #OI, #Om, #OM, #OS, #Ou, #OU, #OV, #Ow, #OW, #Oy,
where the effect of the O modifier is to use alternative numeric
symbols (say, roman numerals), and that of the E modifier is to use a
locale-dependent alternative representation.
(Taken from Linux strftime(3) manual page, from the Linux Man Pages Project, http://www.kernel.org/doc/man-pages) ## Some tips 1. Always backup data! 2. Before emplyoing this tool on a number of photos, be sure it will do what you want it to do using the -D or --dry-run option. This will tell you most of what operations are being done without actually doing them. 3. When using EXIF tags for renaming files from multiple camera make/models, do not use vendor specific tags, e.g. Exif.NikonFi.FileNumber as these may not be consistent across those cameras even for the same manufacturer. ## Installation
imgtool requires the following python packages in order to work - pyexiv2 - https://github.com/escaped/pyexiv2 - Pillow - (pip install pillow)
The standard modules used are: - os - OS Dependent interfaces - sys - System interfaces - datetime, time - Date and time manipulation and conversions - re - Regular expression library - fnmatch, glob2, shutil - File globbing, matching and copying.
This tool was developed on Linux. While untested it may work on OSX and Windows provided these libraries are installed.
The installer script will install the files, based on what is in installer.json, to appropriate directories with the specified mode.
usage: installer [-h] [--bindir program-dir] [--docdir doccument-dir]
[--mandir man-dir] [--libdir library-dir]
[--sources source-list]
optional arguments:
-h, --help show this help message and exit
--bindir program-dir Directory to store executable(s)
--docdir doccument-dir Directory to store document(s)
--mandir man-dir Directory to store manual page(s)
--libdir library-dir Directory to store library files(s) (Not used for this tool)
Running installer without arguments will install the program to /usr/bin, the manual page to /usr/man/man1, and this file to /usr/share/doc/imgtool.  The installer can write to other directories. Specifying 'none' as the deestination will prevent that part from being copied.
This tool is ALPHA. I have tested it in a limited environment and was written to work with my photographs. It may even be destructive. Backing up data is always a good idea before employing automatic tools that can recurse directories. If you break something, you own the remaining pieces.
Nicole Stevens [@github](https://github.com/nicciniamh)
Copyright 2018 Nicole Stevens
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
This document was automatically generated using tools in the doc/ directory. Please see the README.md in that directory for information and build procedures.


Our mission is to show people how strong bullies are. As it is bullies do not want any girlfriends or boyfriends. |
We promote bullying in every form, from cyber to physical. It simply shows how illerate bullies are. Anyway who needs to be kind in such a sweet world. |
We wish to show the world, we are strong that we are equivalent to a tiger, hence this proving all scientific studies right about humans being animals. |
We wish to open a new wrestling ring to show the strength people have. |


npm-publish
Publish a packageTable of contents
Synopsis
npm publish [<tarball>|<folder>] [--tag <tag>] [--access <public|restricted>] [--otp otpcode] [--dry-run]
Publishes '.' if no argument supplied
Sets tag 'latest' if no --tag specified
Description
Publishes a package to the registry so that it can be installed by name.
By default npm will publish to the public registry. This can be overridden
by specifying a different default registry or using a
scope
in the name (see
package.json
).
-
<folder>
: A folder containing a package.json file -
<tarball>
: A url or file path to a gzipped tar archive containing a single folder with a package.json file inside. -
[--tag <tag>]
: Registers the published package with the given tag, such thatnpm install <name>@<tag>
will install this version. By default,npm publish
updates andnpm install
installs thelatest
tag. Seenpm-dist-tag
for details about tags. -
[--access <public|restricted>]
: Tells the registry whether this package should be published as public or restricted. Only applies to scoped packages, which default torestricted
. If you don’t have a paid account, you must publish with--access public
to publish scoped packages. -
[--otp <otpcode>]
: If you have two-factor authentication enabled inauth-and-writes
mode then you can provide a code from your authenticator with this. If you don’t include this and you’re running from a TTY then you’ll be prompted. -
[--dry-run]
: As ofnpm@6
, does everything publish would do except actually publishing to the registry. Reports the details of what would have been published.
The publish will fail if the package name and version combination already exists in the specified registry.
Once a package is published with a given name and version, that specific
name and version combination can never be used again, even if it is removed
with npm unpublish
.
As of npm@5
, both a sha1sum and an integrity field with a sha512sum of the
tarball will be submitted to the registry during publication. Subsequent
installs will use the strongest supported algorithm to verify downloads.
Similar to --dry-run
see npm pack
, which figures
out the files to be included and packs them into a tarball to be uploaded
to the registry.
Files included in package
To see what will be included in your package, run npx npm-packlist
. All
files are included by default, with the following exceptions:
-
Certain files that are relevant to package installation and distribution are always included. For example,
package.json
,README.md
,LICENSE
, and so on. -
If there is a “files” list in
package.json
, then only the files specified will be included. (If directories are specified, then they will be walked recursively and their contents included, subject to the same ignore rules.) -
If there is a
.gitignore
or.npmignore
file, then ignored files in that and all child directories will be excluded from the package. If both files exist, then the.gitignore
is ignored, and only the.npmignore
is used..npmignore
files follow the same pattern rules as.gitignore
files -
If the file matches certain patterns, then it will never be included, unless explicitly added to the
"files"
list inpackage.json
, or un-ignored with a!
rule in a.npmignore
or.gitignore
file. -
Symbolic links are never included in npm packages.
See developers
for full details on what’s
included in the published package, as well as details on how the package is
built.


Use pvm on a VM file to display information about the file's header and brief information about the blocks within the VM file. (In DOS, VM files will have the extension ".000".)
pvm
Common Usage:
pvm myfile.000


Download economic and financial time series from public sources, including the St Louis Fed's FRED system, Yahoo Finance, the US Bureau of Labor Statistics, the US Energy Information Administration, the World Bank, Eurostat, the European Central Bank, the Bank of England, the UK's Office of National Statistics, Deutsche Bundesbank, and INSEE.
| Version: | 0.2.3 |
| Imports: | httr, zoo, xts, XML, lubridate, jsonlite, reshape2, readr, curl, xml2 |
| Published: | 2017-10-15 |
| Author: | Abiel Reinhart |
| Maintainer: | Abiel Reinhart <abielr at gmail.com> |
| BugReports: | https://github.com/abielr/pdfetch/issues |
| License: | GPL-2 | GPL-3 [expanded from: GPL] |
| URL: | https://github.com/abielr/pdfetch |
| NeedsCompilation: | no |
| Materials: | README NEWS |
| In views: | TimeSeries |
| CRAN checks: | pdfetch results |
| Reference manual: | pdfetch.pdf |
| Package source: | pdfetch_0.2.3.tar.gz |
| Windows binaries: | r-devel: pdfetch_0.2.3.zip, r-release: pdfetch_0.2.3.zip, r-oldrel: pdfetch_0.2.3.zip |
| OS X binaries: | r-release: pdfetch_0.2.3.tgz, r-oldrel: pdfetch_0.2.3.tgz |
| Old sources: | pdfetch archive |
Please use the canonical form https://CRAN.R-project.org/package=pdfetch to link to this page.


The Odin Project is a high altitude ballooning project whose aim is to launch a high altitude balloon into the atmosphere. From here we hope to take beautiful photographs of the earth and conduct meteorological experiments/observations.
UPDATES: Waiting for good weather
For more infomation please don't hesitate to contact us at info@theodinproject.space


These tests exercise web expressions parameter matching.
| l:test[!foo] | |
| l:test[length!=0] (length is not present in payload) | |
| l:test[id=wem1,countfoo=100] then value[failed] else value[passed] (multiple payloads with one missing) | |
| l:test[count>0] | |
| l:test[count>1] | |
| l:test[count>99,count<100,count=100] | |
| l:test[count<101] | |
| l:test[count<=100] | |
| l:test[count>=100] | |
| l:test[!count>101] | |
| l:test[!count>=101] | |
| l:test[!count<101] | |
| l:test[!count<=200] | |
| l:test[count!=200] | |
| l:test[count=100] | |
| l:test[count=~100] | |
| l:test[count=~1] | |
| l:test[count=~^1] | |
| l:test[count=~0$] | |
| l:test[!count=~9$] | |
| l:test[count] | |
| l:test[!foobar] | |
| l:test[count,!foobar] | |
| l:test[expr(this.count > 1)] | |
| l:test[expr(this.count > 1),count=100] | |
| l:test[expr(this.count > 1),count>99,expr(this.count==100)] | |
| l:test then value[value=expr('[' + Appcelerator.Util.DateTime.get12HourTime() + '] ' + this.direction+':' + this.type + ' => ' + ' PASSED')] | |
| l:test[count,expr(1+1>1)] | |
| l:test[count=$foobar] | |
| l:test[$heyya] | |
| l:test[$heyya2] (id reference doesn't exit) | |
| l:test[!$duh] | |
| l:test[$duh] | |
| l:test[$duh=$duh] | |
| l:test[!$duhfailed] | |
| l:test[$duhfailed] | |
| l:test[$duh=$duhfailed] | |
| l:test[$duh!=$duhfailed] | |
| l:test[sub.p=passed] | |
| l:test[sub.p!=failed] | |
| l:test[sub.i > 0] | |
| l:test[sub.b] | |
| l:test[val=0] | |
| l:test[src=src] | |
| l:test[expr(Appcelerator.Browser.isSafari || Appcelerator.Browser.isFirefox || Appcelerator.Browser.isIE)] | |
| l:test then value[expr(this.sub.p)] | |
| #test1 (WEM: simple macro) | failed |
| #test2 then #test3 (WEM: partial macro) | failed |
| #test4 (WEM: substitution) | failed |
| #test5[count=99,pass_fail=passed] (WEM: substitution #2) | failed |
| (l:test6 or l:test6.1) then l:test6.result[msg='passed '] (compound conditions) |
You should see pass twice below after you click this button:
|
| #test7 (WEM: compound conditions) |
You should see pass twice below after you click this button:
|
| Compound condition with an or expression afterwards (should turn yellow on first click, red on second and back to green on third and say passed) |
click me first
|
| Widget short-hand web expression | failed |
| Boolean expressions |
waiting...
|
| Boolean expressions |
waiting...
|
| Boolean expressions |
waiting...
|
| Boolean expressions (type conversions in condition) |
waiting...
|
| Boolean expressions (type conversions in event) |
waiting...
|


Transformers¶
-
class
ml_utils.transformers.
BoxCoxTransformer
(transformed_cols, eps=1e-08, copy=True)¶ BoxCox transformation on individual features. It wil be applied on each feature (each column of the data matrix) with lambda evaluated to maximise the log-likelihood.
Parameters: - transformed_cols (str 1d ndarray/list or "all") – Specify what features are to be transformed. - “all” (default) : All features are to be transformed. - array of str : Array of feature names to be transformed.
- eps (float, default 1e-8) – An epsilon value can be added to the data before estimating the boxcox transformation
- copy (bool, default True) – Set to False to perform inplace transformation.
-
transformed_cols_
¶ str 1d ndarray – Names of the features to be transformed
-
lambdas_
¶ float 1d ndarray [n_transformed_cols] – The parameters of the BoxCox transform for the selected features. Elements in the collection corresponds to the transformed_cols_
-
n_features_
¶ int – Number of features inputted during fit
Notes
- The Box-Cox transform is given by::
- y = (x ** lambda - 1.) / lmbda, for lambda > 0
- log(x), for lambda = 0
boxcox
requires the input data to be positive.-
fit
(data, y=None)¶ Fit BoxCoxTransformer to the data.
Parameters: - data (DataFrame, shape [n_samples, n_feature]) – Input data
- y (default None) – Ignore, argument required for constructing sklearn Pipeline
Returns: Return type: self
-
transform
(data)¶ Transform the data using BoxCoxTransformer.
Parameters: data (DataFrame, shape [n_samples, n_features]) – Input data Returns: data_transformed – Transformed input data Return type: DataFrame, shape [n_samples, n_features]
-
class
ml_utils.transformers.
MultipleImputer
(strategies, missing_values=’NaN’, copy=True)¶ Extends the sklearn Imputer Transformer [1] by allowing users to specify different imputing strategies for different columns
Parameters: - strategies (dict of list[str]) – Keys of the dictionary should one of the three valid strategies {‘mode’, ‘mean’, ‘median’} and the values are the column names whose NA values will be filled should its corresponding strategies e.g. {‘mode’: fill_mode_cols, ‘median’: fill_median_cols}
- missing_values (float or "NaN"/np.nan, default "NaN") – The placeholder for the missing values. All occurrences of missing_values will be imputed. For missing values encoded as np.nan, we can either use the string value “NaN” or np.nan.
- copy (bool, default True) – Set to False to perform inplace transformation.
-
statistics_
¶ dict of 1d ndarray – The imputation fill value for each feature, the 1d ndarray corresponds to the strategies argument’s input order
References
[1] Scikit-learn Imputer -
fit
(data, y=None)¶ Fit MultipleImputer to the input data.
Parameters: - data (DataFrame, shape [n_samples, n_features]) – Input data
- y (default None) – Ignore, argument required for constructing sklearn Pipeline
Returns: Return type: self
-
transform
(data)¶ Transform input data using MultipleImputer.
Parameters: data (DataFrame, shape [n_samples, n_features]) – Input data Returns: data_transformed – Transformed input data Return type: DataFrame, shape [n_samples, n_features]
-
class
ml_utils.transformers.
Preprocesser
(num_cols=None, cat_cols=None, threshold=5.0)¶ Generic data preprocessing including: - standardize numeric columns and remove potential multi-collinearity using variance inflation factor - one-hot encode categorical columns
Parameters: - num_cols (list[str], default None) – Numeric columns’ name. default None means the input column has no numeric features.
- cat_cols (list[str], default None) – Categorical columns’ name.
- threshold (float, default 5.0) – Threshold for variance inflation factor (vif). If there are numerical columns, identify potential multi-collinearity between them using vif. Conventionally, a vif score larger than 5 should be removed.
-
colnames_
¶ str 1d ndarray – Column name of the transformed numpy array.
-
num_cols_
¶ str 1d ndarray or None – Final numeric column after removing potential multi-collinearity, if there’re no numeric input features then the value will be None.
-
label_encode_dict_
¶ defauldict of sklearn’s LabelEncoder object – LabelEncoder that was used to encode the value of the categorical columns into with value between 0 and n_classes-1. Categorical columns will go through this encoding process before being one-hot encoded.
-
cat_encode_
¶ sklearn’s OneHotEncoder object – OneHotEncoder that was used to one-hot encode the categorical columns.
-
scaler_
¶ sklearn’s StandardScaler object – StandardScaler that was used to standardize the numeric columns.
-
fit
(data, y=None)¶ Fit the Preprocess Transformer on the input data.
Parameters: - data (DataFrame, shape [n_samples, n_features]) – Input data
- y (default None) – Ignore, argument required for constructing sklearn Pipeline
Returns: Return type: self
-
transform
(data)¶ Transform the input data using Preprocess Transformer.
Parameters: data (DataFrame, shape [n_samples, n_features]) – Input data Returns: X – Transformed input data Return type: 2d ndarray, shape [n_samples, n_features]


Build Volume: 260mm × 260mm × 300mm (height)
Try not to exceed 90% of the build plate size.
Print Resolution:
Nozzle: 0.4mm diameter
XY Placement Accuracy: 0.1mm
Min. Z Layer Height: 0.05mm
Absolute Maximum Temperature:
Extruder: 300°C
Build Plate: 110°C
Under normal circumstances, you should never reach these temperatures!
Filament:
You are only allowed to use 3mm PLA filament provided by the Fab Lab.
Other Information:
Compatible Slicers: MankatiUM(Recommended), Cura (requires expert settings)
Manufacturer Website


Name
Location
Facebook
Instagram
Phone number
Email
About
#
Name
Location
About
Email
Phone
Facebook
Instagram
Options
Name
Location
About
Email
Phone
Facebook
Instagram
Leauge Details
×
Name
Location
Instagram
Facebook
Email
Phone
About
Match Details
×
Are you sure?


uTest.js
A unit test framework for JavaScript modeled after cppUTest.
The goal of this project is to help me gain experience programming JavaScript and hopefully make something useful too!
Getting Started
Define a Test
// first-test.js
var uTest = require('./uTest.js');
uTest.TEST_GROUP({ name: 'FirstGroup' });
uTest.TEST({ group: 'FirstGroup', name: 'FirstTest',
run: function() {
this.uTest.FAIL('Fail me!');
}
});
Create a Test Runner
// test-runner.js
require('./first-test.js');
var uTest = require('./uTest.js');
uTest.runAllTests();
Run the Test in Node.js
$ node test-runner.js
./first-test.js:9:18: error: Failure in TEST(FirstGroup, FirstTest)
Fail me!
Errors (1 failure, 1 test, 1 ran, 1 check, 0 ignored, 0 filtered out, 36 ms)
Run the Test in a Browser
$ browserify test-runner.js -o bundle.js
<!DOCTYPE html>

My First Test!

Adding Assertions
- CHECK (condition) - Check a boolean result
- CHECK_TRUE (condition) - Check for a true result
- CHECK_FALSE (condition) - Check for a false result
- CHECK_TEXT (condition, text) - Check a boolean result and print text on failure
- CHECK_EQUAL (expected, actual) - Check for equality between two entities using strict equality (===)
- CHECK_LOOSE_EQUAL (expected, actual) - Check for equality between two entities using loose equality (==)
- CHECK_THROW (exception, func) - Check for an exception thrown by calling a specified function
- STRCMP_EQUAL (expected, actual) - Check for equality using expected.toString() === actual.toString()
- LONGS_EQUAL (expected, actual) - Compare two integers
- BYTES_EQUAL (expected, actual) - Compare two 8-bit wide integers
- DOUBLES_EQUAL (expected, actual, tolerance) - Compare two numbers with a given tolerance
Defining Tests and Test Groups
TEST_GROUP (group) - Define a test group
- The group parameter is an object with the following properites:
- name {string} - The name of the group
- setup {function} (optional) - The setup function is run before each test in the group
- teardown {function} (optional) - The teardown function is run after each test in the group
- The group parameter is an object with the following properites:
TEST (test) - Define a test
- The test parameter is an object with the followig properties:
- group {string} (optional) - The name of the group in which the test belongs.
- name {string} - The name of the test.
- run {function} - The function that is run to perform the test.
- The test parameter is an object with the followig properties:
IGNORE_TEST (test) - Define a test that will be ignored.
- This is a quick way to disable a test without removing the code.
- See definition of test above
Running Tests
runAllTests () - Run all the tests that are currently defined.
runTestGroup (groupName) - Run a specific test group.
runTest (test) - Run a specific test.
- The test parameter can be a string or an object
- If test is a string then all the tests with that name will be run
- Otherwise, test should be an object with the following properties:
- group {string} - The name of the group in which the test belongs
- name {string} - The name of the test to run


{% include "include/head.html" %}
{% block page %}{% endblock %}
{% include "include/footer.html" %}


CAROUSEL
Previous
Next
ACCORDION
Collapsible Group Item #1
Anim pariatur cliche reprehenderit, enim eiusmod high.
Collapsible Group Item #2
Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid.
Collapsible Group Item #3
Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid.
CONTACT US
Submit
List style
You can give link
Give link
Another Give link
Forth link
Another fifth link
Notifications
Luanch Admin
Just see the my new admin!
9:30 AM
Event today
Just a reminder that you have event
9:10 AM
Settings
You can customize this template as you want
9:08 AM
Pavan kumar
Just see the my admin!
9:02 AM
Check all notifications
You have 4 new messages
Pavan kumar
Just see the my admin!
9:30 AM
Sonu Nigam
I've sung a song! See you at
9:10 AM
Arijit Sinh
I am a singer!
9:08 AM
Pavan kumar
Just see the my admin!
9:02 AM
See all e-Mails
[[${userName}]]
Steave Jobs
<EMAIL_ADDRESS>View Profile
My Profile
My Balance
Inbox
Account Setting
Logout
English
Dutch


Created a two player sword fighting game within a group of my peers at university. Passed the Turing tests we completed, and was played by Jason Bradbury.
Created Sandwich Express, a fictional website for a university web authoring module. Features a fully responsive layout, so that all
layouts are supported.
Skills
HTML5
CSS / SASS
JavaScript / jQuery
PHP
AngularJS
Tools
Photoshop
Sony Vegas Professional Video Editor
Brackets HTML Editor
Full Experience of Full Microsoft Office Package
Knowledge
Wireframing - Initial Website Mockups
Responsive Design
Problem Solving
Contact Me
To see more of my work, view my Codepen or my Github, as they both contain projects that I have worked on in many different languages.


The given ABA⁺ framework does not satisfy the Axiom of Weak Contraposition (WCP).
Choose to automatically enforce WCP by adding extra rules to the framework.
{% csrf_token %}


Model of a simple evaporator with two states. The model assumes
two-phase equilibrium inside the component; saturated steam goes
out of the steam outlet.
References: Åström, Bell: Drum-boiler dynamics, Automatica 36,
2000, pp.363-378
- Dec 2008 by Rüdiger Franke:
Adapt initialization to new Types.Dynamics
- 2 Nov 2005 by Francesco Casella:
Initialization options fixed
- 6 Sep 2005
Model by Rüdiger Franke
See Franke, Rode, Krüger: On-line Optimization of Drum Boiler
Startup, 3rd International Modelica Conference, Linköping,
2003.
Modified after the 45th Design Meeting
Generated at 2019-01-25T16:44:03Z by OpenModelica 1.14.0~dev-130-gefa44fb