×Pro Lens[2023]I developed a computer vision application using Flutter and machine learning. The app scans objects through the device's camera, identifies them using YOLOv8, and opens related user manuals. It was a rewarding experience in mobile app development and computer vision.
×A Hands-On Approach to Software Testing: Evaluating a Self-Developed Web Application[2021]In my "We Care" website project, I took on the role of a software tester and conducted comprehensive testing using various methodologies and tools to ensure the website's quality and security.
Test Case Development: I created a set of diverse test cases to thoroughly assess the functionality and features of the "We Care" website. These test cases covered different scenarios and user interactions.
Manual Testing: I executed a series of manual test cases to validate different functionalities of the website, ensuring that all features worked as expected and met the specified requirements.
Automation Testing: To improve efficiency and coverage, I utilized automation testing tools to create test scripts and automate repetitive test cases. This approach allowed for faster and more reliable testing, especially during regression testing.
Performance Testing: I conducted performance testing to evaluate how the website performed under normal conditions. By measuring response times and system resource usage, I ensured that the website was responsive and stable.
Load Testing: I tested the website's performance under heavy user loads using JMeter software. By simulating multiple concurrent users, I assessed how the website handled such traffic, ensuring its scalability and robustness.
Vulnerability Testing: To enhance the website's security, I performed vulnerability testing using OWASP (Open Web Application Security Project) guidelines. I identified potential security flaws, such as SQL injection, cross-site scripting (XSS), and other vulnerabilities, and provided recommendations for mitigation.
Log Report: Throughout the testing process, I maintained a detailed log report of all test cases, testing methodologies, tools used, and their outcomes. This comprehensive report served as a valuable reference for developers to address identified issues and for stakeholders to understand the website's overall quality and security status.
By conducting rigorous testing using both manual and automated approaches, performing performance and load testing, and ensuring security through vulnerability testing, I helped ensure that the "We Care" website met high-quality standards, delivered a seamless user experience, and safeguarded against potential security risks. The project's outcomes provided valuable insights for further refinement and improvement of the website before its deployment to production.
×Deepfake Detection[2022]In my deepfake detection project, I utilized an ensemble technique, combining InceptionV2 and Xception deep learning models. These models were trained on a diverse dataset of deepfake and authentic videos, and their predictions were combined to effectively identify and differentiate deepfake videos with an accuracy of 98%.
×Real Estate Database Management System[2020]In my real estate database management system project, I developed a user-friendly solution for organizing property information. The system allowed real estate professionals to input, update, and search property listings efficiently. It included advanced features, data visualization, and robust security measures, enhancing decision-making and operational efficiency in the industry.
×Image Steganography[2022] In my image steganography project, I utilized CNN to hide one picture inside another, making it invisible to the human eye. Unlike traditional methods, our approach used neural networks to identify optimal locations for concealing information in the cover image, enhancing security. A decoder network was trained to extract the hidden picture from the modified cover image. The modifications to the container image were imperceptible, ensuring data confidentiality even if the original picture was unavailable. The project showcased a robust and secure method for image steganography, applicable in data privacy and secure communication scenarios.


Tabli is developed by Antony Courtney as a side project.
I'm a Computer Scientist / Software Developer / Engineering Manager based in San Francisco.
You can find me on the web at antonycourtney.com, or on Twitter as @antonycourtney.
I welcome your feedback on Tabli!
Please send feedback, questions, suggestions, and bug reports to
If you are a developer, please feel free to also browse the source and follow the project on github.


Was Studio 54 really that dull?
54 A Film Review By Michael Redman Copyright 1998 By Michael Redman
** (out of ****)
There are some people who, no matter how good a time they're having, no matter how great a place they're at, are convinced that somewhere, someone is having more fun than they are. There must be a better party elsewhere and they're going to find it. Obviously it's an endless quest.
In the late seventies Studio 54 was that better party for the world. Whatever was going on there must be the ultimate revelry. All the glitteratti were there and it was all so decedent.
Nineteen-year-old Jersey boy Shane O'Shea (Ryan Phillippe) is hanging out with his dull friends at the same old dull discos and desperately wants to see the bright lights. He convinces his buddies to drive across the river in hopes of catching a glimpse of his fantasy girl, soap actress Julie Black (Neve Campbell).
Star-watching in front of the club, Shane impresses owner Steve Rubell (Mike Myers) with his angelic looks and is allowed access to the zone forbidden to mere mortals. Figuratively and literally leaving his friends behind, he enters nirvana.
Our ambitious, but non-too-bright hero is willing to do anything to get ahead. With the help of his new pals, buser Greg (Brecklin Meyer) and his wife coat-check girl Anita (Salma Hayek), Shane soon rises to the sought-after position of bartender. Christened "Shane 54", he has all the drugs and women he can abuse.
Let me get my prejudices out of the way up front. Disco barely qualifies as music and the late seventies were an ugly time.  With that in mind, here's my opinion of the movie:
Ugly.
Did the shirtless busboys really look that bad in their short shorts? Beneath the glitz, was it all that lifeless?

