#include <lhash.h>
Definition at line 139 of file lhash.h.
| unsigned int num_alloc_nodes |
| unsigned long num_expands |
| unsigned long num_expand_reallocs |
| unsigned long num_contracts |
| unsigned long num_contract_reallocs |
| unsigned long num_hash_calls |
| unsigned long num_comp_calls |
| unsigned long num_replace |
| unsigned long num_no_delete |
| unsigned long num_retrieve |
| unsigned long num_retrieve_miss |
| unsigned long num_hash_comps |
The documentation for this struct was generated from the following file:
- s2n-master/libcrypto-build/openssl/crypto/lhash/lhash.h


As our story opens, a mysterious plague has fallen upon the quiet English village of Meryton—and the dead are returning to life! Feisty heroine Elizabeth Bennet is determined to wipe out the zombie menace, but she’s soon distracted by the arrival of the haughty and arrogant Mr. Darcy. What ensues is a delightful comedy of manners with plenty of civilized sparring between the two young lovers—and even more violent sparring on the blood-soaked battlefield. Can Elizabeth vanquish the spawn of Satan? And overcome the social prejudices of the class-conscious landed gentry?
It is a truth universally acknowledged that a zombie in possession of brains must be in want of more brains. Never was this truth more plain than during the recent attacks at Netherfield Park, in which a household of eighteen was slaughtered and consumed by a horde of the living dead.


Are you spending a lot of money on beauty and apparel products? Do you believe
"A dollar saved is a dollar earned!"?
Be part of Team Impulse and start selling Beauty
and Fashion products today! Earn discounts on your own purchases or sell the products for a great margin. Find
your path to financial success here. Contact us today to get started.
Hi, my name is Sherebanu and I am the leader of Team Impulse. My team sells beauty products, accessories and apparels from reputed international brand and earn decent commission. We also buy these products for our own use which gives us great discounts and most of the time free to us as we earn commission on the products we sell. At team impulse, we believe in helping each other succeed. As a team leader, I personally mentor and train my team members and provide them all the tools and tips needed to find success. The brand we work with provides us the commission on sales and also provides us with cash incentives when we grow our team. Join us today to be your own boss, you don't have to report to anyone, work as much as you like to, what's more, the joining fee is just $10 or even free on certain occassions. You also get free products when you place your first order!!!
Get Started!Easily register online to get started as a seller, its that easy!
Spread the word, sell as much as you can, earn great commission!
Create your team by adding people under you. Earn even more commission and cash incentives!
We are always here to support and provide you with tools and tips to succeed.


Spirit Circuits ‘Go Naked’ PCB Prototype Review
I recently used the free ‘Go Naked’ service from Spirit Circuits to produce a prototype PCB used in a sous-vide controller. Overall I was extremely satisfied with the service, although I couldn’t quite believe it was actually free to begin with, so hopefully this short review will give others an idea of what to expect.
Having previously used their PCB Snap service, I knew that Spirit Circuits produced high quality boards however given the price of these prototypes, I was worried the quality wouldn’t be great. Luckily I was proved wrong. After enquiring about the service I was given the following information about the board specifications:
- Min Track – 5 thou – 0.127 mm
- Gap – 5 thou – 0.127 mm
- Annular – 5 Thou – 0.127 mm
- Minimum Hole size – 0.3 mm
- Minimum Annulus – 5 thou – 0.127 mm
- Max size (FR4): 406 mm x 457 mm
The boards have no routing, soldermask or silkscreen so they are very much prototype boards. They’re finished in immersion silver. After sending my gerber files over, they confirmed I was in the queue and my order would be processed within 5 days. I received the board 5 days later. Each customer gets three chance to prototype a board before they need to submit something to one of the paid services.
The boards came vacuum packed in a kind of hard plastic shell with bubble wrap, so oxidation and scratching weren’t a problem. The final board looked like this:
As you can probably see in the photo, there is a small amount of oxidation, this was probably due to my fingers on the board although it did seem to get a little worse over the next few days so perhaps oxidation in air is a problem. I did find that the advertising around the edge of the board was a little bit of a pain, I’m happy for them to have it there but it would have been very helpful to v-groove the board outline just so that a prototypes dimensions could be checked.
Admittedly, this wasn’t a particularly challenging board to produce, next time I’ll include a test area to max out all their specifications but I doubt there will be any problems.
You can see a gallery of images showing the PCB here:


whiz.net.clients
Classes
HttpBomber
HttpConnection
HttpConnector
HttpDeleter
HttpFormPoster
HttpGetBomber
HttpGetter
HttpPostBomber
HttpPoster
HttpPutter
POP3Connector
POP3Message
POP3MessageParser
SMTPConnector
TcpConnection
TcpConnector


Address book
Add a contact:
First name
Last name
Phone Number
Email
Street
City
State
Zip Code
Add
Contacts:


Issue 7295:
Detaching and attaching backend thread without page-reload disables breakpoints
Steps to reproduce
- Open Firebug and enable the Script panel
- Create a breakpoint on line 10
- Disable and immediatelly enable the Script panel
- Click this button, the braekpoint must hit:


Babar Awan, PM Imran discuss PTI funding case
by https://www.facebook.com/dunyanewsISLAMABAD (Dunya News) – Pakistan Tehreek-e-Insaf (PTI) leader Babar Awan on Friday called on Prime Minister Imran Khan in Bani Gala and discussed party funding case.
During the meeting, PM Imran Khan said that efforts to derail economic stability in the country were being foiled, adding that the corrupt mafia who looted the country’s national exchequer will not be forgiven. Neither the corrupt mafia would be given relaxation nor there will be a compromise on the Roll of Law.
After meeting the prime minister, Babar Awan said that the PTI wasn’t facing allegations of foreign funding but facing false accusations of banned funding, adding that all accounts of the ruling party are audited.
Those raising the issue of banned funding should answer regarding fake accounts and money laundering, Babar Awan said.
Meanwhile, Minister for States and Frontier Regions Sahibzada Muhammad Mehboob Sultan called on Prime Minister Imran Khan in Islamabad on Friday.
During the meeting, the minister assured the prime minister that he will fully utilize best of his energies in discharging new responsibilities to promote and implement the vision of present government.
Members of National Assembly Raza Nasarullah Ghuman and Khurram Shahzad also called on the PM Imran and discussed various matters.


You have erased {{changes.removed.length}} positions.
You have assigned {{changes.assigned.length}} new positions.
You have changed {{changes.replaced.length}} existing positions.


Egyptian Mau
Egyptian Maus are a small- to medium-sized short-haired cat breed.
Along with the Bahraini Dilmun cat, they are one of the few naturally spotted breeds of domesticated cat. The spots of the Mau occur on only the tips of the hairs of its coat. It is considered to be a rare breed.
The breed conformation is described as "a balance between the compactness of a Burmese and the slim elegance of a Siamese. Its medium-length body is muscular, with the hind legs longer than the front, giving the Mau the appearance of standing on tiptoes when upright."


Send a message to a grpc server. Call to rust grpc server would be delegated to java and vice versa.


HOME
Description
Link
Homepage design : Tribute Page
Click
Homepage design : The Band
Click
Homepage design : Company
Click
Homepage design : Me
Click
Homepage design : Product Landing
Click
Simple calculator
Click
Random Quote
Click
OR SIMPLY VISIT
Github


(No, this is not a post about the venerable and excellent GNU DDD.)
Documentation Driven Development—DDD—is a term I just made up (not really; read on). I was working on some code TDD-style ("first, write a failing test"), and also thinking about my user documentation. My usual practice is to get my tests and code into good shape, push-worthy, and then update the documentation with my improvements (one hopes). Then the thought struck me: I'm doing this wrong!
We write tests first as miniature specifications for the code. But my documentation is conveying to the public my specifications. In the world of closed-source software, this makes sense. You prepare the documentation to ship to customers (internal or external); generally holding off until the code is stable so your documentation is mostly accurate. After all, with closed source, users can't see your tests or the code: the documentation is their only view into how to use your code.
With open-source software, this picture is radically changed.  So now your tests are little visible public specifications. Why documentation then?
Personally I still like solid documentation on open source projects. True, I could just browse the tests. But that isn't the best way to start with code that is new to me. I'd like to see examples, some explanation, perhaps some architecture or high-level pictures. Hence, documentation.
So, back to DDD. If I'm pushing out my tests and code to a public repository as soon as they pass (or near enough), how is my documentation ever to keep up? How do I encourage others to clone or fork my code, and contribute? I still want new users to have good documentation for getting started; I still want my tests to ultimately define my specifications. The answer is easy: First write failing documentation.
This is not at all a new idea! See Steve Richert, Zach Supalla, and many others. An early form of this idea is Knuth's Literate Programming.
What is "failing documentation"?
Firstly, just as with "failing tests", you start with documentation of how your code should behave, but which isn't actually the case. The ways to do this are the usual suspects:
Then you fix it:
Afterwards you have:
As straight-forward as DDD is to explain, some software ecosystems make it
easier to actually do than others. A standout example is Python and doctest
.
In doctest
you write your tests directly in the API
documentation as examples. This is a perfect marriage of documentation and
tests.
Swagger is an interesting case. It's generally a documentation-first approach tailored for REST API specifications. But the documentation is "live documentation"—i.e., an executable web form for exploratory testing—rather than text and code examples to read. Using DDD, you would write your REST API specification first in Swagger, then write failing tests around that before fixing the code to implement. Clever people have leveraged this.
The Handmaid's Tale is a sly reference to Chaucer's The Wife of Bath's Tale (featuring a strong protagonist balancing among bickering companions), and The Merchants's Tale sequence. Documentation has often been treated as subservient to code, an afterthought, when really it is the first thing most new users see about a system. Give it its due.


active" href="feeds.php?list=allfeeds"> all feeds
active" href="feeds.php?list=feeds"> feeds from my following
feeds
post news
{:clubList.current.cname}
请选择分类
{:cname}
200
发布


Thank you! We appreciate your feedback.
Thank you for your feedback.
As you likely know, Online Review websites like Google and Yelp are very important marketing tools for gaining new business.
Would you take the time to leave us a review on one of the review sites below?
Are you an avid Yelper? Leave us a Yelp review!
Do you have a Facebook account? Review us on our Facebook Business Page.
Helping caregivers of elderly parents find answers on senior housing, home care, elder care, caregiver support, senior financial and legal information.
Amazon.com is the largest e-commerce and online retailer company.
Official App store for the Android operating system, Google Play and Android Market.
Reviews for local service providers.
Apartment Guide is an online directory and resource site that connects apartment consumers to their ideal place to live.
ApartmentRatings.com is an online user generated database of information about apartment buildings in the United States.
A Place for Mom is a senior care referral service helping seniors, families, moms and dads find assisted living facilities.
The App Store is a digital distribution platform for Apps by Apple Inc.
The Apple Consultants Network is made up of independent, local companies offering IT services and solutions based around Apple products.
This site allows you to leave an anonymous review.
Bankrate.com offers financial tools, analysis and aggregators.
The BBB is a nonprofit organization that collects and provides free business reviews.
BedandBreakfast.com is a vacation rental website providing directory information and reviews.
Booking.com is an online accommodation booking website.
Brides.com is a online source for wedding planning, wedding ideas and advice.
BuildZoom is an online marketplace for general contractors and home improvement companies.
CanadaStays is a platform for travellers to search and book their vacation rental property.
Capterra is designed to find business software. Offering software reviews, ratings & infographics.
Carehome.co.uk - is one of the the leading online guides to care homes and assisted living.
Care.com connects families with caregivers and caring companies.
Caring.com is a leading online destination for those seeking information and support as they care for aging parents, spouses, and other loved ones.
Cars.com is one of the largest automotive classified sites which also includes dealer reviews.
Carwise.com is a online auto body shop review website.
Directory of recommended and trusted tradesmen who have been vetted and monitored and meet our standards of trading.
You can also use your Facebook login to leave a review on Citysearch!
Clutch helps buyers of professional services and software find the best companies to meet a specific need.
Consumer Affairs offers consumer news, reviews, complaints, resources and safety recalls.
1-800 Contractor is a directory of screened home improvement contractors in your area.
CPAP Plus is a distributor of CPAP products and related equipment.
Cratejoy is a subscription marketplace for consumers to periodically receive a box with new products or samples.
Customer Lobby offers repeat customer & reviews software for service businesses.
Car Dealer Reviews and Helpful Consumer Information about dealerships.
Online Directory to find and review local businesses.
Patients use Doctor.com to find, evaluate, and engage with providers best suited to address their specific needs.
DR.Oogle offers patient reviews and recommendations of dentists and dental specialists.
Ebay provides consumer-to-consumer and business-to-consumer sales services via the internet.
Edmunds.com, Inc. is an American online resource for automotive information and dealer ratings.
EiEI offers articles & ideas as well as contractor reviews for home renovation projects.
Etsy is an e-commerce website focused on handmade items and supplies.
Expedia is one of the leading online travel sites for airline tickets, hotel reservations, car rentals, cruises and vacation packages.
Foursquare is a location-based social networking website.
G2 Crowd is a platform for users to share business software reviews.
Glassdoor is a site where employees and former employees anonymously review companies and their management.
Goldbook is a Local Business Directory servicing all markets in Canada.
Goodreads is a website for readers and book recommendations to help people find and share books they love.
If you already have a Google account, you can quickly leave us a review here.
Find local businesses, read and leave reviews, view maps and get driving directions in Google Maps
GreatSchools.org helps parents compare schools based on test scores and other available data, including student growth and college readiness.
Healthgrades Inc. develops and markets quality and safety ratings of health care providers, including hospitals, nursing homes, physicians and dentists.
HealthGrove is a health news and information site with an emphasis on data-driven analysis.
HearingTracker.com is the leading consumer-review platform for hearing aids and hearing healthcare providers.
Information on all home improvement projects, with a directory of trades people and home improvement professionals across Australia.
HighYa offers consumer reviews about companies and products.
Professionals for home improvement, maintenance, and repair.
HomeStars includes homeowner reviews, photos and company profiles of home improvement companies in the U.S. and Canada
Host Advice offers web-hosting information, covering dozens of hosting companies and services worldwide.
Hotels.com compares deals and offers and displays unbiased reviews on hotels.
Home remodeling or decorating project professionals.
Indeed helps companies of all sizes hire talent and offers opportunities for job seekers to get hired.
You can also use your Facebook login to leave a review on InsiderPages
Judys Book offers local reviews, recommendations, deals, and coupons
KILP showcases businesses in your local region and helps customers by having access to reviews and information.
KSL Local offers business directories, reviews and ratings.
Kudzu makes it easy for you to choose the best service providers for your home and family.
Website featuring ratings, reviews and recommendations for attorneys and lawyers.
Lawyers.com is a source of information for the legal profession and information on lawyers available.
Leafly is a cannabis information resource website and directory.
LendingTree compares and offers home loan, mortgage refinance, home equity loan, auto loan, and other loans from their network of lenders.
LinkedIn is a business-oriented social networking service
LocalSearch provides listings and reviews of businesses and services in Australia.
Local.com provides listings and reviews of businesses and services near you.
Online Directory to find and review local businesses.
Wedding planning, dresses & gowns,rings & jewelry, find honeymoon destination ideas, and get bridal shower ideas.
Online Directory to find and review local businesses.
MyBuilder helps customers find builders and tradespeople and review feedback for work they've done.
MyMovingReviews.com offers ratings and consumer reports on local and long distance movers.
Online Directory to find and review local businesses throughout Canada.
Nextdoor is the private social network for neighborhoods and communities.
Nine9reviews.com: where models and actors share their stories.
Nursing home ratings offers reviews, surveys and abuse reports for nursing facilities in all US states.
OpenRice is a food and restaurant guide website which currently operates in Hong Kong, Macao, China, Singapore, Indonesia, the Philippines and Thailand.
OpenTable offers online real-time restaurant-reservation services and restaurant reviews.
Orbitz Worldwide, Inc. is a subsidiary of Expedia that operates a web site used to research, plan and book travel.
Pinterest is a visual discovery tool that you can use to find ideas for all your projects and interests.
Porch.com offers searches for local home professionals and reviews of their past projects to find the best one for your home.
PriceGrabber.com is a price-comparison shopping website.
Private School Review helps families learn about private schools, their benefits, and the application process.
The Home Depot Pro Referral matches customers, both online and in-store, with qualified local contractors.
ProductReview.com.au is a consumer opinion site for Australia.
Rate MDs is an online source for all things health including doctor ratings and reviews.
Consumer reviews, stories, and discussions about cosmetic treatments and procedures for face, body, skin and smile.
Realtor.com allows users to find a local real estate professional to help discover your perfect home.
Description: Review Centre is one of the UK's largest customer review websites and covers a variety of areas.
Search Magnet Local offers advanced business directory listings.
SeniorAdvisor.com features trusted reviews and advice on local senior living communities, providing the information you need to make an informed decision.
Helps seniors and their families find housing and care for themselves and their loved ones by providing objective information and reviews.
The Serchen Marketplace enables buyers to search, compare & evaluate software vendors.
Spafinder, offers consumers comprehensive resources for wellness-related products, services and insights in the marketplace.
SpareFoot makes it easy to find, compare, and book a self-storage unit.
Online Directory to find and review local businesses powered by Yellow Pages.
Switchboard.com offers White Pages search for telephone and address information.
Taucher.net ist ein Online Portal mit Berichten zu Destinationen Weltweit sowie Equipment und Zubehör.
The Knot Inc., is a media company targeted at couples who are planning their wedding.
The Best of United Kingdom is an online directory for UK businesses.
Online marketplace for local services. Matches service providers and consumers through an online directory.
Thursday Market is a Social Referral Network for Local Professionals allowing users to search for and connect with local businesses
Touch Local offers a series of local directories with business listings, organized by location.
Towingrankings.com provides a comprehensive database of towing companies in and around the USA.
Transportrankings.com serves as a repository in providing information about auto transport companies that solely operate in the United States.
Transport Reviews is directory of auto transport companies rated and reviewed by past customers.
Reviews on travel with kids, family fun, kid activities, kid-friendly hotels, resorts, and vacation packages for your next family trip.
TripAdvisor.com is a travel website providing directory information and reviews of travel-related content.
TrueLocal is an online directory of Australian businesses.
Trulia is an online residential real estate site for home buyers, sellers, renters and real estate professionals.
TrustATrader is one of the largest online trade directories in the UK
TrustedPros allows homeowners to find and hire contractors for their home improvement projects.
Trustpilot is an online review platform for ecommerce.
Twitter is an online social networking and microblogging service.
UCompareHealthCare.com helps people make medically relevant healthcare comparisons.
Urbanspoon is a restaurant information and recommendation service that operates in Australia, Canada, New Zealand, Ireland, the United Kingdom and the United States.
Viewpoints is a popular consumer review platform.
Find, rate or check up on a doctor in the United States. Search by location, specialty or ailment.
Wahanda offers comprehensive listings of spas, salons and health centres around the globe.
WalletHub enables you to search, compare and review financial products, professionals and companies.
Canadian online directory and local search site for users looking for businesses in their local communities.
Web Retailer is a free community site for businesses who sell through online marketplaces such as eBay and Amazon.
WeddingWire Inc. operates online marketplaces for the wedding industry in 14 countries.
Wedding.com lists vendors and offers tools to plan weddings.
Weedmaps is a medical marijuana patients community website.
WhatClinic.com helps patients find, compare and book the right clinics for them.
Trusted Traders gives you the ability to choose local, reliable tradesmen. Find a builder, plumber or other trader in your area.
WHTop is a website with editorials and user reviews for webhosting worldwide.
Word of Mouth is an Australian based business review site containing crowd-sourced reviews of local businesses.
Local business and service directory for the UK.
YellowBot is a local search site for finding and reviewing businesses in your community (and elsewhere).
Online version of the printed directory, listing businesses and organizations according to the goods or services offered.
Online version of the printed directory, listing businesses and organizations according to the goods or services offered.
The Zagat Survey was established as a way to collect and correlate the ratings of restaurants by diners.
Online real estate marketplace dedicated to helping homeowners, buyers, sellers, renters and real estate agents.
ZocDoc is an online medical care scheduling service, providing free information about medical practices and doctors.
Zomato is an online restaurant search and discovery service providing information on home delivery, dining-out, cafés and nightlife.
Have a great day!
The Master Escape Room


Part of my build server management responsibilities include trying to figure out why things are going wrong. I don’t know about other environments, but our builds run a lot of processes. For example, we use Robocopy to individually deploy a website’s sub-directories. When things go wrong, it’s hard to debug because these robocopy processes start and stop so quickly, I don’t have time to double-click them in Process Explorer. I usually resorted to adding lines in our deployment script to output the Robocopy command line and exit code, then running the build, waiting for it to finish, then inspecting the build logs.
Ugh.
Last week, I discovered that Process Monitor captures process start and exit events. Just the information I need in these situations.
Open Process Monitor, and click the “Filter” button.
Create a new condition that matches when the Operation
column contains the word process
(don’t forget to click the Add
button).
Click OK and Process Monitor will start to show process start and exit events. Start events will show the parent process ID and command line used to start the program. Exit events will show the exit/return code and CPU/memory statistics.
If you double-click the start event, you’ll be able to see the entire command line and all the process’s environment variables.
Thanks to the Windows Sysinternals team for the great tools.


Created by Ben Glassman / github.com/benglass
Tell us about yourself.
Writing step-by-step instructions for a computer.
We call these instructions code.
var age = prompt('How old are you?');
if (age < 21) {
alert("Perhaps you should try http://www.disney.com");
}
Computers are like a person who only understands grammatically correct sentences. This can be frustrating.
You: I took a picture of my mom and dad, a clown and a dinosaur.
 Your dad is a dinosaur.
Every language has rules for how your instructions should be constructed so that a computer can understand them.
When your instructions dont follow these rules, its a Syntax Error
Can you think of some syntax rules for HTML or CSS?
A tag is an abbreviation surrounded by less than and greater than symbols.