Somehow I had the feeling that Studio 54 was more exciting. This film makes decadence look downright listless. Like many people, they're doing the same thing every night and not really enjoying it very much.
The club is the place to be seen and everyone is working the crowd or trying to. Anita wants to be a singer and is willing to sleep with whoever she has to. Julie wants better roles and is willing to sleep with whoever she has to. You get the idea.
With one exception, the actors are disappointing. Phillippe certainly looks the role of the fallen cherub, but "confused" is the only passion that he can summon. The women are beautiful, but, as in the real world, that only goes so far. Some personality would be nice.
People are introduced, almost become interesting and then disappear. Sela Ward is a record executive with a fondness for nose candy and younger men and the potential for characterization, but where does she go? Ellen Dow plays an elderly disco grandma who might be a human being, but turns into a cliche.
The exception is Myers' Rubell. Known for "Wayne's World" and "Austin Powers", this role is a change of pace for the comedian. The ultimate host of the party that never ended, Rubell is pathetic. Wallowing on a bed filled with cash, he is propositioning a young busboy but has to pause for a moment to vomit on the money. He's the rich guy with lots of friends because he has cool stuff, but no one really wants to spend much time with him. Myers does a grand job with the character. As unpleasant as he is, the movie only comes to life when he is onscreen.
You feel sorry for Rubell. He wants so much to be liked. Pity and embarrassment are the primary emotions that nearly every character inspires. Poor Shane. He doesn't fit with the "in" crowd. Poor Shane. Now he does fit in.
The plot is a thinly-disguised old one. Small-town boy goes to the big city, is seduced by the glitter but finds out that the old values are the true ones. According to this film, Blake was wrong. The road of excess doesn't lead to the palace of wisdom, it goes nowhere. Surprise, surprise, the folks were right. Sex and drugs are bad things. Come home Shane.
Like a disco, the film is fascinating and looks great for the first half hour. Then nothing happens. As the third and lessor seventies movie after "Boogie Nights" and "The Last Days Of Disco", "54" may be the one to finally put that decade to rest. Hopefully the movie-going public is discoed-out.
If everyone wanted to be at Studio 54, I wonder where the people who were there wanted to be. Surely there was a better party somewhere else.
Michael Redman has written this column for over 23 years and doesn't have the time to think about why disco died. He's trying to figure out where the summer of 1998 went. Email your theories to<EMAIL_ADDRESS>[This appeared in the 9/03/98 "Bloomington Independent", Bloomington, Indiana. Michael Redman can be contacted at<EMAIL_ADDRESS>--<EMAIL_ADDRESS>This week's film review at http://www.indepen.com/ Film reviews archive at http://us.imdb.com/M/reviews_by?Michael%20Redman
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


imagepng
(PHP 4, PHP 5, PHP 7)
imagepng — 以 PNG 格式将图像输出到浏览器或文件
说明
bool imagepng ( resource $image [, string $filename ] )
imagepng() 将 GD 图像流（image）以 PNG 格式输出到标准输出（通常为浏览器），或者
如果用 filename 给出了文件名则将其输出到该文件。
参见 imagegif()，imagewbmp()，imagejpeg() 和 imagetypes()。
User Contributed Notes 33 notes
===============================================================================
The name "quality" for the compression parameter is quite misleading, as png
compression is always lossless. The trade off is between speed and filesize, it
cannot affect quality.
Here's something I found at stackoverflow; I haven't checked it, but if it is
correct it should definitely included in the documentation:
---
from php source (gd.h):
/* 2.0.12: Compression level: 0-9 or -1, where 0 is NO COMPRESSION at all,
* 1 is FASTEST but produces larger files, 9 provides the best
* compression (smallest files) but takes a long time to compress, and
* -1 selects the default compiled into the zlib library.
*/
Conclusion: Based on the Zlib manual (http://www.zlib.net/manual.html) the
default compression level is set to 6.
---
Regarding suggestions to rescale the 0-99 quality range of jpeg into the 0-9
range of png, note that for jpeg 99 is minimum compression (maximum quality)
while for png 9 is maximum compression (quality doesn't change).
===============================================================================
Be careful when using a variable for the file name.
PHP behavior with $filename differs when switching to PHP5.4 : PHP5.3 will use
$filename='' the same way as $filename=NULL (e.g. no warning)
===============================================================================
"Tip: As with anything that outputs its result directly to the browser, you can
use the output-control functions (http://www.php.net/manual/en/
ref.outcontrol.php) to capture the output of this function, and save it in a
string (for example)."
ob_start();
imagepng($image);
$image_data = ob_get_contents();
ob_end_clean();
And now you can save $image_data to a database, for example, instead of first
writing it to file and then reading the data from it. Just don't forget to use
mysql_escape_string...
===============================================================================
If you're generating an image dynamically based on post data and don't want to
save it to the server, sending it to be displayed can cause problems as when
the person tries to save it, the browser will request it again from the server
(causing any post data to be lost and probably a corrupted png).
The easiest way to get around this is to force it to download using the content
disposition header, for example:
===============================================================================
Trying to resize a png 256 colors image and save it in 256 colors with a
correct color palette ? (if you'll save a 256 color image in truecolor palette
the result image will have a big size).
I spent some hours trying various function to get a good quality 256 color png
image, but because of color palette the result image quality was awful.
But thank to the comment of zmorris at zsculpt dot com from
imagetruecolortopalette function page, i figured out how to get a properly
image!
Good luck,
Namolovan Nicolae, Moldova
===============================================================================
I ran across the following WRT sessions and image creation.
In main.php:
');
unset($_SESSION['text']);
...
?>
In createImage.php:
Problem: main.php execution ends before createImage.php writing the text to
image, thus the unset($_SESSION['text']) destroys the text and you end up with
empty image.
Solution: move call to unset() as last statement of createImage.php
===============================================================================
sums up tp 2*400+1 (+1 due to the 0 in the center)
$image = imagecreate(801, 801);
// Choose the colors of background, normal village and highlighted alliance
$color_background = imagecolorallocate($image, 255, 255, 255);
$color_normal = imagecolorallocate($image, 200, 200, 200);
$color_marked = imagecolorallocate($image, 255, 0, 0);
// Fill images background with chosen color
imagefill($image, 0, 0, $color_background);
// Select ALL villages from the DB and order by ascending ID
// (Fields are numbered from top left to bottom right)
$query = 'SELECT x, y, aid FROM x_world ORDER BY id ASC';
$result = @mysql_query($query) OR die('Can not select villages from table
x_world!');
// Check whether there any villages at all
if (mysql_num_rows($result)) {
// Select first village
$row = @mysql_fetch_assoc($result);
// These variables save the location on which we are currently drawing
$x_pointer = 0;
$y_pointer = 0;
// Outer loop for the Y-coordinates
for($y=400; $y >= -400; $y--) {
// Inner loop for the X-coordinates
for ($x=-400; $x <= 400; $x++) {
// Once we reached the coordinates matching the current record
selected from the DB:
if ($row['x'] == $x AND $row['y'] == $y) {
// Selecting the village color depending on the aid
if ($row['aid'] == $marked_aid) {
$color = $color_marked;
} else {
$color = $color_normal;
}
// Drawing the village with the selected color
imagefilledrectangle($image, $x_pointer, $y_pointer, (
$x_pointer + 1), ($y_pointer + 1), $color);
// Select next record
$row = @mysql_fetch_assoc($result);
}
// Increase pointer for X-coordinate
$x_pointer++;
}
// Increase pointer for Y-coordinate
$y_pointer++;
// We reached the end of a line and have to set the X-pointer to 0
again
$x_pointer = 0;
}
}
// Select the HTTP-Header for the selected filetype
header("Content-Type: image/png");
// Generate image and print it
imagepng($image);
?>
===============================================================================
If you want to open a png image with alpha blending, you need to do something
like this:
I spent almost a day to find out why alpha blending doesn't work. I hope this
is usefull to others too :)
===============================================================================
My webserver, running 5.14 didn't like the header that was generated using
imagepng(). It works find on my local test server and on 4.x from another host.
The generated image displays in the browser (IE, firefox) but when saved to a
file or inserted into an RTF file, the image was corrupted. As a test, when
attempting to right-click to save as, the image format was not recognized.
The only work-around appears to be adding the additional paramaters.
 My images on the local
server were somehow broken and therefore did not display in the browsers. After
much looking around and testing, including re-installing apache on my computer
a couple of times, I traced the problem to an included file.
No the problem was not a whitespace, but the UTF BOM encoding character at the
begining of one of my inluded files...
So beware of your included files!
Make sure they are not encoded in UTF or otherwise in UTF without BOM.
Hope it save someone's time.
===============================================================================
If you are outputting a PNG directly in response to a client request it is
important to check your web server configuration.
Some clients may request your images with a accept header of image/*. Default
configurations of Apache and possibly other servers will by default NOT allow
your script to run in response to this request.
Apache is specifically discussed at http://stackoverflow.com/q/19169337 but
other server have been documented to have issue too.
In other words, when testing your application don't just use the web browser,
consider a phone's browser and networking libraries which could send different
headers.
===============================================================================
My script was unable to complete: Fatal error: Allowed memory size of XX bytes
exhausted (tried to allocate XX+n bytes).
I found out that PHP handles images in uncompressed format: my input image was
8768x4282@32 bit => ~150 MB per single in-memory copy.
As a solution, you can either check the dimensions and reject anything too big
or, as I did, use ini_set('memory_limit','1024M'); on the page start (if your
server has enough on board memory).
===============================================================================
Better than a chmod 777 to any '/dir/pic.png' you should :
- test if dir is writable (is_writable func.)
- use chmod 700 (more secure because let only the webserver ID have access)
In any case you should program a (crontab) script to change the owner ID of any
images created.
===============================================================================
When you allow multiple output formats, (jpg/png) but want to use the 1-100
quality scale (like jpg), you will have to format the number:
===============================================================================
Creating a transparent image filled with tranparent color only
I had some hard times putting up this one:
===============================================================================
in reply to: cbrasho at yahoo dot com
if you use Apache as a webserver, you could do the following:
You could set up a 'img' directory in your webspace.
In that directory there will be two files: a .htaccess file and a img.php file
the .htaccess file contains the following code:
ErrorDocument 404 /img/img.php
the img.php file looks something like this:
if you use a url for your image like http://test.com/img/image1.jpeg, which
doesn't exist, normally you would get a 404-page. in this case, the 404 is
being handled by img.php, which brings up the required image...
===============================================================================
Having your pictures stored in a database sounds great but brings you a lot of
trouble.
Storing images in a DB you will have a script show.php that will appear in
tags:
But if you want to have REGISTER GLOBALS = OFF, you are in trouble and there is
no way (at leas as far as i know) to solve the problem but to put te img from
the DB in a file and put the coresponding file name in the tag. But this
brings another problem: simultaneous accesses to the page. So you will have to
find a way to give unique names to the picture files for each simultaneous
access to the page. The solution might be using sessions. This is how you end
up having a very compleh PHP script for a very simple problem. So, the basic
ideea is " do not store your pictures in a blob unless you know exactly what
you are doing".
===============================================================================
to all the ones, who like having their users fill their profil with an image
without destroying a fixed design the following should be a great way to handle
this problem.
this file opens a picture from $imagepath and returns it as a valid picture to
embed in: (in [] =
optional)
but this file does more than this. it also adds black borders to files that are
smaller than the max. size, so adding borders to the left and right where a
image is too high :-)
if there is a need for a copyright note this script will also help you. you can
put in a various text to $copyright. the text length should be in relationship
to $maxX and $maxY.
Well there are other features of the script, just try'em out and have fun with
it :-)
bye
10000/$minZoom) $_K = 10000/$minZoom;
if($_K < 10000/$maxZoom) $_K = 10000/$maxZoom;
# calculate new image sizes
$newX = $imgX/$_K * 100;
$newY = $imgY/$_K * 100;
# set start positoin of the image
# always centered
$posX = ($maxX-$newX) / 2;
$posY = ($maxY-$newY) / 2;
# creating new image with given sizes
$imgh = imageCreateTrueColor($maxX, $maxY);
# setting colours
$cols = explode(",", $picBG);
$bgcol = imageColorallocate($imgh, trim($cols[0]), trim($cols[1]), trim($cols[2
]));
$cols = explode(",", $picFG);
$fgcol = imageColorallocate($imgh, trim($cols[0]), trim($cols[1]), trim($cols[2
]));
# fill background
imageFill($imgh, 0, 0, $bgcol);
# create small copy of the image
imageCopyResampled($imgh, $timg, $posX, $posY, 0, 0, $newX, $newY, $image[0],
$image[1]);
# writing copyright note
imageStringUp($imgh, $font, $maxX-9, $maxY-3, $copyright, $fgcol);
# output
switch($image[2]) {
case 1:
# GIF image
header("Content-type: image/gif");
imageGIF($imgh);
case 2:
# JPEG image
header("Content-type: image/jpeg");
imageJPEG($imgh);
case 3:
# PNG image
header("Content-type: image/png");
imagePNG($imgh);
}
# cleaning cache
imageDestroy($timg);
imageDestroy($imgh);
?>
===============================================================================
PNG files are already compressed. They use a lossless compression algorithm. If
you are using HighColour images, the compression only does so much. For low
colour images (16 or 256) the compression is much better.
It is pointless trying to compress the images further before sending to a
browser.
===============================================================================
I have experienced segfaults and bus errors with the following configuration:
FreeBSD4.4, Apache 1.3.26, PHP 4.2.2, GD-1.8.4, PDFlib 4.0.1. The apache
process crashed when calling the imagepng function, but it didn't crash when
calling the imagejpg function, or imagecreatefrompng...
Some wasted hours (lots) later, in which I have tried to recompile gd, libpng,
php, libjpeg, what-not, I have found the following advices:
http://bugs.php.net/bug.php?id=16841
So the problem was not with the png library, but rather with the PDFlib. Even
though all the threads led to a png-problem... so I have simply upgraded to
PDFlib 4.0.3 (w/o any special configure arguments; --with-libpng didn't work
anyways), recompiled PHP, and now everything works (imagepng, pdf creation,
etc.).
Hope this helps,
bogdan
===============================================================================
PNG images (as any image) can be stored in a MySQL blob field, but if you want
to do this, you'll want to serialize the image stream into a better form. I
would recommend base64_encode() and base64_decode(). (Just fopen() the file,
fread() the contents in, base64_encode() the string, and fire off your SQL
query (use addslashes()/stripslashes() to be more secure)).
This has been posted an innumerable amount of times throughout the site, but
it's still terrible that a lot of users simply don't understand this and use it
to its full potential.
I would also recommend that if you are doing images this way, to keep an image
cache folder somewhere that PHP can access (possibly even somewhere off your
webroot?). That way if your website is swamped with traffic it won't kill the
SQL server.
===============================================================================
You could use the function imagecreatefrompng
(I assume that you already know how to get the text from the url.)
The only thing left to do is put that text on the image using the correct
colors for you.
Regards,
Peter Berkhout.
===============================================================================
Presumably it returns true on success and false on failure, although the
documentation doesn't actually say so.
===============================================================================
When changeing the PHP version from 4 to 5 I found out, that PHP5 handles
imagepng() more restrictive than in PHP4. I'd used
imagepng($image,'',90);
to reduce the image quality whithout saving the image as a file. The quality
parameter is not supported at all, I used imagejpg before and simply changed
the function to imagepng whithout taking care of the existing parameters. It
did not matter and there was no error in PHP4. But in PHP5, the image will not
be shown anymore.  In that case, DON'T use "createimagefrompng" and "imagepng" to output the
image. Use fpassthru instead. It is literally hundreds of times faster.
I've tested it with a 5120x5120 (1.2Mb) image, that was cached on the harddisk.
Using imagepng, the transfer took 12 seconds. Using fpassthru, it took only
32ms!
===============================================================================
I was curious about the relationship between quality, processing time and
resulting image size, so I created this little benchmark to test it (The image
used was originally RGB_24bits_palette_R85.png, found on wikipedia). Results
are at the bottom.
===============================================================================
This is my way to store PNG-images in a MySQL database... You cannot directly
store the PNG-image in a variable, and then parse it in the database, cos if
you try to define it to a variable, it'll still just output it...
In my method i use three functions
to "capture" the output and store it in a variable; ob_start (to start the
output buffering), ob_get_contents (to capture the output), and
ob_end_clean (to erase the cache, and end the output buffering)
===============================================================================
If you need to call imagepng() multiple times (for example, when you want to
send it to the browser, but also to a disk cache), write your image to a file
first, THEN call readfile() on it.
PHP internally works with a temporary file when sending the image to the
browser, so you'll gain nothing by calling imagepng() twice.
===============================================================================
To change the background of a 24-bit PNG for graceful degradation in IE6, the
PNG file needs a bKGD chunk:
===============================================================================
@ phpman at texmedia dot de:
The compression range in PNG is in range 0-9, i think if you specified a
compression level higher than 9, it'll be completely "compressed", or
suppressed in the other words.
The compression level is originally for JPEG, which is in range 0 - 100, I
think it'll work fine if you divide it by ten before passing to imagepng(). ;)
===============================================================================
To send 'Content-Length' header (like in static pictures case) i use "Output
handler" like this...
===============================================================================
If you want to resize a png-24 image and preserve the alpha channel you need to
set imagealphablending($im_dest, false) on the destination image just after
creating it with imagecreatetruecolor() and do a imagesavealpha($im_dest, true)
on it before saving it:


| Host | Description | Priority | Time |
|---|---|---|---|
| {{ip}} | {{alert.message}} | {{alert.severity}} | {{alert.reportingtime}} |
| Host | Description | Event Type | Time |
|---|---|---|---|
| {{ip}} | {{event.message}} | {{event.eventtype}} | {{event.reportingtime}} |
| Application | Host | Occurrence | Usage | Status | last Updated | Up Time |
|---|---|---|---|---|---|---|
| {{container.application}} | {{container.host}} | {{container.ip_address}} | {{container.usage}} | {{container.status}} | {{container.last_updated}} | {{container.up_time}} |
| Name | Version | Issuer | License Expiry Date | Project | Role |
|---|---|---|---|---|---|
| {{application.name || application.version}} | {{application.version}} | {{application.issuer}} | {{application.license_exp}} | {{application.project}} | {{application.role}} |
| Replication Count | Avg Usage | Port Numbers |
|---|---|---|
| {{applicationfacts.replication_count || applicationfacts.avg_usage}} | {{applicationfacts.avg_usage}} | {{applicationfacts.port_numbers}} |
| User List | {{applicationstatus.active_user_count}} |
| Active user Count | {{applicationstatus.dead_locks}} |
| Dead Locks | {{applicationstatus.buffer_busy_waits}} |
| buffer Busy Waits | {{applicationstatus.query_sessions}} |
| Fast Recovery Usage | {{applicationstatus.fast_recovery_usage}} |
| Log File Completion | {{applicationstatus.log_file_completion}} |
| DB Sequential Read Wait | {{applicationstatus.db_Sequential_read_wait}} |
| Direct Path Reads | {{applicationstatus.direct_path_reads}} |
| DB File Size | {{applicationstatus.db_file_size}} |
| Rollbacks | {{applicationstatus.rollbacks}} |
| Commits | {{applicationstatus.commits}} |
| Up Time | {{applicationstatus.up_time}} |
| Redo Writes | {{applicationstatus.redo_writes}} |
| Parallel Writes | {{applicationstatus.parallel_writes}} |
| CPU Low Threshold | Replication Count | CPU High Threshold | Replicaton Count |
|---|---|---|---|
| {{applicationsettings.cpu_low_threshold || applicationsettings.replication_count}} | {{applicationsettings.replication_count}} | {{applicationsettings.cpu_high_threshold}} | {{applicationsettings.replicaton_count}} |
| Name | Total disk Size(GB) | Disk In Use | Max Usage |
|---|---|---|---|
| {{diskutilities.Name || diskutilities.Total_Disk_Size}} | {{diskutilities.Total_Disk_Size}} | {{diskutilities.Disk_In_use}} | {{diskutilities.Max_Usage}} |


Welcome
Drawing
Maps
Shared maps
Logout
Filter
Maps:
One
Two
Three
Name:
456
MapID:
456
Deadline:
456
Description:
456
Status:
456
Score:
456
From:
456
General document:
456


Log In to Your Account
Username
Password
Log In
Don't have an account?
Create one
here
Forget your username or password?
Find them
here
Log In to Your Account
Username
Password
Log In
Don't have an account?
Create one
here
Forget your username or password?
Find them
here


|
|
banners @ rotten dot com
An archive of disturbing illustration
Here are the banners if you want to use any -- the only reason
they even exist is, people have asked for them. Right now there are
only a few; if you're a really good graphic designer, you can try submitting
one of your own to staff.
Banner by rotten staff
Banner by rotten staff
Banner by rotten staff
Banner by rotten staff
Contributed by D.J. Toell, Law offices of Holy & Hoif
Here is the HTML needed to place the banner on your page:

Feel free to link to our home page, you needn't ask permission.
But most of the other pages aren't permanent locations, so links
to them aren't recommended.
[return to rotten.com]
|


Create, send, edit Discord embeds.
- Source:
Methods
(static) create(message, title, desc, fields, thumbnail, image, color, files, code, inline)
Creates a custom embed
Parameters:
| Name | Type | Description |
|---|---|---|
message |
Discord.Message | The message of the embed |
title |
string | The title of the embed |
desc |
string | The description of the embed |
fields |
object | The fields of the embed (optional) |
thumbnail |
string | The URL for the thumbnail of the embed |
image |
string | The URL for the image of the embed |
color |
string | The HEX color code of the embed |
files |
object | The files attached alongside the embed |
code |
boolean | If set to true all the fields along with the description will be surrounded by code blocks |
inline |
boolean | Should all the fields be inlined by default (set to true by default) |
- Source:
(static) debug(message, content)
Send a embed in debug format
Parameters:
| Name | Type | Description |
|---|---|---|
message |
Discord.Message | = The message of the embed |
content |
string | = The description of the embed |
- Source:
(static) edit(message, title, desc, fields, thumbnail, image, color, files, code, inline)
Edit a custom embed
Parameters:
| Name | Type | Description |
|---|---|---|
message |
Discord.Message | The message of the embed |
title |
string | The title of the embed |
desc |
string | The description of the embed |
fields |
object | The fields of the embed (optional) |
thumbnail |
string | The URL for the thumbnail of the embed |
image |
string | The URL for the image of the embed |
color |
string | The HEX color code of the embed |
files |
object | The files attached alongside the embed |
code |
boolean | If set to true all the fields along with the description will be surrounded by code blocks |
inline |
boolean | Should all the fields be inlined by default (set to true by default) |
- Source:
(static) error(message, error, content)
Send a embed in error format
Parameters:
| Name | Type | Description |
|---|---|---|
message |
Discord.Message | = The message of the embed |
error |
Error | = The error |
content |
string | = A helpful message appended to the beginning of the description |
- Source:
(static) send(message, title, desc, fields, thumbnail, image, color, files, code, inline)
Send a custom embed
Parameters:
| Name | Type | Description |
|---|---|---|
message |
Discord.Message | The message of the embed |
title |
string | The title of the embed |
desc |
string | The description of the embed |
fields |
object | The fields of the embed (optional) |
thumbnail |
string | The URL for the thumbnail of the embed |
image |
string | The URL for the image of the embed |
color |
string | The HEX color code of the embed |
files |
object | The files attached alongside the embed |
code |
boolean | If set to true all the fields along with the description will be surrounded by code blocks |
inline |
boolean | Should all the fields be inlined by default (set to true by default) |
- Source:


Welcome!
SMSNinja is a high-effective firewall of
FILTER
ing/
BLOCK
ing SMS/MMS/iMessage/Call/FaceTime, it handles everything of telecommunication for you perfectly.
Thanks for your support! Have fun!


Snookes1516.github.io
HawkNet - Hillsborough Community College Essay Writing Service for Your Brilliant Academic Success. International Student s Essay Writing Center provides help and practical guidance for general essay, admission, and scholarship essay writing, as well as sample essays.
Connecting talent to opportunityWhether you are a student looking for an internship, an alum looking for a job or an employer looking to recruit, Handshake Essay writing service trusted by students worldwide. Student Employment Indiana State University. Many Students need Help with Essay Writing. Learn about the Best Writing Services Company that Provides Quality Papers for Your Academic.
Admission Essay, Personal Statement Letter. Homework Help, Assignment Help, Essay Writing Essay Help Online For Students College Essay Writing Service.
Essay Tips: 7 Tips on Writing an Effective Essay Fastweb. Essay Help from Skillful Academic Writers Ivy League writers provided Admission Essay, Personal statement Letter of Recommendation writing services for college, grad, mba, med law school students. Affordable-Papers: Your Personal Essay Writer Exceeds. Essay Writing Center for International Student.
Buy essay online at professional essay writing service. Order custom research academic papers from the best trusted company. Just find a great help for students Welcome to NOVA! Every important journey involves careful preparation. We offer new students an introduction to our programs and services through our orientation. Essay Writing Tips - International Student. Get academic essay writing help online from our proffesional writers. Our company is ready to offer college paper writing Qualified writers Low prices Timely.
The short essay (5-10 pages), typed and double-spaced, is an excellent way to demonstrate your ability to condense a great deal of material into what is essentially. Professional essay writing service UK provided for students. Order best assignment writer help. Complete plagiarism-free quality papers and affordable customer. Sail through Studies with Our Essay Writing Service How to survive studies and not go insane? Hardly any student can do it alone. When teachers start bombarding. Essay Help - Providing Best Writing Help for Students.
The Shocking Truth About Essay Writing Services HuffPost.
Often, the hardest words to write in an essay are the opening ones. When you’re doing the first draft, I’d suggest just writing your way through the introduction.
Essay Help Writing A Paper Service We offer professional essay writing help and assistance anytime you need it, no matter what topic, subject or urgency - you will get a perfect paper. "Every year, we receive at least one essay that picks apart an affluent suburb, but we've never seen one quite as blunt as her take on Northville, Mich.". Thank you to all students who participated in the 2018 Scholarship Survey. Congratulations to the 2018 Scholarship Winners. Student Essay Writing Service - Low Prices and High-Quality. Essay Writing Service From Vetted Writers - GradeMiners. Essay4less.com - Essay Writing. A Student's Guide: Writing the Short Essay. Get instant Homework Help for your questions, 24/7 online Tutors for assignment help and support, worlds largest Database of notes, documents
Alpha Student – How to start an essay: the opening sentence. SAT Essay score 4/4/4: Learn why this student received a perfect score. Handshake Login Arizona State University.
College Scholarships and Resources - Student-View. Our essay help online service really believes in successful meeting the most strict deadlines our clients have every student day! Rely upon our talented. Our student essay writing service is here to help you get a top grade. Learn how to improve your writing skills in a few simple steps and find out more about. Essay Editing and Proofreading Service from Fastest Editors. 911 Essay Help - Your Own College Essay Writing Helper. Custom Essay Writing Get Professional Essay
Types of Papers: Narrative/Descriptive. Help writing an essay - English Essays.
Meet the best essay help service all students opt for! Round-the-clock customer support service. Budget-friendly rates. Experienced writers across 40+ subjects. Our student essay help is most professional, cause every team member is effectively trained to propose you the best writer for any kind of essay topic.
Essay Writing Service UK Order Best Student Assignment.
Is writing a research essay difficult task for you? Then worry no more and come to the assignment help experts of StudentsAssignmentHelp.com and hire our research. Indiana State University students often work in jobs on the University campus and in the Terre Haute community. Many benefits exist for students who can balance.
Get the Best Essay Help from Professional Writers This Season. Learn About Writing Services Company That Offers Quality Papers for Your College.
Our mission is to help students worldwide achieve academic success without anxiety. If you need quality essay help, we'll match you with a vetted essay writer in seconds. I recently had the opportunity to speak with a former writer for a prestigious essay writing service and his experience in the industry. "I have witnessed. Assignment Help services Online Homework help Custom.
Student Orientation - Northern Virginia Community College. SameDayEssay.me is your reliable source of essay help. Reasonable prices for professional custom essay writing service. Customer support available. Admissions essay got a student into Stanford University. Professional Student Essay Help HelpEssayOnline.com. Online custom essays, term papers, research papers, reports, reviews and homework assignments. Professional custom writing service offers high quality and absolutely. International Student's Essay Writing Center provides help and practical guidance for general essay, admission, and scholarship essay writing, as well as sample essays. Student Life Essay Tips: 7 Tips on Writing an Effective Essay Essays can be crucial to admissions and scholarship decisions. Turnitin provides instructors with the tools to prevent plagiarism, engage students in the writing process, and provide personalized feedback.
Writing a college application essay is not easy, these are some useful hints and tips on how to construct and write the best essay possible. Essay help at the click of a button. You have an essay due soon. We have a team of screened experts who are ready to get it done. We’ll match you with an expert.
HawkNet. HawkNet is a term used to describe the Web-based resources for students, faculty, and staff at Hillsborough Community College. Please find information about.
Check out the Resource Guide —an easy-to-use guide that will provide you with a snapshot of student life at Middlebury College. Find the assignment you want to take and click on its title to see assignment information (A) such as assignment type, start and due dates, attempts remaining, points. To write a narrative essay, you’ll need to tell a story (usually about something that happened to you) in such a way that he audience learns a lesson or gains insight. Essay editing is a good way to improve your text and make it shine. Our essay editors are ready to help you any time. Get started today. Tired of your pen? Have totally no ideas on the topic? Choose our help writing a paper service. We write your essay or reaserch paper. Contact us right.


No Docker images built with Abstruse found.
It is important to build images using this form so files needed for Abstruse to work are included.
Images built using Abstruse form are later easily upgradeable as config files are stored with the application.
Building image {{ form.name }} ({{ imageBuildsText }} layers) ...


Home
About
Matthew
Home
This is home! Welcome!
About
This is about this page!
User
Name
Welcome {{id}}, this is kind of cool


| No. | Name | Occupation | HMO Provider | Age | Email Address | Phone Number | Date Of Visit | Next of Kin | Illness | Home Address | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| {{rec.patientId}} | {{rec.name}} | {{rec.occupation}} | {{rec.hmoProvider}} | {{rec.age}} | {{rec.emailAddress}} | {{rec.phoneNumber}} | {{rec.dateOfVisit}} | {{rec.nextOfKinName}} | {{rec.illness}} | {{rec.homeAddress}} |


|
SimpleITK
1.2.4
|
Display an image in an external viewer (Fiji by default) More...
#include <sitkImageViewer.h>
Public Member Functions | |
| void | Execute (const Image &image) |
| Launch the viewing application to display the given image. More... | |
| const std::string & | GetApplication () const |
| Get the full path to the viewing application used in the command string. More... | |
| const std::string & | GetCommand () const |
| virtual std::string | GetName () const |
| ImageViewer () | |
| void | SetApplication (const std::string &app, const std::string &command="%a %f") |
| Set the full path to the viewing application used in the command string. More... | |
| void | SetCommand (const std::string &command) |
| Set the command string used to launch the viewing application. More... | |
| std::string | ToString () const |
| Print ourself out to a string. More... | |
| void | SetFileExtension (const std::string &ext) |
| Set/Get file extension of the temporary image file (default='.nii') More... | |
| const std::string & | GetFileExtension () const |
| Set/Get file extension of the temporary image file (default='.nii') More... | |
| void | SetTitle (const std::string &t) |
| Set/Get Title string on the ImageJ window. More... | |
| const std::string & | GetTitle () const |
| Set/Get Title string on the ImageJ window. More... | |
Static Public Member Functions | |
| static void | SetGlobalDefaultSearchPath (const std::vector< std::string > &path) |
| Set/Get the search path used to find the viewing application. More... | |
| static const std::vector< std::string > & | GetGlobalDefaultSearchPath () |
| Set/Get the search path used to find the viewing application. More... | |
| static void | SetGlobalDefaultExecutableNames (const std::vector< std::string > &names) |
| Set/Get name list used to find the viewing application. More... | |
| static const std::vector< std::string > & | GetGlobalDefaultExecutableNames () |
| Set/Get name list used to find the viewing application. More... | |
| static void | SetGlobalDefaultFileExtension (const std::string &ext) |
| Set/Get the default file extension. More... | |
| static const std::string & | GetGlobalDefaultFileExtension () |
| Set/Get the default file extension. More... | |
| static void | SetGlobalDefaultApplication (const std::string &app) |
| Set/Get the default application used in the command string. More... | |
| static const std::string & | GetGlobalDefaultApplication () |
| Set/Get the default application used in the command string. More... | |
| static void | SetGlobalDefaultDebug (const bool dbg) |
| Set/Get Debug flag. More... | |
| static bool | GetGlobalDefaultDebug () |
| Set/Get Debug flag. More... | |
| static void | SetGlobalDefaultDebugOn () |
| Set/Get Debug flag. More... | |
| static void | SetGlobalDefaultDebugOff () |
| Set/Get Debug flag. More... | |
| static void | SetProcessDelay (const unsigned int delay) |
| Set/Get Process delay, the wait time after launching the viewing application. More... | |
| static unsigned int | GetProcessDelay () |
| Set/Get Process delay, the wait time after launching the viewing application. More... | |
Static Private Member Functions | |
| static std::string | FindViewingApplication () |
| static void | initializeDefaults () |
Private Attributes | |
| std::string | m_Application |
| std::string | m_CustomCommand |
| std::string | m_FileExtension |
| std::string | m_Title |
| std::string | m_ViewCommand |
Static Private Attributes | |
| static bool | m_GlobalAreDefaultsInitialized |
| static std::string | m_GlobalDefaultApplication |
| static bool | m_GlobalDefaultDebug |
| static std::vector< std::string > | m_GlobalDefaultExecutableNames |
| static std::string | m_GlobalDefaultFileExtension |
| static std::vector< std::string > | m_GlobalDefaultSearchPath |
| static std::string | m_GlobalDefaultViewCommand |
| static unsigned int | m_GlobalProcessDelay |
| static int | m_GlobalViewerImageCount |
Display an image in an external viewer (Fiji by default)
The ImageViewer class displays an image with an external image display application. By default the class will search for a Fiji ( https://fiji.sc ) executable. The image is written out to a temporary file and then passed to the application.
When SimpleITK is first invoked the following environment variables are queried to set up the external viewer:
SITK_SHOW_EXTENSION: file format extension of the temporary image file. The default is '.mha', the MetaIO file format.
SITK_SHOW_COMMAND: The user can specify an application other than Fiji to view images.
These environment variables are only checked at SimpleITK's launch.
Definition at line 50 of file sitkImageViewer.h.
| itk::simple::ImageViewer::ImageViewer | ( | ) |
| void itk::simple::ImageViewer::Execute | ( | const Image & | image | ) |
Launch the viewing application to display the given image.
|
staticprivate |
| const std::string& itk::simple::ImageViewer::GetApplication | ( | ) | const |
Get the full path to the viewing application used in the command string.
| const std::string& itk::simple::ImageViewer::GetCommand | ( | ) | const |
| const std::string& itk::simple::ImageViewer::GetFileExtension | ( | ) | const |
Set/Get file extension of the temporary image file (default='.nii')
If the viewing application is Fiji, the default image format is MetaIO, '.mha'.
If the viewing application is ImageJ, the default image format is NifTi, '.nii'. This is because by default ImageJ does not come with the MetaIO plugin.
|
static |
Set/Get the default application used in the command string.
|
static |
Set/Get Debug flag.
Turning on/off the Debug flag produces output showing the command string used to launch the viewing application.
|
static |
Set/Get name list used to find the viewing application.
|
static |
Set/Get the default file extension.
The file extension determines the image file type used when writing out the temporary image file.
|
static |
Set/Get the search path used to find the viewing application.
|
inlinevirtual |
Return the user readable name of the class
Definition at line 57 of file sitkImageViewer.h.
|
static |
Set/Get Process delay, the wait time after launching the viewing application.
On Windows the delay is in seconds, default=1sec. On Mac/Linux the delay is in milli-seconds, default=500ms.
| const std::string& itk::simple::ImageViewer::GetTitle | ( | ) | const |
Set/Get Title string on the ImageJ window.
|
staticprivate |
| void itk::simple::ImageViewer::SetApplication | ( | const std::string & | app, |
| const std::string & | command = "%a %f" |
||
| ) |
Set the full path to the viewing application used in the command string.
The SetApplication method expects a full path name.
Using this method overrides the default application search.
By default, when this method is called, the command string is set to "%a %f" which simply means the application path followed by the temporary image file.
| void itk::simple::ImageViewer::SetCommand | ( | const std::string & | command | ) |
Set the command string used to launch the viewing application.
This command string may include the following tokens:
'a'
for the image viewing application (Fiji by default) 'f'
for SimpleITK's temporary image fileFor example, the default command string on Linux systems is:
After token substitution it may become:
For another example, the default command string on Mac OS X is:
After token substitution the string may become:
The string after '-eval'
is an ImageJ macro the opens the file and sets the title of the window.
If the 'f'
token is not found in the command string, the temporary file name is automatically appended to the command argument list.
Note: Using the ImageViewer::SetCommand method overrides the default command and/or the SITK_SHOW_COMMAND environment variable.
| void itk::simple::ImageViewer::SetFileExtension | ( | const std::string & | ext | ) |
Set/Get file extension of the temporary image file (default='.nii')
If the viewing application is Fiji, the default image format is MetaIO, '.mha'.
If the viewing application is ImageJ, the default image format is NifTi, '.nii'. This is because by default ImageJ does not come with the MetaIO plugin.
|
static |
Set/Get the default application used in the command string.
|
static |
Set/Get Debug flag.
Turning on/off the Debug flag produces output showing the command string used to launch the viewing application.
|
static |
Set/Get Debug flag.
Turning on/off the Debug flag produces output showing the command string used to launch the viewing application.
|
static |
Set/Get Debug flag.
Turning on/off the Debug flag produces output showing the command string used to launch the viewing application.
|
static |
Set/Get name list used to find the viewing application.
|
static |
Set/Get the default file extension.
The file extension determines the image file type used when writing out the temporary image file.
|
static |
Set/Get the search path used to find the viewing application.
|
static |
Set/Get Process delay, the wait time after launching the viewing application.
On Windows the delay is in seconds, default=1sec. On Mac/Linux the delay is in milli-seconds, default=500ms.
| void itk::simple::ImageViewer::SetTitle | ( | const std::string & | t | ) |
Set/Get Title string on the ImageJ window.
| std::string itk::simple::ImageViewer::ToString | ( | ) | const |
Print ourself out to a string.
|
private |
Definition at line 221 of file sitkImageViewer.h.
|
private |
Definition at line 219 of file sitkImageViewer.h.
|
private |
Definition at line 223 of file sitkImageViewer.h.
|
staticprivate |
Definition at line 204 of file sitkImageViewer.h.
|
staticprivate |
Definition at line 213 of file sitkImageViewer.h.
|
staticprivate |
Definition at line 216 of file sitkImageViewer.h.
|
staticprivate |
Definition at line 208 of file sitkImageViewer.h.
|
staticprivate |
Definition at line 212 of file sitkImageViewer.h.
|
staticprivate |
Definition at line 207 of file sitkImageViewer.h.
|
staticprivate |
Definition at line 211 of file sitkImageViewer.h.
|
staticprivate |
Definition at line 209 of file sitkImageViewer.h.
|
staticprivate |
Definition at line 203 of file sitkImageViewer.h.
|
private |
Definition at line 225 of file sitkImageViewer.h.
|
private |
Definition at line 218 of file sitkImageViewer.h.


A TIME FOR DRUNKEN HORSES -------------------------
Five Kurdish children struggle to survive by picking up odd jobs in a distant town while their widower father is away earning a living smuggling over the Iran/Iraqi border. Madi (Mehdi Ekhtiar-Dini) is the eldest son, but he's severely handicapped so twelve year old Ayoub (Ayoub Ahmadi) bears the brunt of this responsibility while Rojin (Rojin Younessi), the eldest sister, acts as mother to the brood. Ameneh (Ameneh Ekhtiar-Dini), the middle child, helps both elder siblings, but mostly takes care of Madi. Then their father is returned home, dead from the landmines which pepper the landscape in first time director Bahman Ghobadi's Cannes Camera d'Or winner, "A Time for Drunken Horses."
LAURA:
The biggest, freshest surge in international cinema has been coming from Iran in recent years via the works of Abbas Kiarostami ("A Taste of Cherry"), Majid Majidi ("The Color of Paradise") and father/daughter directors Mohsen and Samira Makhmalbaf ("Gabbeh," "Blackboards"). Many of these films focus on children. Ghobadi's "A Time for Drunken Horses" is like a more harshly realistic counterpart to Majidi's lush and fable-like "The Color of Paradise." They have in common children of a widowed father who care for a handicapped sibling who proves to be a hindrance to a marriage. Ghobadi's film is distinct in that his characters are Kurds, an ethnic minority of twenty million who live in Iran, Iraq, Turkey and Syria.
When their father dies, their uncle declares Ayoub head of household because he's already burdened with eight children of his own. Madi's doctor tells Ayoub he needs an operation within four weeks to keep him alive for another 8 months. Ayoub begins the risky smuggling work that killed their father, where mules, laden with tires, are given alcohol so they won't feel the blistering cold crossing the snowy mountains over the Iraqi border. Ayoub's struggles maintain his family, but he's unsuccessful earning enough money for Madi's operation. (He does bring Madi the present of a picture. Ghobadi captures a brilliant image of the dwarfish Madi gazing upon a photograph of a body builder.)
Ayoub returns from one trip to find that Rajin has been betrothed by his uncle. Rajin explains to the distraught Ayoub, frustrated by his uncle's convenient return to head-of-household, that she's agreed to this because her new family will pay for Madi's operation, but on the wedding day, her new mother-in-law refuses to take Madi and offers a mule as recompense. Ayoub strikes out in a blizzard with Madi to sell the mule in Iraq to get his brother medical care.
Ghobadi returned to his Kurdistani village home, utilizing non-actors (and many relatives) to make this striking film.  These people have bleak lives with hardships unimaginable to western audiences. Something as basic as the procurement of an 'exercise book' (blank school notebook) is a treat to be savorred (we see this innocent merchandise and the truck which carried it impounded at a border patrol early in the film). However, the love among the siblings, which Ghobadi makes palpable, may seem rare to jaded western auds.
The film is shot in a realistic documentary style, yet contains images of stunning beauty, particularly when showing the harsh, wintery landscape. (When Ayoub and Madi are caught between two ambushes, they witness the other smugglers and their mules run down a snow covered hill into a valley, with the mules' former tire loads rolling willy-nilly alongside them.)
"A Time for Drunken Horses" projects love, spirit and hope. The ending, in particular, is simplicity itself in projecting triumph over extreme adversity.
A-
For more Reeling reviews visit www.reelingreviews.com
<EMAIL_ADDRESS><EMAIL_ADDRESS>The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


{{ senderFirstName }} {{ senderLastName }} just posted on {{ postTitle }}
{{ commentBody }}
You are following this discussion.


Map over promises concurrently
Useful when you need to run promise-returning & async functions multiple times with different inputs concurrently.
$ npm install p-map
```js const pMap = require(‘p-map’); const got = require(‘got’);
const sites = [ getWebsiteFromUsername(‘sindresorhus’), //=> Promise ‘ava.li’, ‘todomvc.com’, ‘github.com’ ];
const mapper = el => got.head(el).then(res => res.requestUrl);
pMap(sites, mapper, {concurrency: 2}).then(result => { console.log(result); //=> [‘http://sindresorhus.com/’, ‘http://ava.li/’, ‘http://todomvc.com/’, ‘http://github.com/’] }); ```
Returns a Promise
that is fulfilled when all promises in input
and ones returned from mapper
are fulfilled, or rejects if any of the promises reject. The fulfilled value is an Array
of the fulfilled values returned from mapper
in input
order.
Type: Iterable
Iterated over concurrently in the mapper
function.
Type: Function
Expected to return a Promise
or value.
Type: Object
Type: number
Default: Infinity
Minimum: 1
Number of concurrently pending promises returned by mapper
.
Promise.all()
but for Map
and Object
MIT © Sindre Sorhus


public interface StepManager
| Modifier and Type | Method and Description |
|---|---|
String |
environmentSubstitute(String source)
Substitute all known environment variables in the given string
|
StepManager |
findStepInFlow(String stepNameToFind)
Finds a named step in the current flow.
|
void |
finished()
Step implementations processing batch data should call this to indicate
that they have finished all processing.
|
ExecutionEnvironment |
getExecutionEnvironment()
Get the executing environment.
|
List<StepManager> |
getIncomingConnectedStepsOfConnectionType(String connectionName)
Get a list of steps that are the source of incoming connections of the
given type
|
StepManager |
getIncomingConnectedStepWithName(String stepName)
Get the named step that is connected with an incoming connection.
|
Map<String,List<StepManager>> |
getIncomingConnections()
Get a Map of all incoming connections.
|
Instances |
getIncomingStructureForConnectionType(String connectionName)
Attempt to retrieve the structure (as a header-only set of instances) for
the named incoming connection type.
|
Instances |
getIncomingStructureFromStep(StepManager sourceStep,
String connectionName)
Attempt to get the incoming structure (as a header-only set of instances)
from the given managed step for the given connection type.
|
Step |
getInfoStep()
Returns a reference to the step being managed if it has one or more
outgoing CON_INFO connections.
|
Step |
getInfoStep(Class stepClass)
Returns a reference to the step being managed if it has one or more
outgoing CON_INFO connections and the managed step is of the supplied class
|
Logger |
getLog()
Get the log
|
LoggingLevel |
getLoggingLevel()
Get the currently set logging level
|
Step |
getManagedStep()
Get the actual step managed by this step manager
|
String |
getName()
Get the name of the step managed by this StepManager
|
List<StepManager> |
getOutgoingConnectedStepsOfConnectionType(String connectionName)
Get a list of downstream steps connected to this step with the given
connection type.
|
StepManager |
getOutgoingConnectedStepWithName(String stepName)
Get a named step connected to this step with an outgoing connection
|
Map<String,List<StepManager>> |
getOutgoingConnections()
Get a Map of all outgoing connections.
|
Settings |
getSettings()
Get the knowledge flow settings
|
boolean |
getStepMustRunSingleThreaded()
Returns true if the step managed by this step manager has been marked as
one that must run single-threaded.
|
void |
interrupted()
Step implementations processing batch data should call this as soon as they
have finished processing after a stop has been requested.
|
boolean |
isStepBusy()
Returns true if, at this time, the step managed by this step manager is
currently busy with processing
|
boolean |
isStepFinished()
Return true if the current step is finished.
|
boolean |
isStopRequested()
Return true if a stop has been requested by the runtime environment
|
boolean |
isStreamFinished(Data data)
Returns true if this data object marks the end of an incremental stream.
|
void |
log(String message,
LoggingLevel level)
Write a message to the log at the given logging level
|
void |
logBasic(String message)
Log a message at the "basic" level
|
void |
logDebug(String message)
Log a message at the "debug" level
|
void |
logDetailed(String message)
Log a message at the "detailed" level
|
void |
logError(String message,
Throwable cause)
Log an error message.
|
void |
logLow(String message)
Log a message at the "low" level
|
void |
logWarning(String message)
Log a warning message.
|
int |
numIncomingConnections()
Get the number of steps that are connected with incoming connections
|
int |
numIncomingConnectionsOfType(String connectionName)
Get the number of steps that are connected with the given incoming
connection type
|
int |
numOutgoingConnections()
Get the number of steps that are connected with outgoing connections
|
int |
numOutgoingConnectionsOfType(String connectionName)
Get the number of steps that are connected with the given outgoing
connection type
|
void |
outputData(Data... data)
Output one or more Data objects to all relevant steps.
|
void |
outputData(String outgoingConnectionName,
Data data)
Output data to all steps connected with the supplied outgoing connection
type.
|
void |
outputData(String outgoingConnectionName,
String stepName,
Data data)
Output a single Data object to the named step with the supplied outgoing
connection type
|
void |
processing()
Step implementations processing batch data should call this to indicate
that they have started some processing.
|
void |
setStepIsResourceIntensive(boolean isResourceIntensive)
Mark the step managed by this step manager as resource intensive
|
void |
setStepMustRunSingleThreaded(boolean mustRunSingleThreaded)
Marked the step managed by this step manager as one that must run
single-threaded.
|
void |
statusMessage(String message)
Write a status message
|
boolean |
stepIsResourceIntensive()
Returns true if the step managed by this step manager has been marked as
being resource (cpu/memory) intensive.
|
void |
throughputFinished(Data... data)
Signal that throughput measurement has finished.
|
void |
throughputUpdateEnd()
End a throughput measurement.
|
void |
throughputUpdateStart()
Start a throughput measurement.
|
static final String CON_DATASET
static final String CON_INSTANCE
static final String CON_TRAININGSET
static final String CON_TESTSET
static final String CON_BATCH_CLASSIFIER
static final String CON_INCREMENTAL_CLASSIFIER
static final String CON_INCREMENTAL_CLUSTERER
static final String CON_BATCH_CLUSTERER
static final String CON_BATCH_ASSOCIATOR
static final String CON_VISUALIZABLE_ERROR
static final String CON_THRESHOLD_DATA
static final String CON_TEXT
static final String CON_IMAGE
static final String CON_GRAPH
static final String CON_CHART
static final String CON_INFO
static final String CON_ENVIRONMENT
static final String CON_JOB_SUCCESS
static final String CON_JOB_FAILURE
static final String CON_AUX_DATA_SET_NUM
static final String CON_AUX_DATA_MAX_SET_NUM
static final String CON_AUX_DATA_TEST_INSTANCE
static final String CON_AUX_DATA_TESTSET
static final String CON_AUX_DATA_TRAININGSET
static final String CON_AUX_DATA_INSTANCE
static final String CON_AUX_DATA_TEXT_TITLE
static final String CON_AUX_DATA_LABEL
static final String CON_AUX_DATA_CLASS_ATTRIBUTE
static final String CON_AUX_DATA_GRAPH_TITLE
static final String CON_AUX_DATA_GRAPH_TYPE
static final String CON_AUX_DATA_CHART_MAX
static final String CON_AUX_DATA_CHART_MIN
static final String CON_AUX_DATA_CHART_DATA_POINT
static final String CON_AUX_DATA_CHART_LEGEND
static final String CON_AUX_DATA_ENVIRONMENT_VARIABLES
static final String CON_AUX_DATA_ENVIRONMENT_PROPERTIES
static final String CON_AUX_DATA_ENVIRONMENT_RESULTS
static final String CON_AUX_DATA_BATCH_ASSOCIATION_RULES
static final String CON_AUX_DATA_INCREMENTAL_STREAM_END
static final String CON_AUX_DATA_IS_INCREMENTAL
String getName()
Step getManagedStep()
ExecutionEnvironment getExecutionEnvironment()
Settings getSettings()
int numIncomingConnections()
int numOutgoingConnections()
int numIncomingConnectionsOfType(String connectionName)
connectionName
- the type of the incoming connectionint numOutgoingConnectionsOfType(String connectionName)
connectionName
- the type of the outgoing connectionList<StepManager> getIncomingConnectedStepsOfConnectionType(String connectionName)
connectionName
- the name of the incoming connection to get a list of
steps forStepManager getIncomingConnectedStepWithName(String stepName)
stepName
- the name of the step to getStepManager getOutgoingConnectedStepWithName(String stepName)
stepName
- the name of the step to look forList<StepManager> getOutgoingConnectedStepsOfConnectionType(String connectionName)
connectionName
- the name of the outgoing connectionMap<String,List<StepManager>> getIncomingConnections()
Map<String,List<StepManager>> getOutgoingConnections()
void outputData(String outgoingConnectionName, Data data) throws WekaException
outgoingConnectionName
- the type of the outgoing connection to send
data todata
- a single Data object to sendWekaException
- if a problem occursvoid outputData(Data... data) throws WekaException
StepOutputListeners
. Note that the downstream
step(s)' processIncoming() method is called in a separate thread for batch
connections. Furthermore, if multiple Data objects are supplied via the
varargs argument, and a target step will receive more than one of the Data
objects, then they will be passed on to the step in question sequentially
within the same thread of execution.data
- one or more Data objects to be sentWekaException
- if a problem occursvoid outputData(String outgoingConnectionName, String stepName, Data data) throws WekaException
outgoingConnectionName
- the name of the outgoing connectionstepName
- the name of the step to send the data todata
- the data to sendWekaException
- if a problem occursInstances getIncomingStructureForConnectionType(String connectionName) throws WekaException
connectionName
- the type of the incoming connection to get the
structure forWekaException
- if a problem occursInstances getIncomingStructureFromStep(StepManager sourceStep, String connectionName) throws WekaException
sourceStep
- the step manager managing the source stepconnectionName
- the name of the connection to attempt to get the
structure forWekaException
- if a problem occursboolean isStepBusy()
boolean isStopRequested()
boolean isStepFinished()
void processing()
void finished()
void interrupted()
boolean isStreamFinished(Data data)
data
- the data element to checkvoid throughputUpdateStart()
void throughputUpdateEnd()
void throughputFinished(Data... data) throws WekaException
data
- one or more Data events (with appropriate connection type set)
to pass on to downstream connected steps. These are used to carry
any final data and to inform the downstream step(s) that the
stream has endedWekaException
- if a problem occursvoid logLow(String message)
message
- the message to logvoid logBasic(String message)
message
- the message to logvoid logDetailed(String message)
message
- the message to logvoid logDebug(String message)
message
- the message to logvoid logWarning(String message)
message
- the message to logvoid logError(String message, Throwable cause)
message
- the message to logcause
- the optional Throwable to logvoid log(String message, LoggingLevel level)
message
- the message to writelevel
- the level for the messagevoid statusMessage(String message)
message
- the messageLogger getLog()
LoggingLevel getLoggingLevel()
String environmentSubstitute(String source)
source
- the source stringStep getInfoStep(Class stepClass) throws WekaException
stepClass
- the expected class of the stepWekaException
- if there are no outgoing CON_INFO connections or the
managed step is the wrong typeStep getInfoStep() throws WekaException
WekaException
- if there are no outgoing CON_INFO connectionsStepManager findStepInFlow(String stepNameToFind)
stepNameToFind
- the name of the step to findboolean stepIsResourceIntensive()
void setStepIsResourceIntensive(boolean isResourceIntensive)
isResourceIntensive
- true if the step managed by this step manager is
resource intensivevoid setStepMustRunSingleThreaded(boolean mustRunSingleThreaded)
mustRunSingleThreaded
- true if the managed step must run
single-threadedboolean getStepMustRunSingleThreaded()
mustRunSingleThreaded
- true if the managed step must run
single-threadedCopyright © 2018 University of Waikato, Hamilton, NZ. All Rights Reserved.


Overview
UI design for a hypothetical navigation application based on the Situationist’s dérive , where one “drifts” in an unplanned way through a city, subconsciously guided by the architecture and geography of the surroundings.
Users of this application can choose a location, invite friends to dérive to the destination as well, and then select the kind of wandering experience they would like to have before arriving at their destination. In contrast to most navigation applications, which give you the fasted route to your destination, Dérive’s focus is on crafting a unique journey to that destination.
Tools
Illustrator, Photoshop, Framer.js
Details
I really enjoyed the idea of wandering through a city, taking the time to really look at the surroundings instead of worrying about the final destination. I wanted the app to feel whimsical to users, with copy, visuals and interactions encouraging them to explore.
Visual Design
I usually start off with rough sketches of screens and how they flow together, but for this project, I started with the colors and patterns above. There are far more colors than I usually work with, because I wanted to represent the possibilities of adventure, and the many facets of a place waiting to be explored.
The plane and the island were offhand explorations I made while working on the background patterns. They fit the spirit of the app, so I ended up integrating them into the visual design. The plane helped express movement from screen to screen, and the island became the symbol for the final location.
Interactions
Derive is supposed to inspire exploration, so I felt a typical form with radio buttons or dropdowns would be too boring when it came to expressing route preferences. Since the prompt required that users be able to customize several different elements of the trip, a more interesting presentation would also keep users from feeling like stopping halfway through.
For example, the typical question for activity level is something along the lines of “light, average, or heavy workout?” When you think about energy level and typical workouts though, the intensity is rarely a constant amount. There are also physical limitations to consider; some people need to avoid stairs or hilly regions as much as possible. Being able to draw out how you’d like your journey to feel, instead of specifying these factors in words or dropdown selections would be pretty interesting.
Final Thoughts
This was my first time using Framer.js as a prototyping tool. It was a great experience being able to code interactions for individual elements instead of relying on the per-screen animations of tools like Marvel or Invision.
Looking back on this project, I just wanted to have more interesting interactions. Interesting, however, can’t really trump usability. If I had a second iteration of this prototype, these would be just a few of the questions I’d work on: Is there some kind of confirmation that the app has interpreted your drawing correctly, and a way to adjust the result? How can a user tell right now what exactly a “safe” or a “risky” trip would entail? Would a user have to repeat these settings each time they wanted to go on a derive, or is there a way to save these customizations?
Even now, I’m still in love with the concept of the dérive, probably because I find cultural landscape studies and thinking about how infrastructure and buildings impact how we act and feel to be really fascinating. It’s similar to thinking about how physical and digital interfaces influence people’s actions and thoughts.
Moreover, in this age of Google Maps and door to door delivery for almost anything, dérives would be a good reminder to savor the journey — and make the effort to have one in the first place! — instead of skipping directly to the end.


Menu PKI (Menu
Digital Signatures/PKI
)
The menu
PKI
contains the following commands:
Generate/Import Keys
Generate or import asymmetric keys.
Display/Export Keys
Display or export asymmetric keys.


Minimum Members: 2   Maximum Members: 2
“No problem can be solved from the same level of consciousness that created it.  Discover patterns, break encryptions and win the game !!!
Problem Statement ::
Rounds and details ::
FREQUENTLY ASKED QUESTIONS ::
· Q1: Can I participate as an individual candidate?
Ans: No, you cannot participate as an individual candidate
· Q2: Do I have to arrange for laptop?
Ans: Yes, you are required to come with a laptop.


| 1 | John Clark | Support | +152 |
| 2 | Kenny Davis | Business management | +152 |
| 3 | David Robertson | Sales | +191 |
| 4 | John Doe | Business | +483 |


A new invite was requested on Kindzy.com:
"{{message}}"
User data:
E-mail: {{email}}
Thank you,
Kindzy


Software License
By exercising the Licensed Rights (defined below), You accept and agree to
be bound by the terms and conditions of this Software License ("License").
To the extent this License may be interpreted as a contract, You are
granted the Licensed Rights in consideration of Your acceptance of these
terms and conditions, and the Licensor grants You such rights in
consideration of benefits the Licensor receives from making the Licensed
Material available under these terms and conditions.
Section 1 – Definitions.
-
Adapted Material means material subject to Copyright
and Similar Rights that is derived from or based upon the Licensed
Material and in which the Licensed Material is translated, altered,
arranged, transformed, or otherwise modified in a manner requiring
permission under the Copyright and Similar Rights held by the Licensor.
For purposes of this License, where the Licensed Material is a musical
work, performance, or sound recording, Adapted Material is always
produced where the Licensed Material is synched in timed relation with a
moving image.
-
Adapter’s License means the license You apply to Your
Copyright and Similar Rights in Your contributions to Adapted Material
in accordance with the terms and conditions of this License.
-
Copyright and Similar Rights means copyright and/or
similar rights closely related to copyright including, without
limitation, performance, broadcast, sound recording, and Sui Generis
Database Rights, without regard to how the rights are labeled or
categorized. For purposes of this License, the rights specified in
Section 2(b)(1)-(2) are not Copyright and Similar
Rights.
-
Effective Technological Measures means those measures
that, in the absence of proper authority, may not be circumvented under
laws fulfilling obligations under Article 11 of the WIPO Copyright
Treaty adopted on December 20, 1996, and/or similar international
agreements.
-
Exceptions and Limitations means fair use, fair
dealing, and/or any other exception or limitation to Copyright and
Similar Rights that applies to Your use of the Licensed Material.
-
Licensed Material means the artistic or literary work,
database, or other material to which the Licensor applied this License.
-
Licensed Rights means the rights granted to You subject
to the terms and conditions of this License, which are limited to all
Copyright and Similar Rights that apply to Your use of the Licensed
Material and that the Licensor has authority to license.
-
Licensor means the individual(s) or entity(ies)
granting rights under this License.
-
Share means to provide material to the public by any
means or process that requires permission under the Licensed Rights,
such as reproduction, public display, public performance, distribution,
dissemination, communication, or importation, and to make material
available to the public including in ways that members of the public may
access the material from a place and at a time individually chosen by
them.
-
Sui Generis Database Rights means rights other than
copyright resulting from Directive 96/9/EC of the European Parliament
and of the Council of 11 March 1996 on the legal protection of
databases, as amended and/or succeeded, as well as other essentially
equivalent rights anywhere in the world.
-
You means the individual or entity exercising the
Licensed Rights under this License. Your has a corresponding meaning.
-
Non-Commercial means not primarily intended for or
directed towards commercial advantage or monetary compensation. For
purposes of this License, the exchange of the Licensed Material for
other material subject to Copyright and Similar Rights by digital
file-sharing or similar means is Non-Commercial provided there is no
payment of monetary compensation in connection with the exchange.
Section 2 – Scope.
-
License grant.
-
Subject to the terms and conditions of this License, the Licensor
hereby grants You a worldwide, royalty-free, non-sublicensable,
non-exclusive, irrevocable license to exercise the Licensed Rights
in the Licensed Material to:
-
reproduce and Share the Licensed Material, in whole or in part;
and
-
produce and reproduce, but not Share, Adapted Material for
Non-Commercial purposes only.
-
Exceptions and limitations.
-
For the avoidance of doubt, where Exceptions and Limitations
apply to Your use, this License does not apply, and You do not
need to comply with its terms and conditions.
-
If you need to acquire a commercial license, please get in touch
by email at
<EMAIL_ADDRESS>with your commercial uses and personal or organizational
information, we’ll be happy to clarify things for you and work
with you to accommodate your requirements.
-
Term. The term of this License is specified in
Section 6(a).
-
Media and formats; technical modifications allowed. The
Licensor authorizes You to exercise the Licensed Rights in all media
and formats whether now known or hereafter created, and to make
technical modifications necessary to do so. The Licensor waives
and/or agrees not to assert any right or authority to forbid You
from making technical modifications necessary to exercise the
Licensed Rights, including technical modifications necessary to
circumvent Effective Technological Measures. For purposes of this
License, simply making modifications authorized by this
Section 2(a)(4) never produces Adapted
Material.
-
Downstream recipients.
-
Offer from the Licensor – Licensed Material. Every
recipient of the Licensed Material automatically receives an
offer from the Licensor to exercise the Licensed Rights under
the terms and conditions of this License.
-
No downstream restrictions. You may not offer or impose
any additional or different terms or conditions on, or apply any
Effective Technological Measures to, the Licensed Material if
doing so restricts exercise of the Licensed Rights by any
recipient of the Licensed Material.
-
No endorsement. Nothing in this License constitutes or may be
construed as permission to assert or imply that You are, or that
Your use of the Licensed Material is, connected with, or sponsored,
endorsed, or granted official status by, the Licensor or others
designated to receive attribution as provided in
Section 3(a)(1)(A)(i).
-
Other rights.
-
Moral rights, such as the right of integrity, are not licensed under
this License, nor are publicity, privacy, and/or other similar
personality rights; however, to the extent possible, the Licensor
waives and/or agrees not to assert any such rights held by the
Licensor to the limited extent necessary to allow You to exercise
the Licensed Rights, but not otherwise.
-
Patent and trademark rights are not licensed under this License.
-
To the extent possible, the Licensor waives any right to collect
royalties from You for the exercise of the Licensed Rights within
the conditions set forth in Section 2(a)(1),
whether directly or through a collecting society under any voluntary
or waivable statutory or compulsory licensing scheme. In all other
cases the Licensor expressly reserves any right to collect such
royalties, including when the Licensed Material is used other than
for Non-Commercial purposes. Please get in touch by email at
<EMAIL_ADDRESS>with
your commercial uses and personal or organizational information,
we’ll be happy to clarify things for you and work with you to
accommodate your requirements.
Section 3 - License Conditions.
Your exercise of the Licensed Rights is expressly made subject to the
following conditions.
-
Attribution.
-
If You Share the Licensed Material (including in modified form), You
must:
-
retain the following if it is supplied by the Licensor with the
Licensed Material:
-
identification of the creator(s) of the Licensed Material
and any others designated to receive attribution, in any
reasonable manner requested by the Licensor (including by
pseudonym if designated);
- a copyright notice;
- a notice that refers to this License;
-
a notice that refers to the disclaimer of warranties;
-
a URI or hyperlink to the Licensed Material to the extent
reasonably practicable;
-
indicate if You modified the Licensed Material and retain an
indication of any previous modifications; and
-
indicate the Licensed Material is licensed under this License,
and include the text of, or the URI or hyperlink to, this
License.
-
You may satisfy the conditions in
Section 3(a)(1) in any reasonable manner based
on the medium, means, and context in which You Share the Licensed
Material. For example, it may be reasonable to satisfy the
conditions by providing a URI or hyperlink to a resource that
includes the required information.
-
If requested by the Licensor, You must remove any of the information
required by Section 3(a)(1)(A) to the extent
reasonably practicable.
-
If You Share Adapted Material You produce, the Adapter’s License You
apply must not prevent recipients of the Adapted Material from
complying with this License.
Section 4 - Sui Generis Database Rights.
Where the Licensed Rights include Sui Generis Database Rights that apply
to Your use of the Licensed Material:
-
for the avoidance of doubt, Section 2(a)(1) grants
You the right to extract, reuse, reproduce, and Share all or a
substantial portion of the contents of the database;
-
if You include all or a substantial portion of the database contents in
a database in which You have Sui Generis Database Rights, then the
database in which You have Sui Generis Database Rights (but not its
individual contents) is Adapted Material;
-
You must comply with the conditions in
Section 3(a) if You Share all or a substantial
portion of the contents of the database.
For the avoidance of doubt, this Section 4 supplements
and does not replace Your obligations under this License where the
Licensed Rights include other Copyright and Similar Rights.
Section 5 - Disclaimer of Warranties and Limitation of Liability.
-
Unless otherwise separately undertaken by the licensor, to the extent
possible, the licensor offers the licensed material as-is and
as-available, and makes no representations or warranties of any kind
concerning the licensed material, whether express, implied, statutory,
or other. this includes, without limitation, warranties of title,
merchantability, fitness for a particular purpose, non-infringement,
absence of latent or other defects, accuracy, or the presence or
absence of errors, whether or not known or discoverable. where
disclaimers of warranties are not allowed in full or in part, this
disclaimer may not apply to you.
-
To the extent possible, in no event will the licensor be liable to
you on any legal theory (including, without limitation, negligence) or
otherwise for any direct, special, indirect, incidental,
consequential, punitive, exemplary, or other losses, costs, expenses,
or damages arising out of this license or use of the licensed
material, even if the licensor has been advised of the possibility of
such losses, costs, expenses, or damages. where a limitation of
liability is not allowed in full or in part, this limitation may not
apply to you.
-
The disclaimer of warranties and limitation of liability provided above
shall be interpreted in a manner that, to the extent possible, most
closely approximates an absolute disclaimer and waiver of all liability.
Section 6 - Term and Termination.
-
This License applies for the term of the Copyright and Similar Rights
licensed here. However, if You fail to comply with this License, then
Your rights under this License terminate automatically.
-
Where Your right to use the Licensed Material has terminated under
Section 6(a), it reinstates:
-
automatically as of the date the violation is cured, provided it is
cured within 30 days of Your discovery of the violation; or
- upon express reinstatement by the Licensor.
For the avoidance of doubt, this Section 6(b) does
not affect any right the Licensor may have to seek remedies for Your
violations of this License.
-
For the avoidance of doubt, the Licensor may also offer the Licensed
Material under separate terms or conditions or stop distributing the
Licensed Material at any time; however, doing so will not terminate
this License.
-
Sections 1, 5,
6, 7, and
8 survive termination of this License.
Section 7 - Other Terms and Conditions.
-
The Licensor shall not be bound by any additional or different terms or
conditions communicated by You unless expressly agreed.
-
Any arrangements, understandings, or agreements regarding the Licensed
Material not stated herein are separate from and independent of the
terms and conditions of this License.
Section 8 – Interpretation.
-
For the avoidance of doubt, this License does not, and shall not be
interpreted to, reduce, limit, restrict, or impose conditions on any use
of the Licensed Material that could lawfully be made without permission
under this License.
-
To the extent possible, if any provision of this License is deemed
unenforceable, it shall be automatically reformed to the minimum extent
necessary to make it enforceable. If the provision cannot be reformed,
it shall be severed from this License without affecting the
enforceability of the remaining terms and conditions.
-
No term or condition of this License will be waived and no failure to
comply consented to unless expressly agreed to by the Licensor.
-
Nothing in this License constitutes or may be interpreted as a
limitation upon, or waiver of, any privileges and immunities that apply
to the Licensor or You, including from the legal processes of any
jurisdiction or authority.


"""path_info.py
In many places, by default we exclude the files from this package,
thus restricting tracebacks to code written by the users.
If Friendly-traceback is used by some other program,
it might be desirable to exclude additional files.
"""
import os
import asttokens # Only use it to find site-packages
from .ft_gettext import current_lang
EXCLUDED_FILE_PATH = set()
EXCLUDED_DIR_NAMES = set()
SITE_PACKAGES = os.path.abspath(os.path.join(os.path.dirname(asttokens.__file__), ".."))
FRIENDLY = os.path.abspath(os.path.dirname(__file__))
TESTS = os.path.abspath(os.path.join(FRIENDLY, "..", "tests"))
def exclude_file_from_traceback(full_path):
"""Exclude a file from appearing in a traceback generated by
Friendly-traceback. Note that this does not apply to
the true Python traceback obtained using "debug_tb".
"""
if not os.path.isfile(full_path):
raise RuntimeError(
f"{full_path} is not a valid file path; it cannot be excluded."
)
# full_path could be a pathlib.Path instance
full_path = str(full_path)
EXCLUDED_FILE_PATH.add(full_path)
def exclude_directory_from_traceback(dir_name):
"""Exclude all files found in a given directory, including sub-directories,
from appearing in a traceback generated by Friendly.
Note that this does not apply to the true Python traceback
obtained using "debug_tb".
"""
if not os.path.isdir(dir_name):
raise RuntimeError(f"{dir_name} is not a directory; it cannot be excluded.")
# dir_name could be a pathlib.Path instance.
dir_name = str(dir_name)
# Suppose we have dir_name = "this/path" instead of "this/path/".
# Later, when we want to exclude a directory, we get the following file path:
# "this/path2/name.py". If we don't append the ending "/", we would exclude
# this file by error in is_excluded_file below.
if dir_name[-1] != os.path.sep:
dir_name += os.path.sep
EXCLUDED_DIR_NAMES.add(dir_name)
dirname = os.path.abspath(os.path.dirname(__file__))
exclude_directory_from_traceback(dirname)
def is_excluded_file(full_path):
"""Determines if the file belongs to the group that is excluded from tracebacks."""
if full_path.startswith("<frozen "):
return True
# full_path could be a pathlib.Path instance
full_path = str(full_path)
for dirs in EXCLUDED_DIR_NAMES:
if full_path.startswith(dirs):
return True
return full_path in EXCLUDED_FILE_PATH
def include_file_in_traceback(full_path):
"""Reverses the effect of ``exclude_file_from_traceback()`` so that
the file can potentially appear in later tracebacks generated
by Friendly-traceback.
A typical pattern might be something like::
import some_module
revert = not is_excluded_file(some_module.__file__)
if revert:
exclude_file_from_traceback(some_module.__file__)
try:
some_module.do_something(...)
except Exception:
friendly_traceback.explain_traceback()
finally:
if revert:
include_file_in_traceback(some_module.__file__)
"""
EXCLUDED_FILE_PATH.discard(full_path)
class PathUtil:
def __init__(self):
self.python = os.path.abspath(os.path.dirname(os.__file__))
self.home = os.path.expanduser("~")
def shorten_path(self, path, frame=None): # pragma: no cover
from .config import session
if path is None: # can happen in some rare cases
return path
orig_path = path
path = path.replace("'", "") # We might get passed a path repr
path = os.path.abspath(path)
path_lower = path.lower()
if "ipykernel" in path:
new_path = self.shorten_jupyter_kernel(orig_path, frame=frame)
if new_path:
return new_path
if "<SyntaxError>" in path: # with IDLE's latest hack
# see https://bugs.python.org/issue43476
path = "<SyntaxError>"
elif "<pyshell#" in path:
path = "<pyshell#" + path.split("<pyshell#")[1]
elif "<ipython-input-" in path:
parts = path.split("<ipython")
parts = parts[1].split("-")
path = "[" + parts[-2] + "]"
elif "<friendly-console:" in path:
split_path = path.split("<friendly-console:")[1]
if session.numbered_prompt:
path = "[" + split_path[:-1] + "]"
else:
path = "<friendly-console:" + split_path
elif path_lower.startswith(SITE_PACKAGES.lower()):
path = "LOCAL:" + path[len(SITE_PACKAGES) :]
elif path_lower.startswith(self.python.lower()):
path = "PYTHON_LIB:" + path[len(self.python) :]
elif path_lower.startswith(FRIENDLY.lower()):
path = "FRIENDLY:" + path[len(FRIENDLY) :]
elif path_lower.startswith(TESTS.lower()):
path = "TESTS:" + path[len(TESTS) :]
elif path.startswith(os.getcwd()):
path = path[len(os.getcwd()) + 1 :] # exclude separator
elif path_lower.startswith(self.home.lower()):
path = "HOME:" + path[len(self.home) :]
return path
def shorten_jupyter_kernel(self, path, frame=None):
from .config import session
from .source_cache import cache
if frame is None and not session.saved_info:
return ""
lines = cache.get_source_lines(path)
source = "".join(lines)
source = source.strip()
if not source:
return ""
if frame is None:
info = session.saved_info[-1]
frame = info["_frame"]
if "In" not in frame.f_globals:
return ""
ipython_inputs = frame.f_globals["In"]
found = 0
new_path = ""
for index, inp in enumerate(ipython_inputs):
inp = inp.strip()
if source == inp:
new_path = f"[{index}]"
found += 1
if found > 1:
new_path = new_path + "?"
return new_path
path_utils = PathUtil()
[docs]def show_paths(): # pragma: no cover
"""To avoid displaying very long file paths to the user,
Friendly-traceback tries to shorten them using some easily
recognized synonyms. This function shows the path synonyms
currently used.
"""
_ = current_lang.translate
print("HOME =", path_utils.home)
print("LOCAL =", SITE_PACKAGES)
print("PYTHON_LIB =", path_utils.python)
if FRIENDLY != SITE_PACKAGES:
print("FRIENDLY = ", FRIENDLY)
print(_("The default directory is {dirname}.").format(dirname=os.getcwd()))


accessibility
Announcing the Hear Together Project and Hearing Bill of Rights
Today we're announcing the Hear Together Project, which is on a mission to help everyone hear better, communicate effectively, and be part of the conversation.
--- layout: default title: Here One™ Wireless Smart Earbuds - Accessibility description: Our products can provide lifestyle-improving options for people who want to hear better in loud environments or engage the world around them in a new way. handle: page-accessibility ---
At Doppler Labs, we're passionate about giving people control over their hearing experience. When we design products, we always consider how we can help those who want more affordable, socially-acceptable, and accessible technology. Sign up for updates on how our products can provide lifestyle-improving options for people who want to hear better or engage the world around them in a new way.
With Real-World Sound Control, you can focus on the things you want to hear in real time. You can turn up the volume of the world, or tune into specific frequencies that you want to amplify.
Turn down the background noise that distracts you from focusing on what you want to hear.
Selectively tune into sounds you want to hear and reduce the sounds you don’t. Cancel out an airplane engine but still hear the flight attendant, reduce office chatter, amplify speech in a noisy restaurant, or find peace and quiet among a crowd.
With three high powered mics in each of your Here Buds™, our Directional Speech Enhancement feature allows you to hear where sounds are coming from. Tune into speech in front or behind you. Let Here One do the listening for you in your conversations.
We all hear the world differently. Even our left and right ears can have variations. Here One learns your unique hearing preferences to create a personal Listening Profile that optimizes real-world sound to your ears.
Doppler Labs and Global Citizen partnered to launch #HereTogether, a movement aimed at bringing hearing health to the forefront of a global conversation. As technology, accessibility, attitudes, and culture have evolved, innovation in hearing health and the perception around assistive hearing technologies have remained painfully stagnant. The world cannot ignore this any longer, and it’s time to recognize the far reach of hearing disabilities, beyond the aging population.
View CampaignToday we're announcing the Hear Together Project, which is on a mission to help everyone hear better, communicate effectively, and be part of the conversation.
The Over-The-Counter Hearing Aid Act is a historic first step toward removing barriers to hearing health care. Our Director of Advocacy and Accessibility wrote a letter in support of this bill.


Tests that applications that use WebGL 2.0 Multisampled Renderbuffers can succesfully blit the result to an XRWebGLLayer. Back


|
Welcome To C# Corner
|
|
Dear [newusername] Thank you for registering with us! Click here to Login Regards, |
|
Share your knowledge If you have knowledge, let others light their candles in it - Margaret Fuller |


ADL SCORM 2004 RELOAD Editor Introduction
Installation Instructions Prerequisites Constraints Installation Configuration Uninstalling
Revisions ADL SCORM 2004 RELOAD Editor
Running RELOAD Editor Instructions
Design Information RELOAD Editor Documentation
Additional Information Known Issues Implementation Decisions System Requirements Licenses and Copyrights