Hi!

<pHi!

A rule is a property followed by a colon followed by a value followed by a semi colon.
color: blue;
color = blue;
The computer can interpret and execute the code directly.
Examples: Javascript, PHP, Python, Perl and Ruby.
First, the code is compiled into an executable program. Second, this program can be executed by the computer.
Examples: C, C#, Java
Interpreted languages generally include tool called REPLs that allow you to enter a line of code and immediately see the result.
Every browser has a built in Javascript interpreters. Chrome has a built-in REPL called the console. Open it by going to Menu > Tools > Javascript Console or hitting CTRL-SHIFT-J
You can also expirement with REPLs for other languages at repl.it
Lets use javascript inside an HTML page. Make a folder called javascript. Inside it make a new html page called index.html and add the following code:
<!DOCTYPE html>

<title>Test Page</title>

This is my awesome JavaScript code.

You can mix JavaScript and HTML. The script tag tells your browser the code inside is javascript that should be run.

Just like CSS, you can place JavaScript in its own file and attach it to an HTML page.
alert('Hello World!');
console.log(5 + 2);
document.write('Hello!!!'); // Replaces all other HTML
document.body.innerHTML = 'Hello!'; // Replace html inside
document.body.innerHTML += 'Hello!'; // Add html inside
Open up index.html in your editor and try the follow exercises.
An expression is a piece of code that can be evaluated to a value. Each line in following example is an expression.
var taskName = "Grocery shopping";
5;
"bob" + " " + "hoskins"
4 * 2
Anything you type into the REPL/console which does not result in an error is a valid expression.

Programming languages categorize values into types.
A string is what programming languages call text. In javascript we surround strings with single or double quotes. There is no difference between single and double quotes.
What can we learn about strings from the examples below?
 A float is a number with decimal places. Both are written without quotes in javascript.
10
5
3.14159
9.99
-50
A boolean is a yes/no value. It is written as either true or false, without any quotes.
true
false
Variables are named containers that can hold values.
You create a variable by using the var keyword.
You decide on the name.
var taskName = "Grocery Shopping";
var taskIsComplete = false;
var taskPriority = 1;
Variable names should only contain letters, numbers and certain special characters ($, _).
Naming your variables clearly is crucial to writing code that is easy to understand. Some names are not allowed for variables because they are used by the language, such as if and else. These are called reserved words and are different for each programming language.
As the term variable suggests, you can change a variable's value after creating it by assigning a value using the equals sign. The code below creates a variable called taskName with the value "Grocery Shopping" and then changes the value to "Dog grooming".
var taskName = "Grocery Shopping";
taskName = "Dog grooming";
Once you have created a variable you can reference it in code just by using the name.
var age = 21;
var ageInMonths = age * 12; // 21 * 12
Operators are special symbols that we can use to compare, modify or combine values.
You are already familiar with the concept of operators from math. Arithmetic operators allow you to perform math on numeric values.
| Description | Example | Result | |
|---|---|---|---|
| + | Adds 2 values | 5 + 5 | 10 |
| - | Subtracts one value from another | 5 - 3 | 2 |
| * | Multiply one value by another | 4 * 2 | 8 |
| / | Divide one value by another | 16 / 4 | 4 |
| % | Divide one value by another | 5 % 4 | 1 |
The + operator behaves differently when used with string values. It will combine them together into a new string.
| Example | Result |
|---|---|
| "Margaret" + "Hamilton" | "MargaretHamilton" |
| "Margaret" + " " + "Hamilton" | "Margaret Hamilton" |
Comparison operators allow you to compare 2 values together. Using a comparison operator always results in a boolean value of true or false.
| Description | Example | Result | |
|---|---|---|---|
| === | Equals | 5 === 5 | true |
| !== | Not Equals | 5 !== 5 | false |
| > | Greater Than | 5 > 2 | true |
| ≥ | Greater Than or Equal To | 5 ≥ 5 | true |
| < | Less Than | 5 < 2 | false |
| ≤ | Less Than or Equal To | 5 ≤ 5 | true |
It is a very common programming mistake to use === instead of = or vice versa and can lead to hard to spot bugs.
Try comparing the following values. Try to guess what the result will be (true or false). What did we learn? Try your own combinations.
| Value 1 | Operator | Value 2 | Result |
|---|---|---|---|
| 5 | === | "5" | |
| "a" | !== | "A" | |
| "a" | < | "z" | |
| "b" | > | "a" | |
| "b" | > | "A" | |
| -100 | < | 30 |
Logical operators allow you to combine multiple comparisons.
The && (AND) operator will result in a value of true if both of the comparisons are true. You can use parentheses to group the comparison.
| Expression | Result |
|---|---|
| true && true | true |
| false && false | false |
| true && false | false |
| (5 > 3) && (5 > 1) | true |
| (5 > 3) && (5 > 7) | false |
| ("bob" !== "doug") && ("jenny" !== "janet") | true |
The || (OR) operator will result in a value of true if either of the comparisons are true. You can use parentheses to group the comparison.
| Expression | Result |
|---|---|
| true || true | true |
| false || false | false |
| true || false | true |
| (5 > 3) || (5 > 1) | true |
| (5 > 3) || (5 > 7) | true |
| ("bob" !== "doug") || ("jenny" !== "janet") | true |
The ! (NOT) operator will inverse the value of the expression. If the expression is true then it will now be false and vice versa. You can use parentheses to group the comparison.
| Expression | Result |
|---|---|
| !true | false |
| !false | true |
| !(5 > 3) | false |
| !(5 > 7) | true |
| !("jenny" !== "janet") | false |
Slides can be nested inside of each other.
Use the Space key to navigate through all slides.
Nested slides are useful for adding additional detail underneath a high level horizontal slide.
That's it, time to go back up.
Not a coder? Not a problem. There's a fully-featured visual editor for authoring these, try it out at http://slides.com.
Press ESC to enter the slide overview.
Hold down alt and click on any element to zoom in on it using zoom.js. Alt + click anywhere to zoom back out.
Presentations look great on touch devices, like mobile phones and tablets. Simply swipe through your slides.
Hit the next arrow...
... to step through ...
... a fragmented slide.
There's different types of fragments, like:
grow
shrink
roll-in
fade-out
current-visible
highlight-red
highlight-blue
You can select from different transitions, like:
None -
Fade -
Slide -
Convex -
Concave -
Zoom
reveal.js comes with a few themes built in:
Black (default) -
White -
League -
Sky -
Beige -
Simple
Serif -
Night -
Moon -
Solarized
Set data-background="#dddddd"
on a slide to change the background color. All CSS color formats are supported.

Different background transitions are available via the backgroundTransition option. This one's called "zoom".
Reveal.configure({ backgroundTransition: 'zoom' })
You can override background transitions per-slide.

function linkify( selector ) {
if( supports3DTransforms ) {
var nodes = document.querySelectorAll( selector );
for( var i = 0, len = nodes.length; i < len; i++ ) {
var node = nodes[i];
if( !node.className ) {
node.className += ' roll';
}
}
}
}
Code syntax highlighting courtesy of highlight.js.
| Item | Value | Quantity |
|---|---|---|
| Apples | $1 | 7 |
| Lemonade | $2 | 18 |
| Bread | $3 | 2 |
These guys come in two forms, inline:
“The nice thing about standards is that there are so many to choose from”
and block:
“For years there has been a theory that millions of monkeys typing at random on millions of typewriters would reproduce the entire works of Shakespeare. The Internet has proven this theory to be untrue.”
You can link between slides internally, like this.
There's a speaker view. It includes a timer, preview of the upcoming slide as well as your speaker notes.
Press the S key to try it out.
Set data-state="something"
on a slide and "something"
will be added as a class to the document element when the slide is open.
Additionally custom events can be triggered on a per slide basis by binding to the data-state
name.
Reveal.addEventListener( 'customevent', function() {
console.log( '"customevent" has fired' );
} );
Press B or . on your keyboard to pause the presentation. This is helpful when you're on stage and want to take distracting slides off the screen.


Graduated in May 2019
Graduated in June 2017
Python, JavaScript, R
SPSS, SAS, MySQL and Hadoop
Machine Learning, Deep Learning, Data Mining
Linear Regression, Logistic Regression, Random Forest, Convolutional Neural Network, Recurrent Neural Network
Feb 2020 to present: Data Analyst at Bayer
Aug 2019 to Feb 2020: Machine Learning Engineer at GenInvo
Jul 2018 to Dec 2018: Sentiment Analysis on speech text data at Gies College of Business
June 2018 to Aug 2018: Grader for STAT448
June 2016 to Sep 2016: data analysis for WUXI Bureau of Statistics


--- title: Research Topics in Software Engineering ref: ses2020 description: Graduate seminar on the latest research trends in the field of software engineering. semester: Fall 2020 number: 263-2100-00L lecturer: Prof. Martin Vechev, Prof. Zhendong Su ta: Dimitar I. Dimitrov, Momchil Peychev, Samuel Steffen, Jingxuan He, Petar Tsankov, Pinjia He, Manuel Rigger, Daming Zou, Shaohua Li, Sverrir Thorgeirsson, Dominik Winterer assistants: edoz: http://www.vvz.ethz.ch/Vorlesungsverzeichnis/lerneinheit.view?lerneinheitId=140243&semkez=2020W&lang=en session-time-place: Tue 14-16, Online on Zoom lecture-time-place: exercise-time-place: credits: 2 image: assets/images/orator.jpg ---
This seminar is an opportunity to become familiar with current research in software engineering and more generally with the methods and challenges of scientific research.
Each student will be asked to study some papers from the recent software engineering literature and review them. This is an exercise in critical review and analysis. Active participation is required (a presentation of a paper as well as participation in discussions).
The aim of this seminar is to introduce students to recent research results in the area of programming languages and software engineering. To accomplish that, students will study and present research papers in the area as well as participate in paper discussions. The papers will span topics in both theory and practice, including papers on program verification, program analysis, testing, programming language design, and development tools.


programming is lovely
programming is one of my best favourite in my life.
I think it's necessary to learn programming for all children because they will make future.
You can try and enjoy it at least once.
I don't think you regret.my goal is to become a famous programmer


The following document contains the results of Checkstyle 8.8 with src/conf/checkstyle.xml ruleset.
| Category | Rule | Violations | Severity |
|---|---|---|---|
| design | VisibilityModifier
|
5 | Error |
| javadoc | JavadocVariable
|
22 | Info |
| naming | StaticVariableName
|
1 | Error |
| sizes | FileLength | 1 | Error |
LineLength
|
5 | Error | |
| whitespace | OperatorWrap | 1 | Error |
| WhitespaceAround | 5 | Error |
| Severity | Category | Rule | Message | Line |
|---|---|---|---|---|
| Info | javadoc | JavadocVariable | Missing a Javadoc comment. | 29 |
| Info | javadoc | JavadocVariable | Missing a Javadoc comment. | 31 |
| Info | javadoc | JavadocVariable | Missing a Javadoc comment. | 32 |
| Info | javadoc | JavadocVariable | Missing a Javadoc comment. | 33 |
| Info | javadoc | JavadocVariable | Missing a Javadoc comment. | 34 |
| Info | javadoc | JavadocVariable | Missing a Javadoc comment. | 35 |
| Info | javadoc | JavadocVariable | Missing a Javadoc comment. | 36 |
| Info | javadoc | JavadocVariable | Missing a Javadoc comment. | 37 |
| Info | javadoc | JavadocVariable | Missing a Javadoc comment. | 39 |
| Info | javadoc | JavadocVariable | Missing a Javadoc comment. | 42 |
| Info | javadoc | JavadocVariable | Missing a Javadoc comment. | 44 |
| Info | javadoc | JavadocVariable | Missing a Javadoc comment. | 49 |
| Info | javadoc | JavadocVariable | Missing a Javadoc comment. | 50 |
| Info | javadoc | JavadocVariable | Missing a Javadoc comment. | 51 |
| Info | javadoc | JavadocVariable | Missing a Javadoc comment. | 52 |
| Info | javadoc | JavadocVariable | Missing a Javadoc comment. | 53 |
| Info | javadoc | JavadocVariable | Missing a Javadoc comment. | 55 |
| Info | javadoc | JavadocVariable | Missing a Javadoc comment. | 60 |
| Info | javadoc | JavadocVariable | Missing a Javadoc comment. | 61 |
| Info | javadoc | JavadocVariable | Missing a Javadoc comment. | 62 |
| Info | javadoc | JavadocVariable | Missing a Javadoc comment. | 64 |
| Info | javadoc | JavadocVariable | Missing a Javadoc comment. | 65 |
| Error | sizes | LineLength | Line is longer than 120 characters (found 139). | 87 |
| Severity | Category | Rule | Message | Line |
|---|---|---|---|---|
| Error | design | VisibilityModifier | Variable 'matched' must be private and have accessor methods. | 101 |
| Severity | Category | Rule | Message | Line |
|---|---|---|---|---|
| Error | sizes | FileLength | File length is 2,742 lines (max allowed is 2,000). | 1 |
| Error | design | VisibilityModifier | Variable 'parser' must be private and have accessor methods. | 676 |
| Error | design | VisibilityModifier | Variable 'SIMPLIFY' must be private and have accessor methods. | 1393 |
| Error | sizes | LineLength | Line is longer than 120 characters (found 128). | 1407 |
| Error | sizes | LineLength | Line is longer than 120 characters (found 128). | 1411 |
| Severity | Category | Rule | Message | Line |
|---|---|---|---|---|
| Error | design | VisibilityModifier | Variable 'events' must be private and have accessor methods. | 18 |
| Severity | Category | Rule | Message | Line |
|---|---|---|---|---|
| Error | whitespace | WhitespaceAround | '=' is not preceded with whitespace. | 17 |
| Error | whitespace | WhitespaceAround | '=' is not followed by whitespace. | 17 |
| Error | naming | StaticVariableName | Name 'log' must match pattern '^[A-Z][_A-Z0-9]*$'. | 20 |
| Error | whitespace | WhitespaceAround | '+' is not preceded with whitespace. | 29 |
| Error | whitespace | OperatorWrap | '+' should be on a new line. | 29 |
| Error | sizes | LineLength | Line is longer than 120 characters (found 130). | 30 |
| Error | whitespace | WhitespaceAround | '+' is not preceded with whitespace. | 30 |
| Error | whitespace | WhitespaceAround | '+' is not preceded with whitespace. | 30 |
| Severity | Category | Rule | Message | Line |
|---|---|---|---|---|
| Error | sizes | LineLength | Line is longer than 120 characters (found 123). | 732 |
| Severity | Category | Rule | Message | Line |
|---|---|---|---|---|
| Error | design | VisibilityModifier | Variable 'traversed' must be private and have accessor methods. | 25 |


About Projects Research Resume (pdf)
Posted on March 30, 2018 by abhoi
Let’s explore PETSc library and TAO solvers.
This page will be updated soon!


Watson Content Hub Locale Search API Sample
Example Queries
All content items (defaults to 10 rows)
All content items, 5 rows
All content items, 5 rows starting at row 5
All content items, sorted by name
All content items, sorted by lastModified
All content items, only name, id, locale and status fields
All content items, only name, locale and document fields, with document parsed as JSON
Content items with status "draft"
Content items search for "city" in the name field
Content items with content type "Article"
Content items with category leaf value "travel"
Content items or assets with tag "beach" or "summer"
Search Parameters
?filter=accept-language&
Search
Change your browser's locale to retrieve results in other languages.
×
JSON


The following is a list of compile dependencies for this project. These dependencies are required to compile and run the application:
| GroupId | ArtifactId | Version | Type |
|---|---|---|---|
| org.apache.camel | camel-scala | 2.2.0 | jar |
| org.apache.camel | camel-spring | 2.2.0 | jar |
| org.fusesource.scalate | scalate-core | 1.1 | jar |
The following is a list of test dependencies for this project. These dependencies are only required to compile and run unit tests for the application:
| GroupId | ArtifactId | Version | Type |
|---|---|---|---|
| ch.qos.logback | logback-classic | 0.9.18 | jar |
| junit | junit | 4.7 | jar |
| org.apache.camel | camel-test | 2.2.0 | jar |
| org.scalatest | scalatest | 1.0.1-for-scala-2.8.0.Beta1-NQRFPT | jar |
The following is a list of transitive dependencies for this project. Transitive dependencies are the dependencies of the project dependencies.
The following is a list of compile dependencies for this project. These dependencies are required to compile and run the application:
| GroupId | ArtifactId | Version | Type |
|---|---|---|---|
| aopalliance | aopalliance | 1.0 | jar |
| commons-logging | commons-logging | 1.1.1 | jar |
| commons-logging | commons-logging-api | 1.1 | jar |
| log4j | log4j | 1.2.14 | jar |
| org.apache.camel | camel-core | 2.2.0 | jar |
| org.fusesource.commonman | commons-management | 1.0 | jar |
| org.scala-lang | scala-compiler | 2.8.0.Beta1 | jar |
| org.scala-lang | scala-library | 2.8.0.Beta1 | jar |
| org.slf4j | slf4j-api | 1.5.11 | jar |
| org.slf4j | slf4j-log4j12 | 1.5.10 | jar |
| org.springframework | spring-aop | 2.5.6 | jar |
| org.springframework | spring-beans | 2.5.6 | jar |
| org.springframework | spring-context | 2.5.6 | jar |
| org.springframework | spring-core | 2.5.6 | jar |
| org.springframework | spring-tx | 2.5.6 | jar |
The following is a list of test dependencies for this project. These dependencies are only required to compile and run unit tests for the application:
| GroupId | ArtifactId | Version | Type |
|---|---|---|---|
| ch.qos.logback | logback-core | 0.9.18 | jar |
Public Domain: AOP alliance
Apache License, Version 2.0: Commons Management
Eclipse Public License - v 1.0: Logback Classic Module, Logback Core Module
Common Public License Version 1.0: JUnit
GNU Lesser General Public License: Logback Classic Module, Logback Core Module
MIT License: SLF4J API Module, SLF4J LOG4J-12 Binding
The Apache Software License, Version 2.0: Camel :: Core, Camel :: Scala, Camel :: Spring, Camel :: Test, Commons Logging, Log4j, Logging, Scalate :: Camel, Scalate :: Core, Spring Framework: AOP, Spring Framework: Beans, Spring Framework: Context, Spring Framework: Core, Spring Framework: Transaction
the Apache License, ASL Version 2.0: ScalaTest
BSD-like: Unnamed - org.scala-lang:scala-compiler:jar:2.8.0.Beta1, Unnamed - org.scala-lang:scala-library:jar:2.8.0.Beta1
| Filename | Size | Entries | Classes | Packages | JDK Rev | Debug |
|---|---|---|---|---|---|---|
| aopalliance-1.0.jar | 4.36 kB | 15 | 9 | 2 | 1.3 | debug |
| logback-classic-0.9.18.jar | 166.67 kB | 153 | 123 | 18 | 1.5 | debug |
| logback-core-0.9.18.jar | 252.35 kB | 240 | 207 | 23 | 1.5 | debug |
| commons-logging-1.1.1.jar | 59.26 kB | 42 | 28 | 2 | 1.1 | debug |
| commons-logging-api-1.1.jar | 43.55 kB | 29 | 20 | 2 | 1.1 | debug |
| junit-4.7.jar | 226.91 kB | 261 | 225 | 29 | 1.5 | debug |
| log4j-1.2.14.jar | 358.83 kB | 288 | 256 | 19 | 1.1 | debug |
| camel-core-2.2.0.jar | 1.22 MB | 1,037 | 940 | 50 | 1.5 | debug |
| camel-scala-2.2.0.jar | 193.19 kB | 170 | 145 | 5 | 1.5 | debug |
| camel-spring-2.2.0.jar | 117.58 kB | 89 | 49 | 10 | 1.5 | debug |
| camel-test-2.2.0.jar | 44.07 kB | 33 | 16 | 2 | 1.5 | debug |
| commons-management-1.0.jar | 15.64 kB | 22 | 8 | 3 | 1.5 | debug |
| scalate-core-1.1.jar | 1.00 MB | 894 | 871 | 12 | 1.5 | debug |
| scala-compiler-2.8.0.Beta1.jar | 7.67 MB | 5,366 | 5,298 | 37 | 1.5 | debug |
| scala-library-2.8.0.Beta1.jar | 4.59 MB | 3,382 | 3,327 | 51 | 1.5 | debug |
| scalatest-1.0.1-for-scala-2.8.0.Beta1-NQRFPT.jar | 1.64 MB | 1,194 | 1,156 | 11 | 1.5 | debug |
| slf4j-api-1.5.11.jar | 23.12 kB | 32 | 21 | 3 | 1.3 | debug |
| slf4j-log4j12-1.5.10.jar | 9.46 kB | 16 | 6 | 1 | 1.3 | debug |
| spring-aop-2.5.6.jar | 318.30 kB | 272 | 248 | 15 | 1.5 | debug |
| spring-beans-2.5.6.jar | 476.84 kB | 327 | 297 | 15 | 1.5 | debug |
| spring-context-2.5.6.jar | 465.76 kB | 407 | 344 | 48 | 1.5 | debug |
| spring-core-2.5.6.jar | 278.80 kB | 214 | 212 | 19 | 1.5 | debug |
| spring-tx-2.5.6.jar | 225.75 kB | 216 | 185 | 20 | 1.5 | debug |
| Total | Size | Entries | Classes | Packages | JDK Rev | Debug |
| 23 | 19.33 MB | 14,699 | 13,991 | 397 | 1.5 | 23 |
| compile: 18 | compile: 17.01 MB | compile: 12,818 | compile: 12,264 | compile: 314 | - | compile: 18 |
| test: 5 | test: 2.31 MB | test: 1,881 | test: 1,727 | test: 83 | - | test: 5 |
| Repo ID | URL | Release | Snapshot |
|---|---|---|---|
| apache.snapshots | http://repository.apache.org/snapshots | - | Yes |
| java.net | http://download.java.net/maven/1 | Yes | Yes |
| central | http://repo1.maven.org/maven2 | Yes | - |
Repository locations for each of the Dependencies.


BLACK BEAUTY A film review by Steve Rhodes Copyright 1995 Steve Rhodes
RATING (0 TO ****): *** 1/2
BLACK BEAUTY is not a story *about* a horse, it is the autobiography as told *by* the horse. This latest of a long string of BLACK BEAUTY adaptations is simply wonderful from start to finish. In so many ways, the writer (Caroline Thompson and Anna Sewell) and the director (Caroline Thompson) made just the right choices in how to make this classic book come to life on the screen.
BLACK BEAUTY is the story of a (boy) horse from its birth (a great scene) to its puberty (along with the classic girl rejection scene) and then through his adult life.  Also, as we humans have found, there are friends who mean a lot to us. This is a movie that does not pull the punches. Bad things look like they might happen on several occasions and sometimes they really do. This, of course, makes love and triumph even more appreciated.
Too often the producers of kids movie take no risks. The homogenized and safe movie they end up with, offends no one, but bores half of the audience. Producers Peter MacGregor-Scott and Robert Shapiro were willing to take risks and they made the movie that truly comes alive with all of the spices, joys, anguish, fears, and triumphs of real life.
Besides the perfect scripting and directing, there are many other marvelous aspects to the show. Alex Thomson's cinematography showed the setting of the English countryside in the Fall, and it never looked more lovely with its golden radiance. The city was made to look dark and foreboding in contrast. Clearly, the countryside was heaven and the city, hell, BUT here we find some bad people in heaven and some good people in hell.
The many actors in the show (Peter Cook, David Thewlis, John McEnery, Eleanor Bron, Sean Bean, etc.) were all top-notch. The star nevertheless was Black Beauty. I believe that even people who don't care much for horses would love this show - it is that good.
The key ingredient for success in the show, was having a strong narration throughout by Black Beauty himself. We know Black Beauty's every thought. This was not done in some trite fashion as in all those movies where the babies talk to us. Instead, we have a Scottish actor (Alan Cumming) delivering a beautiful and melodious rendition of the horse's inner thoughts.
The show makes you feel as if you had been reincarnated and were a horse in 19th century England. This it should be point out was not an easy time to be a horse because people used them for everything from pulling a taxicab to pulling heavy coaches to being the semi (lorry to you British readers) of their time to just generally being worked until you dropped if you got a cruel owner.
The movie runs a quite short 1:29 since this time include some long credits. I could easily have gone for longer, but then the kids would probably have gotten antsy. The movie is correctly rated G. My 5 year old boy loved it even though he got scared in parts. He rates it as his absolute favorite movie - even above his second favorites, The Lion King and Lassie. Personally I think BLACK BEAUTY is by far the best kids' show I have seen since my son was born and I started thinking about movies for youngsters. I rate it *** 1/2 and recommend it to all. I came very close to giving it all 4 stars.
**** = One of the top few films of this or any year. A must see film. *** = Excellent show. Look for it. ** = Average movie. Kind of enjoyable. * = Poor show.  Totally unbearable.
REVIEWED WRITTEN ON: September 4, 1994
Opinions expressed are mine and not meant to reflect my employer's.
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


Login
ftp domain.com
ftp <IP_ADDRESS>
ftp<EMAIL_ADDRESS>Anonymous login
Name: anonymous
Password:
Reading files
get uploaded.txt /dev/tty
When transferring binaries switch to binary mode
binary
Directory traversal
ftp> ls ../../../


1. Breathe naturally. Meditation does involve focusing on the breath and using it as an anchor for the mind, but try not to think about the breath or alter it in any way. Simply allow things to unfold naturally, noticing the rising and falling sensation it creates in the body.
2. Get comfortable with discomfort. People who are new to meditation — and even people who have been doing it for years — often experience negative emotions like anxiety, restlessness, and irritation while practicing. Rather than trying to resist these emotions, give them your full attention and allow them to come and go. Over time the mind learns to recognize these emotions but gets used to not getting caught up in negative patterns of thought — a skill that can be enormously beneficial not only during meditation but also in daily life.
3. Take mindfulness with you. Before you finish meditating and go about your day, form a clear idea of what you are going to do next — maybe you’ll shower, or make breakfast, or drive the kids to school. Whatever the activity, try to carry the mindfulness you cultivated during your meditation with you into the next task and throughout the rest of your day.


JavaScript API
Table of contents
- Global
- console
- rpc
- Frida
- Process
- Module
- Memory
- MemoryAccessMonitor
- Thread
- NativePointer
- NativeFunction
- NativeCallback
- Socket
- File
- Interceptor
- Stalker
- DebugSymbol
- Instruction
- ObjC
- Dalvik
- WeakRef
Global
-
ptr(s)
: short-hand fornew NativePointer(s)
-
NULL
: short-hand forptr("0")
-
recv([type, ]callback)
: requestcallback
to be called on the next message received from your Frida-based application. Optionallytype
may be specified to only receive a message where thetype
field is set totype
.This will only give you one message, so you need to call
recv()
again to receive the next one. -
send(message[, data])
: send the JavaScript objectmessage
to your Frida-based application (it must be serializable to JSON). If you also have some raw binary data that you’d like to send along with it, e.g. you dumped some memory usingMemory#readByteArray
, then you may pass this through the optionaldata
argument. This requires it to either be an ArrayBuffer or an array of integers between 0 and 255.
Performance considerations
While send() is asynchronous, the total overhead of sending a single message is not optimized for high frequencies, so that means Frida leaves it up to you to batch multiple values into a single send()-call, based on whether low delay or high throughput is desired.
-
setTimeout(fn, delay)
: callfn
afterdelay
milliseconds. Returns an id that can be passed toclearTimeout
to cancel it. -
clearTimeout(id)
: cancel id returned by call tosetTimeout
-
setInterval(fn, delay)
: callfn
everydelay
milliseconds. Returns an id that can be passed toclearInterval
to cancel it. -
clearInterval(id)
: cancel id returned by call tosetInterval
console
console.log(line)
,console.warn(line)
,console.error(line)
: writeline
to the console of your Frida-based application. The exact behavior depends on where frida-core is integrated. For example, this output goes to stdout or stderr when using Frida through frida-python, qDebug when using frida-qml, etc.
rpc
rpc.exports
: empty object that you can either replace or insert into to expose an RPC-style API to your application. The key specifies the method name and the value is your exported function. This function may either return a plain value for returning that to the caller immediately, or a Promise for returning asynchronously.
For example:
From an application using the Node.js bindings this API would be consumed like this:
The Python version would be very similar:
Frida
Frida.version
: property containing the current Frida version
Process
-
Process.arch
: property containing the stringia32
,x64
,arm
orarm64
-
Process.platform
: property containing the stringwindows
,darwin
,linux
orqnx
-
Process.pageSize
: property containing the size of a virtual memory page (in bytes) as a JavaScript number. This is used to make your scripts more portable. -
Process.pointerSize
: property containing the size of a pointer (in bytes) as a JavaScript number. This is used to make your scripts more portable. -
Process.isDebuggerAttached()
: returns a boolean indicating whether a debugger is currently attached -
Process.getCurrentThreadId()
: get this thread’s OS-specific id as a JavaScript number -
Process.enumerateThreads(callbacks)
: enumerate all threads, wherecallbacks
is an object specifying:onMatch: function (thread)
: called withthread
object containing:id
: OS-specific idstate
: string specifying eitherrunning
,stopped
,waiting
,uninterruptible
orhalted
context
: object with the keyspc
andsp
, which are NativePointer objects specifying EIP/RIP/PC and ESP/RSP/SP, respectively, for ia32/x64/arm. Other processor-specific keys are also available, e.g.eax
,rax
,r0
,x0
, etc.
This function may return the string
stop
to cancel the enumeration early.onComplete: function ()
: called when all threads have been enumerated
-
Process.enumerateThreadsSync()
: synchronous version ofenumerateThreads()
that returns the threads in an array. -
Process.findModuleByAddress(address)
,Process.getModuleByAddress(address)
,Process.findModuleByName(name)
,Process.getModuleByName(name)
: return an object with details about the module whose address or name matches the one specified. In the event that no such module could be found, the find-prefixed functions return null whilst the get-prefixed functions throw an exception. SeeProcess.enumerateModules()
for details about which fields are included. -
Process.enumerateModules(callbacks)
: enumerate modules loaded right now, wherecallbacks
is an object specifying:onMatch: function (module)
: called withmodule
object containing:name
: canonical module name as a stringbase
: base address as aNativePointer
size
: size in bytespath
: full filesystem path as a string
This function may return the string
stop
to cancel the enumeration early.onComplete: function ()
: called when all modules have been enumerated
-
Process.enumerateModulesSync()
: synchronous version ofenumerateModules()
that returns the modules in an array. -
Process.findRangeByAddress(address)
,getRangeByAddress(address)
: return an object with details about the range containing address. In the event that no such range could be found, findRangeByAddress() returns null whilst getRangeByAddress() throws an exception. SeeProcess.enumerateRanges()
for details about which fields are included. -
Process.enumerateRanges(protection|specifier, callbacks)
: enumerate memory ranges satisfyingprotection
given as a string of the form:rwx
, whererw-
means “must be at least readable and writable”. Alternatively you may provide aspecifier
object with aprotection
key whose value is as aforementioned, and acoalesce
key set totrue
if you’d like neighboring ranges with the same protection to be coalesced (the default isfalse
; i.e. keeping the ranges separate).callbacks
is an object specifying:onMatch: function (range)
: called withrange
object containing:base
: base address as aNativePointer
size
: size in bytesprotection
: protection string (see above)-
file
: (when available) file mapping details as an object containing:path
: full filesystem path as a stringoffset
: offset in bytes
This function may return the string
stop
to cancel the enumeration early.onComplete: function ()
: called when all memory ranges have been enumerated
-
Process.enumerateRangesSync(protection|specifier)
: synchronous version ofenumerateRanges()
that returns the ranges in an array. -
Process.enumerateMallocRanges(callbacks)
: just likeenumerateRanges()
, but for individual memory allocations known to the system heap. -
Process.enumerateMallocRangesSync(protection)
: synchronous version ofenumerateMallocRanges()
that returns the ranges in an array.
Module
-
Module.enumerateImports(name, callbacks)
: enumerate imports of module with thename
as seen inProcess#enumerateModules
.callbacks
is an object specifying:onMatch: function (imp)
: called withimp
object containing:type
: string specifying eitherfunction
orvariable
name
: import name as a stringmodule
: module name as a stringaddress
: absolute address as aNativePointer
Only the
name
field is guaranteed to be present for all imports. The platform-specific backend will do its best to resolve the other fields even beyond what the native metadata provides, but there is no guarantee that it will succeed. This function may return the stringstop
to cancel the enumeration early.onComplete: function ()
: called when all imports have been enumerated
-
Module.enumerateImportsSync(name)
: synchronous version ofenumerateImports()
that returns the imports in an array. -
Module.enumerateExports(name, callbacks)
: enumerate exports of module with thename
as seen inProcess#enumerateModules
.callbacks
is an object specifying:onMatch: function (exp)
: called withexp
object containing:type
: string specifying eitherfunction
orvariable
name
: export name as a stringaddress
: absolute address as aNativePointer
This function may return the string
stop
to cancel the enumeration early.onComplete: function ()
: called when all exports have been enumerated
-
Module.enumerateExportsSync(name)
: synchronous version ofenumerateExports()
that returns the exports in an array. -
Module.enumerateRanges(name, protection, callbacks)
: just likeProcess#enumerateRanges
, except it’s scoped to the specified modulename
. -
Module.enumerateRangesSync(name, protection)
: synchronous version ofenumerateRanges()
that returns the ranges in an array. -
Module.findBaseAddress(name)
: returns the base address of thename
module, ornull
if the module isn’t loaded -
Module.findExportByName(module|null, exp)
: returns the absolute address of the export namedexp
inmodule
. If the module isn’t known you may passnull
instead of its name, but this can be a costly search and should be avoided.
Memory
-
Memory.scan(address, size, pattern, callbacks)
: scan memory for occurences ofpattern
in the memory range given byaddress
andsize
.-
pattern
must be of the form “13 37 ?? ff” to match 0x13 followed by 0x37 followed by any byte followed by 0xff -
callbacks
is an object with:-
onMatch: function (address, size)
: called withaddress
containing the address of the occurence as aNativePointer
andsize
specifying the size as a JavaScript number.This function may return the string
stop
to cancel the memory scanning early. -
onError: function (reason)
: called withreason
when there was a memory access error while scanning -
onComplete: function ()
: called when the memory range has been fully scanned
-
-
-
Memory.alloc(size)
: allocatesize
bytes of memory on the heap. The returned object is aNativePointer
and the heap memory will be released when all JavaScript handles to it are gone. This means you need to keep a reference to it while the pointer is being used by code outside the JavaScript runtime. -
Memory.copy(dst, src, n)
: just like memcpy. -
Memory.dup(address, size)
: short-hand forMemory.alloc()
followed byMemory.copy()
. -
Memory.protect(address, size, protection)
: update protection on a region of memory, whereprotection
is a string of the same format asProcess.enumerateRanges()
.For example:
-
Memory.readPointer(address)
: read a pointer fromaddress
and return it as aNativePointer
.A JavaScript exception will be thrown if
address
isn’t readable. -
Memory.writePointer(address, ptr)
: writeptr
toaddress
.A JavaScript exception will be thrown if
address
isn’t writable. -
Memory.readS8(address)
,Memory.readU8(address)
,Memory.readS16(address)
,Memory.readU16(address)
,Memory.readS32(address)
,Memory.readU32(address)
,Memory.readS64(address)
,Memory.readU64(address)
,Memory.readShort(address)
,Memory.readUShort(address)
,Memory.readInt(address)
,Memory.readUInt(address)
,Memory.readLong(address)
,Memory.readULong(address)
,Memory.readFloat(address)
,Memory.readDouble(address)
: read a signed or unsigned 8/16/32/64-bit/etc. or float/double value fromaddress
and return it as a JavaScript number.A JavaScript exception will be thrown if
address
isn’t readable. -
Memory.writeS8(address, value)
,Memory.writeU8(address, value)
,Memory.writeS16(address, value)
,Memory.writeU16(address, value)
,Memory.writeS32(address, value)
,Memory.writeU32(address, value)
,Memory.writeS64(address, value)
,Memory.writeU64(address, value)
,Memory.writeShort(address, value)
,Memory.writeUShort(address, value)
,Memory.writeInt(address, value)
,Memory.writeUInt(address, value)
,Memory.writeLong(address, value)
,Memory.writeULong(address, value)
,Memory.writeFloat(address, value)
,Memory.writeDouble(address, value)
: write the JavaScript numbervalue
to the signed or unsigned 8/16/32/64-bit/etc. or float/double value ataddress
.A JavaScript exception will be thrown if
address
isn’t writable. -
Memory.readByteArray(address, length)
: readlength
bytes fromaddress
and return it as an ArrayBuffer. This buffer may be efficiently transferred to your Frida-based application by passing it as the second argument tosend()
.A JavaScript exception will be thrown if any of the
length
bytes read fromaddress
isn’t readable. -
Memory.writeByteArray(address, bytes)
: writebytes
toaddress
, where the former is either an ArrayBuffer, typically returned fromMemory.readByteArray()
, or an array of integers between 0 and 255. For example:[ 0x13, 0x37, 0x42 ]
.A JavaScript exception will be thrown if any of the bytes written to
address
isn’t writable. -
Memory.readCString(address[, size = -1])
,Memory.readUtf8String(address[, size = -1])
,Memory.readUtf16String(address[, size = -1])
,Memory.readAnsiString(address[, size = -1])
: read the bytes ataddress
as an ASCII, UTF-8, UTF-16 or ANSI string. Supply the optionalsize
argument if you know the size of the string in bytes, or omit it or specify -1 if the string is NUL-terminated.A JavaScript exception will be thrown if any of the
size
bytes read fromaddress
isn’t readable.Note that
readAnsiString()
is only available (and relevant) on Windows. -
Memory.writeUtf8String(address, str)
,Memory.writeUtf16String(address, str)
,Memory.writeAnsiString(address, str)
: encode and write the JavaScript string toaddress
(with NUL-terminator).A JavaScript exception will be thrown if any of the bytes written to
address
isn’t writable.Note that
writeAnsiString()
is only available (and relevant) on Windows. -
Memory.allocUtf8String(str)
,Memory.allocUtf16String(str)
,Memory.allocAnsiString(str)
: allocate, encode and write outstr
as a UTF-8/UTF-16/ANSI string on the heap. The returned object is aNativePointer
. SeeMemory#alloc
for details about its lifetime.
MemoryAccessMonitor
MemoryAccessMonitor is only available on Windows for now
We would love to support this on the other platforms too, so if you find this useful and would like to help out, please get in touch.
-
MemoryAccessMonitor.enable(ranges, callbacks)
: monitor one or more memory ranges for access, and notify on the first access of each contained memory page.ranges
is either a single range object or an array of such objects, each of which contains:base
: base address as aNativePointer
size
: size in bytes
callbacks
is an object specifying:onAccess: function (details)
: called synchronously withdetails
object containing:operation
: the kind of operation that triggered the access, as a string specifying eitherread
,write
orexecute
from
: address of instruction performing the access as aNativePointer
address
: address being accessed as aNativePointer
rangeIndex
: index of the accessed range in the ranges provided toMemoryAccessMonitor.enable()
pageIndex
: index of the accessed memory page inside the specified rangepagesCompleted
: overall number of pages which have been accessed so far (and are no longer being monitored)pagesTotal
: overall number of pages that were initially monitored
-
MemoryAccessMonitor.disable()
: stop monitoring the remaining memory ranges passed toMemoryAccessMonitor.enable()
Thread
-
Thread.backtrace([context, backtracer])
: generate a backtrace for the current thread, returned as an array ofNativePointer
objects.If you call this from Interceptor’s
onEnter
oronLeave
callbacks you should providethis.context
for the optionalcontext
argument, as it will give you a more accurate backtrace. Omittingcontext
means the backtrace will be generated from the current stack location, which may not give you a very good backtrace due to V8’s stack frames. The optionalbacktracer
argument specifies the kind of backtracer to use, and must be eitherBacktracer.FUZZY
orBacktracer.ACCURATE
, where the latter is the default if not specified. The accurate kind of backtracers rely on debugger-friendly binaries or presence of debug information to do a good job, whereas the fuzzy backtracers perform forensics on the stack in order to guess the return addresses, which means you will get false positives, but it will work on any binary.
Thread.sleep(delay)
: suspend execution of the current thread fordelay
seconds specified as a JavaScript number. For example 0.05 to sleep for 50 ms.
NativePointer
-
new NativePointer(s)
: create a new NativePointer from the strings
containing a memory address in either decimal, or hexadecimal if prefixed with “0x”. You may use theptr(s)
short-hand for brevity. -
isNull()
: returns a boolean allowing you to conveniently check if a pointer is NULL -
add(rhs)
,sub(rhs)
,and(rhs)
,or(rhs)
,xor(rhs)
: make a new NativePointer with this NativePointer plus/minus/and/or/xorrhs
, which may either be a JavaScript number or another NativePointer -
equals(rhs)
: returns a boolean indicating whetherrhs
is equal to this one; i.e. it has the same pointer value -
compare(rhs)
: returns an integer comparison result just like String#localeCompare() -
toInt32()
: cast this NativePointer to a signed 32-bit integer -
toString([radix = 16])
: convert to a string of optional radix (defaults to 16) -
toMatchPattern()
: returns a string containing aMemory.scan()
-compatible match pattern for this pointer’s raw value
NativeFunction
-
new NativeFunction(address, returnType, argTypes[, abi])
: create a new NativeFunction to call the function ataddress
(specified with aNativePointer
), wherereturnType
specifies the return type, and theargTypes
array specifies the argument types. You may optionally also specifyabi
if not system default. For variadic functions, add a'...'
entry toargTypes
between the fixed arguments and the variadic ones. As for structs passed by value, instead of a string provide an array containing the struct’s field types following each other. You may nest these as deep as desired for representing structs inside structs. Note that the returned object is also aNativePointer
, and can thus be passed toInterceptor#attach
.Supported types:
- void
- pointer
- int
- uint
- long
- ulong
- char
- uchar
- float
- double
- int8
- uint8
- int16
- uint16
- int32
- uint32
- int64
- uint64
Supported ABIs:
-
default
- Windows 32-bit:
- sysv
- stdcall
- thiscall
- fastcall
- mscdecl
- Windows 64-bit:
- win64
- UNIX x86:
- sysv
- unix64
- UNIX ARM:
- sysv
- vfp
NativeCallback
new NativeCallback(func, returnType, argTypes[, abi])
: create a new NativeCallback implemented by the JavaScript functionfunc
, wherereturnType
specifies the return type, and theargTypes
array specifies the argument types. You may also specify the abi if not system default. SeeNativeFunction
for details about supported types and abis. Note that the returned object is also aNativePointer
, and can thus be passed toInterceptor#replace
.
Socket
-
Socket.type(handle)
: inspect the OS sockethandle
and return its type as a string which is eithertcp
,udp
,tcp6
,udp6
,unix:stream
,unix:dgram
, ornull
if invalid or unknown. -
Socket.localAddress(handle)
,Socket.peerAddress(handle)
: inspect the OS sockethandle
and return its local or peer address, ornull
if invalid or unknown.The object returned has the fields:
ip
: (IP sockets) IP address as a string.port
: (IP sockets) Port number as a JavaScript number.path
: (UNIX sockets) UNIX path as a string.
File
-
new File(filePath, mode)
: open or create the file atfilePath
with themode
string specifying how it should be opened. For example"wb"
to open the file for writing in binary mode (this is the same format asfopen()
from the C standard library). -
write(data)
: synchronously writedata
to the file, wheredata
is either a string or a buffer as returned byMemory#readByteArray
-
flush()
: flush any buffered data to the underlying file -
close()
: close the file. You should call this function when you’re done with the file.
Interceptor
-
Interceptor.attach(target, callbacks)
: intercept calls to function attarget
. This is aNativePointer
specifying the address of the function you would like to intercept calls to. Note that on 32-bit ARM this address must have its least significant bit set to 0 for ARM functions, and 1 for Thumb functions. Frida takes care of this detail for you if you get the address from a Frida API (for exampleModule.findExportByName()
).The
callbacks
argument is an object containing one or more of:-
onEnter: function (args)
: callback function given one argumentargs
that can be used to read or write arguments as an array ofNativePointer
objects. -
onLeave: function (retval)
: callback function given one argumentretval
that is aNativePointer
containing the return value. You may callretval.replace(1337)
to replace the return value with the integer1337
, orretval.replace(ptr("0x1234"))
to replace with a pointer.
Note that these functions will be invoked with
this
bound to a per-invocation (thread-local) object where you can store arbitrary data, which is useful if you want to read an argument inonEnter
and act on it inonLeave
.For example:
-
-
Additionally, the object contains some useful properties:
-
returnAddress
: return address as a NativePointer -
context
: object with the keyspc
andsp
, which are NativePointer objects specifying EIP/RIP/PC and ESP/RSP/SP, respectively, for ia32/x64/arm. Other processor-specific keys are also available, e.g.eax
,rax
,r0
,x0
, etc. You may also update register values by assigning to these keys. -
errno
: (UNIX) current errno value (you may replace it) -
lastError
: (Windows) current OS error value (you may replace it) -
threadId
: OS thread ID -
depth
: call depth of relative to other invocations
-
Performance considerations
The callbacks provided have a significant impact on performance. If you only need to inspect arguments but do not care about the return value, or the other way around, make sure you omit the callback that you don't need; i.e. avoid putting your logic in onEnter and leaving onLeave in there as an empty callback.
On an iPhone 6 the base overhead when providing just onEnter might be something like 15 microseconds, and 25 microseconds with both onEnter and onLeave provided.
Also be careful about intercepting calls to functions that are called a bazillion times per second; while send() is asynchronous, the total overhead of sending a single message is not optimized for high frequencies, so that means Frida leaves it up to you to batch multiple values into a single send()-call, based on whether low delay or high throughput is desired.
-
Interceptor.detachAll()
: detach all previously attached callbacks. -
Interceptor.replace(target, replacement)
: replace function attarget
with implementation atreplacement
. This is typically used if you want to fully or partially replace an existing function’s implementation. UseNativeCallback
to implement areplacement
in JavaScript. Note thatreplacement
will be kept alive untilInterceptor#revert
is called. If you want to chain to the original implementation you can synchronously calltarget
through aNativeFunction
inside your implementation, which will bypass and go directly to the original implementation.Here’s an example:
Interceptor.revert(target)
: revert function attarget
to the previous implementation.
Stalker
-
Stalker.follow([threadId, options])
: start stalkingthreadId
(or the current thread if omitted), optionally withoptions
for enabling events.For example:
Performance considerations
The callbacks provided have a significant impact on performance. If you only need periodic call summaries but do not care about the raw events, or the other way around, make sure you omit the callback that you don't need; i.e. avoid putting your logic in onCallSummary and leaving onReceive in there as an empty callback.
-
Stalker.unfollow([threadId])
: stop stalkingthreadId
(or the current thread if omitted). -
Stalker.garbageCollect()
: free accumulated memory at a safe point afterStalker#unfollow
. This is needed to avoid race-conditions where the thread just unfollowed is executing its last instructions. -
Stalker.addCallProbe(address, callback)
: callcallback
(seeInterceptor#attach#onEnter
for signature) synchronously when a CALL is made toaddress
. Returns an id that can be passed toStalker#removeCallProbe
later. -
Stalker.removeCallProbe: remove a call probe added by
Stalker#addCallProbe
. -
Stalker.trustThreshold
: an integer specifying how many times a piece of code needs to be executed before it is assumed it can be trusted to not mutate. Specify -1 for no trust (slow), 0 to trust code from the get-go, and N to trust code after it has been executed N times. Defaults to 1. -
Stalker.queueCapacity
: an integer specifying the capacity of the event queue in number of events. Defaults to 16384 events. -
Stalker.queueDrainInterval
: an integer specifying the time in milliseconds between each time the event queue is drained. Defaults to 250 ms, which means that the event queue is drained four times per second.
DebugSymbol
-
DebugSymbol.fromAddress(address)
,DebugSymbol.fromAddress(name)
: look up debug information foraddress
/name
and return it as an object containing:address
: Address that this symbol is for, as aNativePointer
.name
: Name of the symbol, as a string.moduleName
: Module name owning this symbol, as a string.fileName
: File name owning this symbol, as a string.lineNumber
: Line number infileName
, as a JavaScript number.
You may also call
toString()
on it, which is very useful when combined withThread.backtrace()
:
-
DebugSymbol.getFunctionByName(name)
: resolves a function name and returns its address as aNativePointer
. Returns the first if more than one function is found. Throws an exception if the name cannot be resolved. -
DebugSymbol.findFunctionsNamed(name)
: resolves a function name and returns its addresses as an array ofNativePointer
objects. -
DebugSymbol.findFunctionsMatching(glob)
: resolves function names matchingglob
and returns their addresses as an array ofNativePointer
objects.
Instruction
-
Instruction.parse(target)
: parse the instruction at thetarget
address in memory, represented by aNativePointer
. Note that on 32-bit ARM this address must have its least significant bit set to 0 for ARM functions, and 1 for Thumb functions. Frida takes care of this detail for you if you get the address from a Frida API (for exampleModule.findExportByName()
).The object returned has the fields:
address
: Address (EIP) of this instruction, as aNativePointer
.next
: Pointer to the next instruction, so you canparse()
it.size
: Size of this instruction.mnemonic
: String representation of instruction mnemonic.opStr
: String representation of instruction operands.toString()
: Convert to a human-readable string.
ObjC
-
ObjC.available
: a boolean specifying whether the current process has an Objective-C runtime loaded. Do not invoke any otherObjC
properties or methods unless this is the case. -
ObjC.api
: an object mapping function names toNativeFunction
instances for direct access to a big portion of the Objective-C runtime API. -
ObjC.classes
: an object mapping class names toObjC.Object
JavaScript bindings for each of the currently registered classes.
-
ObjC.protocols
: an object mapping protocol names toObjC.Protocol
JavaScript bindings for each of the currently registered protocols. -
ObjC.mainQueue
: the GCD queue of the main thread -
ObjC.schedule(queue, work)
: schedule the JavaScript functionwork
on the GCD queue specified byqueue
. AnNSAutoreleasePool
is created just before callingwork
, and cleaned up on return.
new ObjC.Object(handle[, protocol])
: create a JavaScript binding given the existing object athandle
(a NativePointer). You may also specify theprotocol
argument if you’d like to treathandle
as an object implementing a certain protocol only.
This object has some special properties:
$kind
: string specifying eitherinstance
,class
ormeta-class
$super
: an ObjC.Object instance used for chaining up to super-class method implementations$superClass
: super-class as an ObjC.Object instance$class
: class of this object as an ObjC.Object instance$className
: string containing the class name of this object$protocols
: object mapping protocol name toObjC.Protocol
instance for each of the protocols that this object conforms to$methods
: array containing native method names exposed by this objectThere is also an
equals(other)
method for checking whether two instances refer to the same underlying object.
-
new ObjC.Protocol(handle)
: create a JavaScript binding given the existing protocol athandle
(a NativePointer). -
ObjC.implement(method, fn)
: create a JavaScript implementation compatible with the signature ofmethod
, where the JavaScript functionfn
is used as the implementation. Returns aNativeCallback
that you may assign to an ObjC method’simplementation
property.
As the
implementation
property is aNativeFunction
and thus also aNativePointer
, you may also useInterceptor
to hook functions:
-
ObjC.registerProxy(properties)
: create a new class designed to act as a proxy for a target object, whereproperties
is an object specifying:protocols
: (optional) Array of protocols this class conforms to.methods
: (optional) Object specifying methods to implement.events
: (optional) Object specifying callbacks for getting notified about events. For now there’s just one event:forward: function (name)
: Called withname
specifying the method name that we’re about to forward a call to. This might be where you’d start out with a temporary callback that just logs the names to help you decide which methods to override.
-
ObjC.registerclass(properties)
: create a new Objective-C class, whereproperties
is an object specifying:name
: (optional) String specifying the name of the class; omit this if you don’t care about the globally visible name and would like the runtime to auto-generate one for you.super
: (optional) Super-class, or null to create a new root class; omit to inherit from NSObject.protocols
: (optional) Array of protocols this class conforms to.methods
: (optional) Object specifying methods to implement.
-
ObjC.bind(obj, data)
: bind some JavaScript data to an Objective-C instance; seeObjC.registerClass()
for an example. -
ObjC.unbind(obj)
: unbind previous associated JavaScript data from an Objective-C instance; seeObjC.registerClass()
for an example. -
ObjC.getBoundData(obj)
: look up previously bound data from an Objective-C object. -
ObjC.choose(specifier, callbacks)
: enumerate live instances of classes matchingspecifier
by scanning the heap.specifier
is either a class selector or an object specifying a class selector and desired options. The class selector is an ObjC.Object of a class, e.g. ObjC.classes.UIButton. When passing an object as the specifier you should provide theclass
field with your class selector, and thesubclasses
field with a boolean indicating whether you’re also interested in subclasses matching the given class selector. The default is to also include subclasses. Thecallbacks
argument is an object specifying:-
onMatch: function (instance)
: called once for each live instance found with a ready-to-useinstance
just as if you would have callednew ObjC.Object(ptr("0x1234"))
knowing that this particular Objective-C instance lives at 0x1234.This function may return the string
stop
to cancel the enumeration early. -
onComplete: function ()
: called when all instances have been enumerated
-
-
ObjC.chooseSync(specifier)
: synchronous version ofchoose()
that returns the instances in an array. -
ObjC.selector(name)
: convert the JavaScript stringname
to a selector -
ObjC.selectorAsString(sel)
: convert the selectorsel
to a JavaScript string
Dalvik
-
Dalvik.available
: a boolean specifying whether the current process has the Dalvik VM loaded. Do not invoke any otherDalvik
properties or methods unless this is the case. -
Dalvik.enumerateLoadedClasses(callbacks)
: enumerate classes loaded right now, wherecallbacks
is an object specifying:-
onMatch: function (className)
: called for each loaded class withclassName
that may be passed touse()
to get a JavaScript wrapper. -
onComplete: function ()
: called when all classes have been enumerated.
-
-
Dalvik.enumerateLoadedClassesSync()
: synchronous version ofenumerateLoadedClasses()
that returns the class names in an array. -
Dalvik.perform(fn)
: ensure that the current thread is attached to the VM and callfn
. (This isn’t necessary in callbacks from Java.)
Dalvik.use(className)
: dynamically get a JavaScript wrapper forclassName
that you can instantiate objects from by calling$new()
on it to invoke a constructor. Call$dispose()
on an instance to clean it up explicitly (or wait for the JavaScript object to get garbage-collected, or script to get unloaded). Static and non-static methods are available, and you can even replace a method implementation and throw an exception from it:
-
Dalvik.choose(className, callbacks)
: enumerate live instances of theclassName
class by scanning the Dalvik heap, wherecallbacks
is an object specifying:-
onMatch: function (instance)
: called once for each live instance found with a ready-to-useinstance
just as if you would have calledDalvik.cast()
with a raw handle to this particular instance.This function may return the string
stop
to cancel the enumeration early. -
onComplete: function ()
: called when all instances have been enumerated
-
-
Dalvik.cast(handle, klass)
: create a JavaScript wrapper given the existing instance athandle
of given classklass
(as returned fromDalvik.use()
). Such a wrapper also has aclass
property for getting a wrapper for its class, and a$className
property for getting a string representation of its class-name.
WeakRef
-
WeakRef.bind(value, fn)
: monitorvalue
and call thefn
callback as soon asvalue
has been garbage-collected, or the script is about to get unloaded. Returns an id that you can pass toWeakRef.unbind()
for explicit cleanup.This API is useful if you’re building a language-binding, where you need to free native resources when a JS value is no longer needed.
-
WeakRef.unbind(id)
: stop monitoring the value passed toWeakRef.bind(value, fn)
, and call thefn
callback immediately.


First lets define some useful terms:
Let $F$ be the event that the patient has the illness
Let $E$ be the event that the test result is positive
$p(F|E)$ = probability of the illness given a positive test. This is the number we want to calculate.
$p(E|F)$ = probability of a positive result given illness =
$P(E|F^c)$ = probability of a positive result given no illness =
$P(F)$ = natural probability of the illness =
Bayes Theorem
In this problem we know $P(F|E)$ but we want to know $P(E|F)$. We can apply Bayes Theorem to turn our knowledge of one conditional into knowledge of the reverse.
$P(F|E) = \frac{P(E|F)P(F)}{P(E|F)P(F) + P(E|F^c)P(F^c)}$
Now all we need to do is plug values into this formula. The only value we don't explicitly have is $P(F^c)$. But we can simply calculate it since $P(F^c) = 1 - P(F)$. Thus:
Natural Frequency Intuition
One way to build intuition for Bayes Theorem is to think about "natural frequences". Imagine we have 1000 people. Let's think about how many of those have the illness and test positive and how many don't have the illness and test positive.
We are going to color people who have the illness in blue and those without the illness in pink (those colors do not imply gender!).
$1000 \times P(F)$ people have the illness
$1000 \times (1- P(F))$ people do not have the illness.
A certain number of people with the illness will test positive (which we will draw in Dark Blue) and a certain number of people without the illness will test positive (which we will draw in Dark Pink):
$1000 \times P(F) \times P(E|F)$ people have the illness and test positive
$1000 \times P(F^c) \times P(E|F^c)$ people do not have the illness and test positive.
Here is the whole population of 1000 people:
The number of people who test positive and have the illness is ?.
The number of people who test positive and don't have the illness is ?.
The total number of people who test positive is ?.
Out of the people who test positive, the fraction that have the illness is ?/? = ? which is a close approximation of the answer. If instead of using 1000 imaginary people, we had used more, the approximation would have been even closer to the actual answer (which we calculated using Bayes Theorem).


I am currently doing my Master's final internship at a startup called Simprints, in Cambridge UK. It is a non-profit company, focused on building biometrics for development, that is, biometric hardware and software designed specifically for Governmental and Non Governmental Organizations fighting poverty. It is actually my second internship there: the team offered me to come back after a great summer internship in 2016, and I was very happy to accept that offer!
The first product of the company was released at the end of the summer. It is basically a very affordable and super resistant portable fingerprint scanner, piloted by an Android application that can be easily integrated into any work flow to add biometric identification capabilities. In a nutshell, it helps providing essential services more efficiently to some of the 1.5 billion people in the work who still lack formal identification. Think about how difficult it would be for you to access banking services, education, healthcare, etc, if you had no ID card or passport... I could go on and on, but instead I invite you to visit Simprints' beautiful website if you want to lear more.
My responsibilities as a software engineer at Simprints include (but are not limited to) designing and developing parts of the Android application, of the scanner firmware and of the biometric algorithms used to match fingerprints.


HTML stands for Hyper Text Markup Language. It describes the structure of a Web page. HTML consists of a series of elements represented by tags that tell the browser how to display the content. These tags label pieces of content such as "heading", "paragraph", "table", and so on. Browsers do not display the HTML tags, but use them to render the content of the page
All HTML documents must start with a document type declaration: and HTML document itself begins with and ends with . The visible part of the HTML document is between
and .


Code source references
This site contains reference info on multiple technologies, primarily intended as a personal reference site,
but hopefully useful for others. The page is still a work in progress while I refactor GitLab repositories back into GitHub.
To check my current GitHub repositories click on the button below.
Sources at GitHub


Strictly's Oti Mabuse 'feared for her life' when lift with Kelvin went wrong during rehearsals
The professional dancer dangerously flew across the room in rehearsals when her celeb partner attempted a risky lift
by Tiffany WallisOti Mabuse admitted she "feared for her life" following a failed lift during Strictly Come Dancing rehearsals.
The professional dancer, 29, appeared on BBC Two's It Takes Two tonight alongside her celebrity partner Kelvin Fletcher , where she opened up about the risky move they attempted.
The pair showed off the tricky move in their routine on the BBC show at the weekend, but tonight revealed this was the simplified version after Oti suffered a scary fall earlier in the week.
Host Zoe Ball asked: "Were you in fear of your life?"
Oti admitted: "I was! With Kelvin, every week he starts really slow and then he progresses incredibly.
"So when we were doing it, we were doing it really slow and I thought 'let's both have our hands up'."
The pro dancer then admitted the scary near-accident.
She added: "On Wednesday, he gets faster and I almost fly across the room. I was like, 'oh my god, don't let me go!'
"So we had to adjust it. I love he's so passionate and just wants to improve, but that was scary."
She then admitted that due to the late stage in the competition, "we're all trying to push each other."
Oti continued: "When you get lifts, you want to make them scary and impossible. But after I thought, 'what was I thinking?'"
Oti and former Emmerdale star Kelvin, 35, are favourites to walk away with the Glitterball trophy this year.
The couple's dangerous lift comes after Kelvin's gruelling training regime was revealed.
Kelvin has been pushing himself to the limit in his bid for victory with 5am work-outs and 12 hour training sessions with partner Oti.
The actor has also increased his calories intake to 3,000 a day and makes sure he drinks up to four litres of water a day.
Kelvin is taught his dance moves on Monday and he makes sure he knows the routine by Tuesday lunch time so he and Oti can spend the rest of the week perfecting it.
It also recently emerged that the dad-of-two has a secret dance past.
Before his starring role in Emmerdale, Kelvin was a regular at ballet classes from the age of eight.
Kelvin was a late replacement in the BBC competition after Made In Chelsea's Jamie Laing suffered a foot injury.
*Strictly Come Dancing continues this Saturday on BBC One


To the top
Authentication service
Change your own password
Change your own email and real name
User administration UI
Logout


My Family
I am happily married, with 2 kids. They are my drive for most things. We try to have a good time with life.
(Eventually) A little bit more...
I am happily married, with 2 kids. They are my drive for most things. We try to have a good time with life.


[Home]
[Importer]
[Random]
[Telegram]
[Donate]
List users for a service...
Patreon
Pixiv Fanbox
Gumroad
Discord
SubscribeStar
Please enable Javascript
JavaScript on this page is used to render recent posts and search results.


Pastanaga provides a component and a directive allowing to give a popup behaviour to any component.
PopupComponent
: Component to be extended by any component needing a popup behaviour.
PopupDirective
: Directive allowing to open a popup by clicking on the element it belongs to
We can also toggle a popup programmatically:
{{example}}
To open a popup programmatically, in your template add a reference to your popup directive:
{{openProgrammaticallyTemplate}}
Then in your component, you can call
toggle
method of your directive to open/close the popup:
{{openProgrammaticallyComponent}}


| Payment Method Nonce | |
|---|---|
| Nonce: | {{.Nonce}} |
| Type: | {{.Type}} |
| Details: | {{.Details.CardType}}...{{.Details.Last2}} |
| Payment Method Nonce: 3DS Info | |
|---|---|
| Status: | {{.Status}} |
| Enrolled: | {{.Enrolled}} |
| Liability Shift Possible: | {{.LiabilityShiftPossible}} |
| Liability Shifted: | {{.LiabilityShifted}} |
| Transaction Error |
|---|
| {{.}} |
| Transaction Info | |
|---|---|
| ID: | {{.Id}} |
| Transaction: 3DS Info | |
|---|---|
| Status: | {{.Status}} |
| Enrolled: | {{.Enrolled}} |
| Liability Shift Possible: | {{.LiabilityShiftPossible}} |
| Liability Shifted: | {{.LiabilityShifted}} |


Conception Island is a national park with no inhabitants or facilities. Anchoring and landing is permitted but absolutely nothing must be taken or left.
Position 23° 51'06"N, 75° 07'12"W (anchorage)
Take care on the approach to this island as there are extensive reef surrounding it. Good light is essential.
There is an anchorage on the west side - close to the north west end of West Bay - however, shelter is limited and it is advisable to leave before anything in the western semicircle starts blowing.
Another anchorage can be found around the corner at Booby Cay. Keep a good look-out for there are a lot of bombies around. This anchorage gets rolly in eastern winds and it's advisable to leave the anchorage when strong easterly to southwesterly winds are expected.
Watch the weather closely and get out of here before you get trapped in these anchorages.
Last updated September 2016.


Before Change
// QImage under PySide on Python 3.
if QT_API == "PySide":
ctypes.c_long.from_address(id(buf)).value = 1
if hasattr(qimage, "setDevicePixelRatio"):
// Not available on Qt4 or some older Qt5.
qimage.setDevicePixelRatio(dpi_ratio)
painter = QtGui.QPainter(self)
painter.eraseRect(event.rect())
painter.drawImage(0, 0, qimage)
self._draw_rect_callback(painter)
After Change
// QImage under PySide on Python 3.
if QT_API == "PySide":
ctypes.c_long.from_address(id(buf)).value = 1
_setDevicePixelRatioF(qimage, dpi_ratio)
painter = QtGui.QPainter(self)
painter.eraseRect(event.rect())
painter.drawImage(0, 0, qimage)
self._draw_rect_callback(painter)


Select group.There are already two members in this group. Please choose another one.
Insert group name.
This task does not meet all the requirements of this stereotype (exactly 2 inputs and 1 output are required).Evaluation point and share of function must be different objects.