Dear Greetings To You And Your Family, This mail was first sent to you two months ago via post mail but uptill today,I have not heard from you.Based on this,I decided to reach you through this means though I know fully well that this is not the best and safest means to reach you for security reasons but was left with no other viable option since there's this urgent need to reach you. Firstly,I would want to assure you that this mail is no junk,spam,ilusion nor mere imagination.I appeal to you for the inconveniences this may cause you by going through an unsolicited mail,but I assure you that you will be satisfied after given me your due attention by carefully and attentively going through this.I know that we have not met before nor known to each other but never to worry as I will explain better. For clarity sake,I am Mr Kayode Abiola, 22 years old and a third year micro biology student of the Federal University of Lagos.I am one of the sons of late Chief M.K.O Abiola who won the 1993 presidential elections as the President of the Federal Republic of Nigeria. Firstly,before I go further to unfold my main objective of contacting you,I would advice that you visit this site maybe you can from here have an insight of my family background and my personality.I am fully aware of the numerous scam mails my fellow country men has been bombarding through the net looking for some one to defraud.I am telling you that I am from a respectable family and will not for any reason engage myself in any indecent act that will ruin the image of my family. I am going to throw more lights on the family,my mothers assasination by the gun men from the military junta Late Gen Sani Abacha,The killing of my father through poison while under detention. Please,kindly stop here and go through this websites,atleast it will help to enrich and broaden your knowledge on what has happened to my family: The annullement of june 12th 1993 Presidential elections: www.ngex.com/personalities/voices/politics.htm www.vanguardngr.com/articles/ 2002/politics/p525072004.html allafrica.com/stories/200407120112.html www.ainfos.ca/A-Infos97/3/0497.html www.thisdayonline.com/archive/ 2001/03/24/20010324cov04.html www.stormfront.org/archive/t-13985 My Mother's assasination: www.amnesty.it/news/1996/14401096.html www.motherlandnigeria.com/women www.h-net.org/~africa/obituaries/msabiola.html www.cohdn.ca/news2/tribute1-3.html www.africaaction.org/docs96/nig9606.htm www.africaaction.org/docs97/nig9711.htm www.fraudaid.com/ScamSpeak/ Nigerian/abacha/sanionlinenewshour.htm My Father's death: www.africamasterweb.com/BanjoOnTaylor.html www.nigeriancp.net/arijo.html allafrica.com/stories/200108080221.html www.nigeriavillagesquare1.com/Sanusi.htm I believe that the above sites has given you a wider perspective of how I lost my parents.My father was known to be a polygamist,my own mother was the second wife.Since the death of my father,things are no longer the same within the entire household.My elder brother who is the son of the first wife has taken allmost everything under the pretence that we are still in school.promising to establish us as soon as we graduates. Going through my Mother's documents, I stumbled on a document which proved that my father had a deposit of $15 Million U.S.A dollars (fifteen million united states of america dollars) with a Finance Company abroad. I have made contact to the Finance Company and was told that I could come for the claims so long as I have the certificate of deposit or That I can send a representative but should equip him with the certificate of deposit and a power of attoerney. Based on this that I am mailing you seeking your consent to assist me go for the claims of this funds deposited with the security company since I am still in school. I am going to send to you all the documents given to my father by this security company on the day of the deposit. I am willing to offer you 25% of the total sum on completion of the clearing excercise from the Finance Company, I maped out 5% for refund of expences incured in the cause of this transaction, knowing fully well that this deposit must have by now accumulated some demurrages. The balance of 70% will be kept for me,or should be invested and managed by you untill I graduates.I appeal to you,to understand that despite the fact that we dont know each other,I am puting this trust on you,based on the recommmendations I got while making my own private consultations and investigations on a reliable person or firm to entrust this fund into his care. Please,I beg you in the name of god,not to sit on this money when finally released to you by the Finance Company. I am doing this because I dont want my Elder Brothers to have the knowledge of this fund. If this proposition interest you, and you really want to assist me, kindly forward the following information to me: (1) Your complete names starting with your surname first (2) Your private phone numbers including mobile (3) Your private fax number (4) Your present contact address. You should understand that these information requested will enable my Lawyer to prepare the power of attorney in your favour and as well enhance communication. I strongly advice that you treat this with utmost secrecy and absolute confidentiality,You are permited to make further enquiries on this issue, you can as well contact the Nigerian High Commission or Embassy nearer to you for comfirmation if you are not satisfied with your findings on the giving sites but please dont for any reason disclose the subject matter to anybody for security reasons. Endeavour to send further correspondences through my secured private email<EMAIL_ADDRESS>I am looking forward to hearing from you and at the same time thanking you for your kind assistance/anticipated cooperation. Best regards Kayode Abiola. ___________________________________________________________________________ Mail sent from WebMail service at PHP-Nuke Powered Site - http://yoursite.com


Installing Prismatica
The Prismatica project is dedicated to having your cake and eating it too.
Diagon is the default C2 toolset of Prismatica Project. The primary implant for Diagon is Gryffindor a JavaScript-based implant that leverages Windows Scripting Host (WSH) for execution. Gryffindor also has the capability to load and execute arbitrary .NET assemblies through the DotNetToJScript project.
Gryffindor includes custom WSH, COM, and .NET post-exploitation capabilities however the implant also supports the ability to InvokeAssembly
for futher post exploitation capability. Gryffindor includes two core .NET assembly frameworks actualized through DotNetToJScript:
===========================
Gryffindor Commands:
===========================
help - Show this information
cat - Show file contents
type - Show file contents
cd - Change directory
ls - Show directory contents
dir - Show directory contents
die - Exit session
kill - Exit session
set - Modify payload settings
- interval <ms>
- sleep <ms>
- jitter <percent>
show - Display payload information
- settings <ms>
upload - Upload a file to the target system
download - Download a remote file from the target system
spawn - Instantiate a new session on the target system
- Example Usage: spawn <target-ip> <user> <password>
WMIExecute - Instantiate a new session on the target system
- Example Usage: WMIExecute <target-ip> <cmd> <user> <password>
hashdump - Use Mimikatz to dump SAM hashes
InvokeAssembly - Run an payload from within a loaded .NET assembly (Defaults:SharpSploit)
- Example Usage: InvokeAssembly -Entry SharpSploit.Execution.Shell -Module ShellExecute -Args ('calc.exe','','','')
LoadAssembly - Load an arbitrary .NET assembly payload
type -
Other commands sent to Gryffindor are executed in the Windows cmd.exe shell.
===========================
Before establishing remote access to a target system it is important to instantiate a listener for the implant to connect into. Click on the headphones icon to access the listeners panel. Next, click start listener to instantiate a basic http listener in Oculus.
As seen above Diagon provides a direct staging command; however, standalone .js payloads can be generated as seen below.
Click on the factory icon to open the backdoor factory modal window. Generated payloads will appear in the current user’s home/.prismatica directory on both Windows and Linux operating systems.
Project Prismatica is built around the concept of Emergence. Explore the Emergence API!
The Prismatica project is dedicated to having your cake and eating it too.


MacBook Air
From ฿35,000
MacBook Pro
From ฿42,900
iMac
From ฿37,900
iMac Pro
From ฿172,900
Mac Pro
From ฿114,900
Mac mini
From ฿27,900
iPhone 11 Pro
From ฿35,900
iPhone 11
From ฿24,900
iPhone XR
From ฿21,900
iPhone 8
From ฿15,900
Apple Watch Series 5
From ฿13,400
Apple Watch Nike
From ฿13,400
Apple Watch Hermes
From ฿40,900
Apple Watch Edition Series 5
From ฿25,400
Apple Watch Series 3
From ฿6,400
iPod Touch
Form ฿6,900
Apple TV 4K
Form ฿7,528
Apple TV HD
Form ฿6,168


Embed Instructions
About
Loading data...
×
Embed Instructions
Copy and paste the following into your web page


TRUST YOUR FINGERS
Typing without backspace , Blind ScreenTyping , Vowel to space , Non English Paragraph , Game round
Entry Fee: 50/-
Typing without backspace , Blind ScreenTyping , Vowel to space , Non English Paragraph , Game round
Entry Fee: 50/-
Debugging Questions , Scrambled code , Medium or difficult coding question , Buzzer quiz
Entry Fee: 100/-
Rounds :: Online : First the participant has to mail the abstract.. Then Above selected candidate have to present in front of panelist.
Entry Fee: 100/-
The event is a two day workshop which shall be conducted by the Head of Google , More Info...
Entry Fee: 500/-
Entry Fee: 200/-(TeamOf2)
Download BrochureCOUNTER-STRIKE 1.6 , FIFA 13 , NFS MOST WANTED, DOTA 2 .
For More Info,


libdatastruct
libskarnet
skalibs
Software
skarnet.org
The following functions are declared in the skalibs/genqdyn.h header, and implemented in the libskarnet.a or libskarnet.so library.
genqdyn is a set of functions implementing simple queues on generic objects. The dyn prefix means the queues are dynamically allocated (and live in heap memory): it is possible to enqueue an arbitrary number of objects, up to the available memory.
A genqdyn structure holds the information necessary to implement a queue. It can be declared anywhere (including in the stack). All genqdyn functions take a pointer to this structure as an argument.
genqdyn GENQDYN_INIT(type, num, den)
Returns an anonymous genqdyn structure suitable for holding objects of
type type. The num and den arguments are integers,
used to tune the amount of memory needed / management overhead balance.
num/den must be a fractional value between 0 and 1.
The closer to 0, the longer genqdyn will wait before performing a
cleanup (and the more memory it can consume). At 0, genqdyn can only
recycle memory when the queue becomes totally empty. The closer to 1,
the more genqdyn optimizes its memory usage (and the more often it
performs maintenance on its queue). At 1, it performs maintenance
every time an object is popped.
Anything between 1/4 and 3/4 is a reasonable value for num/den.
size_t genqdyn_n (genqdyn *g)
Returns the number of elements in the genqdyn *g, which must
have been initialized.
void *genqdyn_peek (genqdyn *g)
Peeks at the next object in the queue, i.e. the object that has
been pushed the earliest and that hasn't been popped yet.
You can use the GENQDYN_PEEK(type, g) macro to get a
type * pointer instead of a void * one.
void genqdyn_init (genqdyn *g, size_t esize, unsigned int num, unsigned int den)
Initializes the genqdyn *g to hold objects of size esize.
g must be unused, or have been freed. The num and den
arguments tune g's behaviour as described above in the GENQDYN_INIT
description. This function is similar to the GENQDYN_INIT macro, except that
it can be used dynamically and works on a pre-declared genqdyn, whereas the
macro can only be used as a static initializer.
void genqdyn_free (genqdyn *g)
Frees the resources used by *g, which is then considered
uninitialized.
int genqdyn_push (genqdyn *g, void const *p)
Pushes the object pointed to by p onto the queue. This object
must have the same size that has been given to the genqdyn_init()
invocation, or be of the same type that has been given to the
GENQDYN_INIT() invocation. The function returns 1 if it succeeds
and 0 (and sets errno) if it fails.
int genqdyn_unpush (genqdyn *g)
Undoes the last push. Returns 1, except if the queue is empty,
in which case it returns 0 and sets errno to EINVAL.
int genqdyn_pop (genqdyn *g)
Pops an object from the queue, and possibly performs maintenance
to reuse some memory. Returns 1, unless the queue is empty, in which
case it returns 0 and sets errno to EINVAL.


|
Awesome Portable Rendering Interface Library
This library provides a universal rendering API and does not require to write code that is used in only one API (e.g. OpenGL, DirectX, SDL, ...)
|
Defines window system types. More...
#include <april.h>
Public Member Functions | |
| WindowType (chstr name) | |
| WindowType (chstr name, unsigned int value) | |
| WindowType | next () const |
| WindowType | previous () const |
| bool | operator< (const WindowType &other) const |
| bool | operator> (const WindowType &other) const |
| bool | operator<= (const WindowType &other) const |
| bool | operator>= (const WindowType &other) const |
| bool | operator== (const WindowType &other) const |
| bool | operator!= (const WindowType &other) const |
Static Public Member Functions | |
| static int | getCount () |
| static hltypes::Array< WindowType > | getValues () |
| static hstr | getEnumName () |
| static hltypes::Map< unsigned int, hstr > | getAsMap () |
| static WindowType | fromInt (int value) |
| static WindowType | fromUint (unsigned int value) |
| static WindowType | fromName (chstr name) |
| static bool | hasValue (chstr name) |
| static bool | hasValueFor (int value) |
| static bool | hasValueFor (unsigned int value) |
Static Public Attributes | |
| static const WindowType | Default |
| Use platform default window system if available. | |
| static const WindowType | Win32 |
| Use Win32 window system if available. | |
| static const WindowType | UWP |
| Use UWP window system if available. | |
| static const WindowType | SDL |
| Use SDL window system if available. | |
| static const WindowType | Mac |
| Use Mac window system if available. | |
| static const WindowType | iOS |
| Use iOS window system if available. | |
| static const WindowType | AndroidJNI |
| Use Android window system if available. | |
| static const WindowType | OpenKODE |
| Use OpenKODE window system if available. | |
Protected Member Functions | |
| WindowType (unsigned int value) | |
| hltypes::Map< unsigned int, hstr > & | _getInstances () const |
Defines window system types.


{% extends "layout.html" %} {% block body %}
You are authorized to access the secret information.
{% else %}This Web site contains secret information available only to authorized users. Available usernames are:
They all have the same password, "password".
{% endif %} {% endblock body %}


What did Jesus tell Peter that He had done (v. 32)?
Sifting wheat is an act of separating the useful part (kernel) from the junk (chaff). The whole of the wheat is shaken in a sieve. The good kernels stay firmly in the mesh while the chaff either falls through the cracks or flies up and floats away, too light to stay firmly planted with the pieces of substance. Sifting implies separating the good from the bad, the substance from the rubbish.
The interesting thing here is that the “you” in both of these sentences is plural. Where I’m from, we would translate it “y’all.” Jesus was talking about all of the disciples in these two sentences, not just Peter. Here’s the Texas translation: “Satan has asked to sift y’all like wheat. But I have prayed for y’all, Simon, that your faith may not fail.”
Peter puffed himself up with characteristic bravado and declared that he was ready to face prison or even death for Jesus’ sake. He was asserting that he would never be the one to betray Jesus, to turn away from his loyalty, to disappoint the Savior he loved. Jesus knew better.
What did Jesus predict Peter would do in Luke 22:34?
Now read Luke 22:54-62. How accurate was Jesus’ prediction?
According to Luke 22:32, what did Jesus predict Peter would do when all was said and done?
Peter’s disappointing behavior was not a surprise to Jesus. It didn’t catch Him off guard. It didn’t make Him love Peter any less. Jesus actually reached out in grace before Peter ever sinned, praying for Peter and the other disciples because He knew the toughest test of their faith—the crucifixion and death of the Savior they followed—lay only hours ahead of them.
Jesus knew that Peter would disappoint Him by denying Him. But He also knew that Peter wouldn’t stay down long. He prayed that this moment of struggle would be one that would strengthen Peter, and that when He bounced back He would strengthen His brothers as well.
When we act in disappointing ways, God is not surprised. He knows us better than we know ourselves, and He is ready to respond with grace. He also knows


{% extends "layouts/layout.njk" %} {% set base_path = "../" %} {% set page_title = "BeeHelper" %} {% set page_description = "prototype" %} {% set active_page = "find" %} {% import "macros/macro-simpleCheckbox.njk" as checkbox %} {% import "macros/macro-action-btn-link.njk" as actionButton %} {% import "macros/macro-resultJob-card.njk" as card %} {% block main %} {{ super() }}
Show:
Sort by:
Search request and results will be deleted


Registration
First Name
Last Name
Phone Number
State
Andhra Pradesh
Arunachal Pradesh
Assam
Bihar
Chhattisgarh
Goa
Gujarat
Haryana
Himachal Pradesh
Jammu and Kashmir
Jharkhand
Karnataka
Kerala
Madhya Pradesh
Maharashtra
Manipur
Meghalaya
Mizoram
Nagaland
Odisha
Punjab
Rajasthan
Sikkim
Tamil Nadu
Telangana
Tripura
Uttar Pradesh
Uttarakhand
West Bengal
Email
Password
Confirm Password
Submit
Submitted Successfully


Most code samples are written in HCL, consider converting them to YAML while adding them to your stack script.{% endif %} {{ content }} {% if page.url contains '/docs/terraform/' %}
{% assign size = page.url | remove: '/docs/terraform/' | size | minus: 1 %}
See the source of this document at Terraform.io
{% endif %}


t
Posted on April 10, 2017
The Tenth Blog Post!
What did you do this past week?
This week I spent finishing the life project. Because I had nearly all of the coding done, this week was spent hunting for errors from unexpected memory leaks, double frees, and unexpectedly incorrect input. Thankfully, the project was turned in well before the deadline with all parts completed and all tests passed, in in contrast to the last lab.
What will you do next week?
The coming week will be spent studying. I have some ground to make up from the last exam, with a decidedly below-average score, so if I want a good grade I have to perform.
What's in the way?
I have quite a few things I have to wrap up before the semester ends. I've got housing, I've got a job offer I need to consider, and I've got to find a subleaser and a person to fill my slot beyond the lease. There is also a final project looming in another class. The only things in the way of my success in this class is my other commitments at the moment.
What's my experience in the class?
The class is as always fair. But I personally am wonder if this class is more about C++ rather than object oriented programming in general. Though we certainly learn object oriented principles, and C++ is an object oriented language, lot of this class is about minute details and operational semantics in C++, which is not what I expected when I began the class.
What's the tip of the week?
Plan for duplicate inputs in the lab! I had the hardest time figuring out what was wrong with my hackerrank tests until I discovered I wasn't handling duplicate input, though I should have been.


By default, you see we have two different jQuery versions running independently.
The version above is what the host (this page) is using. The version inside the red border is the version the remote app is using.
Open the console. The host has v.2 installed and throws a promise error in the console due to unspported features.
The remote has v.3 installed and is successfully outputing to the console: (Failure 1, Success 2).


made by wentout css+markup zeroWheel navigation on arrows : ← || → or space " " jumps: start — [ || end — ]


{% include head.html %}
{% include trust_badge.html %} {{ content }}
{{ site.event.name }}
© 2016 {{ site.event.name }}. Template by
Niko Lazaris
.
{% include analytics/google_analytics.html ga_id=site.tracking.google_analytics %}


p
Some text in a paragraph.
More text in another paragraph.

Some text in a paragraph.

More text in another paragraph.

HTML5 p element


What is this, exactly?
This week, some of my Mapbox colleagues and I launched documentation for Turf, a JavaScript library for GIS in the browser. I want to make sure our documentation makes sense, so I have concocted a series of interesting projects for you to try out, if you're interested! No prior knowledge is necessary, so long as you're excited to jump in and start learning.
"JavaScript? WTF no, I'm out!"WAIT. I know it can be intimidating to try something new. But notice that one of the projects is "Something cool with Turf." If you've never touched JavaScript before and you're okay trying something new, it would help me a ton if you tried to make something. A great place to start is our How JavaScript & mapping works guide. Or you can check out any of our other guides to get started!
I'd love to get some responses from folks who are just learning. That'd make this whole thing totally awesome!
The Rules
- Create a map based on one of the prompts below.
- Your map must use Mapbox.js and Turf
- Your map does not have to be pretty. It just has to do the thing it's supposed to do.
- Okay, it doesn't even have to do the thing it's supposed to do. It just has to be something you tried at and worked on. I want to see the ones that don't work just as much as the ones that do.
- In addition to your map, please send the answers to some questions:
- Which prompt did you attempt?
- What turf modules did you use?
- What was helpful about the documentation?
- What was not great about the documentation?
- How can we improve it?
- What other resources did you use for help?
- Maps and answers are due by the end of the day Sunday, February 1 to my email<EMAIL_ADDRESS>- Questions are totally welcome at any time, and you can use whatever you want to help you. Just let us know what you used.
- I'll share all of them in a blog post next week.


| Module | SeleniumOnRails::TestBuilderActions |
| In: |
lib/selenium_on_rails/test_builder.rb
|
The actions available for SeleniumOnRails::TestBuilder tests.
Tell Selenium how to answer the next JavaScript prompt.
# File lib/selenium_on_rails/test_builder.rb, line 126 126: def answer_on_next_prompt answer_string 127: command 'answerOnNextPrompt', answer_string 128: end
Tell Selenium to select "Cancel" the next time a confirmation dialog appears.
# File lib/selenium_on_rails/test_builder.rb, line 121 121: def choose_cancel_on_next_confirmation 122: command 'chooseCancelOnNextConfirmation' 123: end
Click on the specified element. Supports a :wait => true option.
# File lib/selenium_on_rails/test_builder.rb, line 48 48: def click element_locator, options={} 49: command name_with_optional_wait('click', options), element_locator 50: end
Close the current window.
# File lib/selenium_on_rails/test_builder.rb, line 78 78: def close 79: command 'close' 80: end
Send an event to an element.
fire_event 'password', 'focus'
# File lib/selenium_on_rails/test_builder.rb, line 89 89: def fire_event element_locator, event_name 90: command 'fireEvent', element_locator, event_name 91: end
Simulate selecting the "Back" button.
# File lib/selenium_on_rails/test_builder.rb, line 73 73: def go_back 74: command 'goBack' 75: end
Includes a partial. The path is relative to the Selenium tests root. The starting _ and the file extension doesn’t have to be specified.
#include test/selenium/_partial.* include_partial 'partial' #include test/selenium/suite/_partial.* include_partial 'suite/partial' #include test/selenium/suite/_partial.* and provide local assigns include_partial 'suite/partial', :foo => bar
# File lib/selenium_on_rails/test_builder.rb, line 33 33: def include_partial path, local_assigns = {} 34: partial = @view.render :partial => path, :locals => local_assigns 35: @output << partial 36: end
Open the page specified by url and wait. The url may either by a string, or arguments suitable for ActionView::UrlHelper#url_for.
open '/' open :controller => 'customer', :action => 'list'
# File lib/selenium_on_rails/test_builder.rb, line 42 42: def open url 43: command 'open', url_arg(url) 44: end
Wait for milliseconds.
# File lib/selenium_on_rails/test_builder.rb, line 83 83: def pause milliseconds 84: command 'pause', milliseconds 85: end
Select an option from a select menu. Supports a :wait => true option.
# File lib/selenium_on_rails/test_builder.rb, line 61 61: def select drop_down_locator, option_specifier, options={} 62: command(name_with_optional_wait('select', options), drop_down_locator, 63: option_specifier) 64: end
Select a popup window by name, and send further commands to it. If window_id is nil, select the main window.
# File lib/selenium_on_rails/test_builder.rb, line 68 68: def select_window window_id 69: command 'selectWindow', window_id||'null' 70: end
Tell Selenium on Rails to clear the session and load any fixtures. DO NOT CALL THIS AGAINST NON-TEST DATABASES. The supported options are :keep_session and :fixtures
setup setup :keep_session setup :fixtures => :all setup :keep_session, :fixtures => [:foo, :bar]
# File lib/selenium_on_rails/test_builder.rb, line 10 10: def setup options = {} 11: options = {options => nil} unless options.is_a? Hash 12: 13: opts = {:controller => 'selenium', :action => 'setup'} 14: opts[:keep_session] = true if options.has_key? :keep_session 15: 16: if (f = options[:fixtures]) 17: f = [f] unless f.is_a? Array 18: opts[:fixtures] = f.join ',' 19: end 20: 21: open opts 22: end
Store a value into a Selenium value.
# File lib/selenium_on_rails/test_builder.rb, line 99 99: def store value_to_store, variable_name 100: command 'store', value_to_store, variable_name 101: end
Store the value of an attribute into a Selenium variable.
# File lib/selenium_on_rails/test_builder.rb, line 114 114: def store_attribute element_locator, attribute_name, variable_name 115: command('storeAttribute', "#{element_locator}@#{attribute_name}", 116: variable_name) 117: end
Store the text of an element into a Selenium variable.
# File lib/selenium_on_rails/test_builder.rb, line 109 109: def store_text element_locator, variable_name 110: command 'storeText', element_locator, variable_name 111: end
Store the value of an input field into a Selenium variable.
# File lib/selenium_on_rails/test_builder.rb, line 104 104: def store_value input_locator, variable_name 105: command 'storeValue', input_locator, variable_name 106: end
Type value into the specified element. Supports a :wait => true option, which is useful if typing into the field causes another page to be loaded.
# File lib/selenium_on_rails/test_builder.rb, line 55 55: def type input_locator, value, options={} 56: command name_with_optional_wait('type', options), input_locator, value 57: end


Animatable abstract class
abstract class Animatable { bool advanceTime(num time); }
Subclasses
DelayedCall, FlipBook, FlumpMovie, Juggler, ParticleEmitter, TimeGauge, Transition, Tween
abstract class Animatable { bool advanceTime(num time); }
DelayedCall, FlipBook, FlumpMovie, Juggler, ParticleEmitter, TimeGauge, Transition, Tween


--- author: admin categories: app date: '2008-08-07 05:50:48' link: http://blogs.nitobi.com/brock/2008/08/07/unofficial-announcement-of-phonegap/ permalink: /2008/08/07/unofficial-announcement-of-phonegap/ slug: unofficial-announcement-of-phonegap status: publish title: Unofficial announcement of PhoneGap type: post format: html tags_old: - ios - event ---
Flying back to Vancouver after attending the iPhone Dev Camp in San Francisco. With me was Rob Ellis and Andre Charland. We went down with one goal in mind and that was to make native iphone features available to web apps. To say we are pleased with our results is a huge understatement. We have managed to take care of all the Objective-C for you to empower you to build native-like web apps using purely web technologies.
PhoneGap
What we have done is embedded webkit into a native Objective-C application and built a javascript API that calls the native iphone functions such as geo location and accelerometer. You now really can write rich iphone applications without writing a single line of Objective-C.
iPhone Dev Camp
Adobe did a fantastic job, Hosting a dev camp of top form and the developers at the camp came through in a big way. A huge thanks goes to Eric who wrote most of the Objective-C for PhoneGap and Rockstar Brad for pitching in when we had some technical projects. Open source works people. This weekend proves it and that is why PhoneGap is released under the MITÂ license. You can get the source here.


design background
West Oakland, a declining industrialized city
Located in San Francisco Bay Area, Oakland was one of the places where heavy industry was located. However, throughout the San Francisco Bay, many miles of beaches are impaired for unacceptable levels of pollutions. Decades of pollution and water exports have led to sharp declines in Bay Delta fishery. Poor quality of marine habitat affects terrestrial and aquatic ecosystems, as well as the diversity of wildlife diversity.
pain points
Industry infrastructure abandoned, with disassociated and unsystematic workflow
Six types of industry infrastructure legacies sit on the site: abandoned factory buildings serving different industry functions, train station/train tracks that help transport cargo and agriculture/industry products outside Oakland, ship docks that build and mooring freighter, oil tanks that store liquid oil, cargo containers scattered all over the brownfield and abandoned factory machines. All industries work loosely together but mainly working independently in this industry intensive area.
How do we utilize these industry legacies? Should we tear it down or reuse them? How to achieve our goal with minimum cost and maximum environmental income? How to reuse the abandoned brownfield and solve some ecological challenges at the same time? Obviously, a systematic workflow that can coordinate all infrastructure, utilize and integrate different resources is what Oakland needs.
experience mapping
Analysis on the workflow system
In this process, no external forces are involved and nature always tries to use its own power and method to decompose things and turn useless or even hazardous things into something beneficial and positive. In this way, ecological problems can also be alleviated while local resources can be utilized more systematically, thoroughly and efficiently.
design strategies: plan
Oakland masterplan
Situated beside the Bay, the whole West Oakland industry zone will be transformed into a natural marine park where people travel witnessing all workflows work closely together to decompose unusable materials and create not only countless opportunities for the future, but an elegant landscape park. People get closer touch with the nature, feeling waves, chirping birds, and the growing and thriving nature.
design strategies
Strategies #1
Strategies #2


Meet the hairdresser to Japan’s sumo wrestling elite
by Mark FrauenfelderOnce when I was on a train in Tokyo, I saw a sumo wrestler board and take a seat. He looked like a real life superhero and moved with grace that defied his massiveness. One of the things that made him look otherworldly was his topknot hairstyle. In this video, we meet Kato Akira, who had been the hairdresser for elite sumo wrestlers for over 50 years. He uses both hands and his mouth to tie knots in the wrestlers' hair, and uses a number of beautiful wooden combs.
Image: YouTube


A simple simulation of Chord Algorithm written in Javascript
Read more
about this project
Download the state
| Number of nodes:
Regenerate the network
Logs


1. Synchronous metronome with constant delay and single volume measurement.
2. Synchronous metronome with constant delay and volume measurement before each beat.
3. Synchronous metronome with adaptive delay and volume measurement before each beat.
4. Synchronous metronome with adaptive delay and volume measurement before each beat. Execution time of volume measurement is oscillating.
5. Synchronous metronome with ticker. Notice initial delay before first volume measurement, caused by Ticker not firing immediately.
6. Synchronous metronome with ticker firing immediately.
7. Synchronous metronome with ticker firing immediately. Execution time of volume measurement is oscillating.
8. Synchronous metronome with ticker firing immediately. Execution time of volume measurement is random.
9. Asynchronous metronome - naive implementation. Execution time of volume measurement is random.
10. Asynchronous metronome - naive implementation that at least waits for the completion of the whole execution. Execution time of volume measurement is random.
11. Asynchronous metronome with atomic variables. Execution time of volume measurement is random.
12. Asynchronous metronome with mutex protecting shared state. Execution time of volume measurement is random.
13. Asynchronous metronome with channels communicating state changes. Execution time of volume measurement is random.
14. Asynchronous metronome with channels communicating state changes. All asynchronous. Execution time of volume measurement is random.


webinos-dashboard
=================
Dashboard API of webinos
### Explorer Module ###
Module: "explorer"
#### Data ####
- *service*
String or array of strings. The services you want to filter/discover.
Default: "*"
- *select*
String. The type you want to be selected.
Allowed: "people", "devices", "services", "none"
Default: "services"
- *show*
String. The type you want to show.
Allowed: "people", "devices", "services"
Default: "services"
- *multiselect*
Boolean. If you want to allow multiple selections.
Default: false
#### Result ####
Result is always an array of objects containing the selections. The properties of the objects depends on the user selected types.
- *id*
- *type*
- *friendlyName*
- *api*
(only if the type is service)
- *address*
(only if the type is service)
- *deviceType*
(only if the type is device)
### ServiceModule ###
Module: "serviceConfiguration"
#### Data ####
- *params*
Object containing information to configure a spefic API or null (see "params" element in config.json). A page to configure APIs (the one selected or all of them) will be shown in the dashboard.
Default: "null"
#### Result ####
No result returned.


{include file="public/header" /} {block name="content"}网站内容{/block} {include file="public/footer" /}


Android Auto 4.8 prepares persistent weather icon, more [APK Insight]
by Ben SchoonOne of my few complaints about the new Android Auto interface that rolled out earlier this year is that it killed useful cards such as one for the weather. Now, the latest Android Auto update brings back that functionality as well as delivering on a previously teased option.
About APK Insight: In this “APK Insight” post, we’ve decompiled the latest version of an application that Google uploaded to the Play Store. When we decompile these files (called APKs, in the case of Android apps), we’re able to see various lines of code within that hint at possible future features. Keep in mind that Google may or may not ever ship these features, and our interpretation of what they are may be imperfect. We’ll try to enable those that are closer to being finished, however, to show you how they’ll look in the case that they do ship. With that in mind, read on.
Persistent weather notification
The biggest new addition in Android Auto 4.8 is the first hint at a persistent weather notification. This doesn’t quite replace the card that was present in the old Android Auto, but it at least shows the weather at all times while you’re in the car which is a nice addition. There’s a new option in the Android Auto settings menu to toggle this feature on or off depending on your preferences.
The weather notification in Android Auto uses your phone’s location to update automatically as you travel. The functionality hasn’t actually started rolling out yet, but Android Police was able to enable it on their device.
<string name=”settings_weather_summary”>Show weather information on the car screen status bar, obtained using your phone location</string>
<string name=”settings_weather_title”>Weather</string>
Launcher customization is imminent
Somewhat surprisingly, launcher customization is also already live in Android Auto v4.8. Google has added a few more strings as seen below for the feature including a toast message that appears on your car’s display telling you to unlock the phone to customize the homescreen.
Within the app, users can turn off apps they don’t want to appear on the car’s display, but not all apps are eligible such as Google Maps, Phone, and Settings. Weirdly, Google Play Music is also required if it’s installed on your device. You’ll have to relaunch Android Auto for any changes to take effect.
<string name=”gearhead_launcher_unlock_to_access_customization_toast”>Unlock phone to customize app launcher</string>
<string name=”gearhead_on_phone_activity_launcher_customization_label”>App launcher customization</string>
<string name=”settings_customize_app_launcher_change_message”>Restart Android Auto for changes to take effect</string>
How to update?
Android Auto 4.8 is rolling out now via the Play Store.
Thanks to JEB Decompiler, which some APK Insight teardowns benefit from.
More on Android Auto:
- ‘Android Auto for phone screens’ app now available on Google Play
- Hey Google, reporting features for Maps on Android Auto are long overdue
- Ford is bringing Android Auto Wireless to ‘select’ 2020 vehicles
FTC: We use income earning auto affiliate links. More.


|
Steam Audio API
2.0-beta.18
|
Parameters that specify how probes should be created by iplCreateProbeBox
.
More...
Data Fields | |
| IPLProbePlacement | placement |
| The placement algorithm to use for creating probes. More... | |
| IPLfloat32 | spacing |
| Spacing between probes along the horizontal plane. More... | |
| IPLfloat32 | heightAboveFloor |
| Height of the probes above the closest floor or terrain surfaces. More... | |
| IPLint32 | maxOctreeTriangles |
| The maximum number of triangles to store in an octree leaf node. More... | |
| IPLint32 | maxOctreeDepth |
| The maximum depth of the octree. More... | |
Parameters that specify how probes should be created by iplCreateProbeBox
.
| IPLProbePlacement placement |
The placement algorithm to use for creating probes.
| IPLfloat32 spacing |
Spacing between probes along the horizontal plane.
Only used if placement
is IPL_PLACEMENT_UNIFORMFLOOR
.
| IPLfloat32 heightAboveFloor |
Height of the probes above the closest floor or terrain surfaces.
Only used if placement
is IPL_PLACEMENT_UNIFORMFLOOR
.
| IPLint32 maxOctreeTriangles |
The maximum number of triangles to store in an octree leaf node.
Only used if placement
is IPL_PLACEMENT_OCTREE
.
| IPLint32 maxOctreeDepth |
The maximum depth of the octree.
Increasing this value increases density of the generated probes. Only used if placement
is IPL_PLACEMENT_OCTREE
.


meslas.covariance package¶
Submodules¶
meslas.covariance.cross_covariances module¶
Cross-covariance models.
- class meslas.covariance.cross_covariances.LinearTrendCrossCov(gamma0, sigma0s, betas, s0)¶
Bases:
object
Create a linear trend cross-covariance.
- Parameters:
- gamma0: Tensor
Coupling parameter.
- sigma0s: (p) Tensor
Vector of individual standard deviation (constant part) for each to the p components.
- betas: (p, n_dim) Tensor
List of vectors of linear trends for each of the p components. The final model is sigma_i(s) = sigma0s[i] + betas[i, :] * s.
- Returns:
- function(L1, L2)
Methods
__call__
(S1, L1, S2, L2)
- class meslas.covariance.cross_covariances.ParabolicTrendCrossCov(gamma0, sigma0s, betas, s0)¶
Bases:
object
Create a parabolic trend cross-covariance.
- Parameters:
- gamma0: Tensor
Coupling parameter.
- sigma0s: (p) Tensor
Vector of individual standard deviation (constant part) for each to the p components.
- betas: (p, n_dim, n_dim) Tensor
Parabolic trend defined by a quadratic form for each component. The final model is
sigma_i(s) = sigma0s[i] + (s - s0)**2 * betas[i, :, :] * (s - s0)**2.
- Returns:
- function(L1, L2)
Methods
__call__
(S1, L1, S2, L2)
- class meslas.covariance.cross_covariances.UniformMixing(gamma0, sigmas)¶
Bases:
object
Create a uniform mixing cross-covariance.
- Parameters:
- gamma0: Tensor
Coupling parameter.
- sigmas: (p) Tensor
Vector of individual standard deviation for each to the p components.
- Returns:
- function(L1, L2)
Methods
__call__
(S1, L1, S2, L2)
meslas.covariance.heterotopic module¶
Code for multidimensional sampling. We will be considering multivariate random fields Z=(Z^1, …, Z^p). The term response index denotes the index of the component of the field we ate considering.
We will sometime use the word measurement point to denote a (location, response index) pair.
We will be using the notation conventions from the papers.
x’s will denote a location j’s will denote reponse a index
Uppercase for concatenated quantities, i.e. a big X is a vector of x’s.
First dimension of tensors represent the different samples/locations (batch dimension). Other dimensions are for the “dimensions” of the repsonse (or input domain).
THIS IS FOR HETEROTOPIC SAMPLING (most general form).
# TODO: Inmplement convenience methods for full sampling (all indices).
Conventions¶
Spatial locations will be denoted by s, capital letters for bunches. Response indices denoted by l. Couple of (locations, response indices) denoted by x.
- class meslas.covariance.heterotopic.FactorCovariance(spatial_cov, cross_cov, n_out)¶
Bases:
object
General (not necessarily stationary) separable covariance function.
- Parameters:
- spatial_cov: function(H)
Spatial covariance function.
- cross_cov: function(L1, L2)
Cross-covariance function.
- n_out: int
Number of output dimensions.
Methods
K
(S1, S2, L1, L2)Same as above, but for vector of measurements.
- K(S1, S2, L1, L2)¶
Same as above, but for vector of measurements.
- Parameters:
- S1: (M, d) Tensor
Spatial location vector. Note if d=1, should still have two dimensions.
- S2: (N, d) Tensor
Spatial location vector.
- L1: (M) Tensor
Response indices vector.
- L2: (N) Tensor
Response indices vector.
- Returns:
- K: (M, N) Tensor
Covariane matrix between the two sets of measurements.
- class meslas.covariance.heterotopic.FactorStationaryCovariance(spatial_cov, cross_cov, n_out)¶
Bases:
StationaryCovariance
Convenience class for specifiying a factor model.
- Parameters:
- spatial_cov: function(H)
Spatial covariance function.
- cross_cov: function(L1, L2)
Cross-covariance function.
- n_out: int
Number of output dimensions.
- class meslas.covariance.heterotopic.StationaryCovariance(factor_stationary_cov)¶
Bases:
object
Stationary covariance function.
- Parameters:
- factor_stationary_cov: function(H, L1, L2)
Covariance function. Only allow covariances that factor into a stationary spatial part that only depends on the euclidean distance matrix H and a purely response index component. L1 and L2 are the index matrix.
- n_out: int
Number of output dimensions.
Methods
K
(S1, S2, L1, L2)Same as above, but for vector of measurements.
- K(S1, S2, L1, L2)¶
Same as above, but for vector of measurements.
- Parameters:
- S1: (M, d) Tensor
Spatial location vector. Note if d=1, should still have two dimensions.
- S2: (N, d) Tensor
Spatial location vector.
- L1: (M) Tensor
Response indices vector.
- L2: (N) Tensor
Response indices vector.
- Returns:
- K: (M, N) Tensor
Covariane matrix between the two sets of measurements.
meslas.covariance.old module¶
Saving ideas from the first reflections about implementation.
- meslas.covariance.old.K_isotopic(X1, X2, J_full)¶
Compute the covariance matrices between all components of X1 and X2. Saves time since distance between each point are only computed once (would need to compute once for each response index otherwise.
- meslas.covariance.old.k(x1, x2, j1, j2)¶
Computes (cross)-covariance between a set of measures.
TODO: We only consider stationary, so maybe get rid of x1, x2 and just consider h.
- Parameters:
- x1: Tensor
Locations of first measurement.
- j1: Tensor
Response index of first measurement.
- x2: Tensor
Locations of second measurement.
- j2: Tensor
Response index of second measurement.
- Returns:
- Scalar Tensor
Cross-covariance between Z^j1(x1) and Z^j2(x2).
- meslas.covariance.old.mu(X, J)¶
computes mean vector for given set of locations/response indices.
- meslas.covariance.old.sample(X, J, seed=0)¶
Sample a multivariate random field at measurement points (X,J).
- Returns:
- Tensor
Shape (X.shape[0]), sampled values.
- meslas.covariance.old.sample_isotopic(X)¶
Sample all response components at given locations.
meslas.covariance.spatial_covariance_functions module¶
Basic covariance functions.
- meslas.covariance.spatial_covariance_functions.Matern32(lmbda, sigma=1.0)¶
Create a Matern32 covariance function.
Note that in the multivariate case, we usually set sigma to 1 and define the variances in the cross-covariance function.
- Parameters:
- lmbda: Tensor
Lengthscale parameter.
- sigma: Tensor
Standard deviation.
- Returns:
- function(H)
Matern32 covariance function.Take matrix of euclidean distances as input.


The HTML5 shiv is to help older versions of IE (less than IE9)understand html5 tags.
Example of HTML5 shiv in use. For more details read about it here.
View the source and see it in action in the head tag.


Welcome! This is a Markdown heading
And this is a paragraph in Markdown.
Bold,Italic text are supported.
A smaller heading
Make qutoes
Knowledge is power. --Francis Bacon
Lists are also supported
With markdown,we can enjoy:
- Fast typing (No more distraction)
- Quick formatting (Beautiful themes within)
- and human-readable syntax (Born feature of Markdown)
Ordered lists
- the first item
- the second item


(Defined in: jpgraph.php : 3914)
Class usage and Overview
This is the abstract base class for ticks. Specifying the common signature for both linear and logartihmic ticks.
Ticks are normally a property of the scale and can be accessed via the $graph->scale->ticks property.
Class Methods
Set color for tick marks
| Argument | Default | Description |
|
$aMajorColor
| | Major tick mark color |
|
$aMinorColor
|
''
| Minor tick mark color |
Description:
Specify tick mark colors. If no minor tick mark color is specified then it will be the same as the major tick marks color.
$graph->yaxis->scale->ticks->SetColor('red','black');
Specify a format callback function for labels
| Argument | Default | Description |
|
$aCallbackFuncName
| | name of function |
Description:
Specifies a callback function which will be called and given each tick label in turn as the argument. The callback function is supposed to return a proper formatted label to be displayed.
Note: There is a shortcut to this method through the Axis::SetLabelFormatCallback.
Note 2: The PHP function number_format() is often usefull in callback functions.
See also:
// Callback function for Y-scale. Use money format with
// a ',' to separate 1000:s
function yScaleCallback($aVal) {
return number_format($aVal);
}
// Short for $graph->yaxis->scale->ticks->SetFormatCallback()
$graph->yaxis->SetLabelFormatCallback('yScaleCallback');
Set format string for automatic labels
| Argument | Default | Description |
|
$aFormatString
| | Specify a printf() style format string |
|
$aDate
|
FALSE
| No description available |
Description:
Specify a printf() style format string.
Note: Can also be called trough the shortcut Axis::SetLabelFormatString()
See also:
$graph->yaxis->SetLabelFormatString("%-02.1f");
Specify side of axis for ticks
| Argument | Default | Description |
|
$aSide
| | Side |
Description:
Synonym for SetDirection().
Specify what side of the axis the tick marks should be drawn on. For Y -axis the possible directions are
and for X-axis the possible parameters are
See also:
$graph->xaxis->scale->ticks->SetSide(SIDE_UP);
Specify absolute size of tick marks in pixels
| Argument | Default | Description |
|
$aMajSize
| | Major tick size |
|
$aMinSize
|
3
| Minor tick size |
Description:
Specify absolute size of tick marks in pixels
$graph->xaxis->scale->ticks->SetSize(8,3);
Specify width of tick marks
| Argument | Default | Description |
|
$aWeight
| | Width (in pixels) |
Description:
Specify width of tick marks
$graph->xaxis->scale->ticks->SetWeight(2);
Hide the first tick mark
| Argument | Default | Description |
|
$aHide
|
true
| True=Hide the vbery first tick mark on the axis |
Description:
Hide the first tick mark on the axis.
See also:
$graph->xaxis->scale->ticks->SupressFirst();
Hide the last tick mark
| Argument | Default | Description |
|
$aHide
|
true
| True=Hide the last tick mark |
Description:
Hide the last tick mark on the axis
See also:
Hide all minor tick marks
| Argument | Default | Description |
|
$aHide
|
true
| True=Hide minor tick marks |
Description:
Hide all minor tick marks
Hide major tick marks
| Argument | Default | Description |
|
$aHide
|
true
| True=Hide major tick marks |
Description:
Hide major tick marks
See also:
Don't display the first zero label
| Argument | Default | Description |
|
$aFlag
|
true
| True=Hide zero-label |
Description:
Hide any label with numeric value == 0.0


{% load staticfiles %}
first web
Bloger
everyone has a story to tell
Categories
life
tech
Popular
About
{% for article in ariticle_list %}
{{ article.headline }}
10,000
{{ article.content }}
READMORE
{{ article.tag }}
{% endfor %}
Mugglecoding®


Select a Video
Logs
Filters
Actions
About
Videocode is a web inferface for viewing segments of video corresponding to annotated actions. Each full video must have a log file that indicate when annotated actions occur, including a start time and duration. Videocode parses the action log file and provides an interface for advancing the video player's playhead to a user-selected action.
Contact
Videocode was created by Steve Gomez using the video.js library. For comments or other feedback, contact Steve at steveg@cs.brown.edu.


|
BL3 SDK
0.0.1
Borderlands 3 Class Documentation
|
#include <BL3_GbxUI_classes.hpp>
Static Public Member Functions | |
| static UClass * | StaticClass () |
| Static Public Member Functions inherited from UGbxDataAsset | |
| static UClass * | StaticClass () |
| Static Public Member Functions inherited from UDataAsset | |
| static UClass * | StaticClass () |
| Static Public Member Functions inherited from UObject | |
| static FChunkedFixedUObjectArray & | GetGlobalObjects () |
| template<typename T > | |
| static T * | FindObject (const std::string &name) |
| static UClass * | FindClass (const std::string &name) |
| template<typename T > | |
| static T * | GetObjectCasted (std::size_t index) |
| static UClass * | StaticClass () |
Public Attributes | |
| bool | bHideMenusBeneath |
| bool | bShowsMouse |
| EGbxMenuInputMode | InputMode |
| EGbxMenuParentType | ParentType |
| bool | bAutoAttemptPop |
| bool | bUseMenuStashing |
| bool | bActivateIfPoppedTo |
| unsigned char | UnknownData00 [0x1] |
| class UDialogEvent * | IdleDialogEvent |
| class UDialogParameter * | IdleDialogTargetParamater |
| Public Attributes inherited from UDataAsset | |
| class UClass * | NativeClass |
| Public Attributes inherited from UObject | |
| void * | VTableObject |
| int32_t | ObjectFlags |
| int32_t | InternalIndex |
| class UClass * | Class |
| FName | Name |
| class UObject * | Outer |
Additional Inherited Members | |
| Public Member Functions inherited from UObject | |
| std::string | GetName () const |
| std::string | GetFullName () const |
| bool | IsA (UClass *cmp) const |
| void | ProcessEvent (class UFunction *function, void *parms) |
| void | ExecuteUbergraph (int EntryPoint) |
| Static Public Attributes inherited from UObject | |
| static FUObjectArray * | GObjects |
|
inlinestatic |
| bool bActivateIfPoppedTo |
| bool bAutoAttemptPop |
| bool bHideMenusBeneath |
| bool bShowsMouse |
| bool bUseMenuStashing |
| class UDialogEvent* IdleDialogEvent |
| class UDialogParameter* IdleDialogTargetParamater |
| EGbxMenuInputMode InputMode |
| EGbxMenuParentType ParentType |
| unsigned char UnknownData00[0x1] |


Pound-Yen Week Ahead Forecast: Technicals Suggest Further Gains
by Gary Howes- GBP/JPY gaps higher at market open
- Short-term outlook positive
- But gains ultimately capped towards 141.00
A strong start to the week for the Pound-to-Yen exchange rate is being tipped to lead to further gains in the short-term, according to new technical analysis.
Research from PIA First - a specialist technical analysis provider - shows the Pound is a buy against the Japanese Yen at the start of the new week.
"We look to Buy at 139.50," says a note from PIA First, noting the GBP/JPY to be "trading within the Wedge formation."
The timeframe being watched here is strictly short-term in nature, taking in coming hours and potentially the next few days.
The GBP/JPY exchange rate is currently trading at 140.43, but had fallen by close to a percent last week, leading to suggestions that the Pound was looking at a period of consolidation against its Japanese counterpart.
However, the Pound 'gapped' higher at the start of trade today, going from 139.37 at Friday's close to open the new week at 139.76:
"Positive overnight flows lead to an expectation of a firm open this morning," say PIA First. Such strong moves at the open suggest buying interest exists that can yield further gains, and the momentum has lasted through the day with foreign exchange traders buying Sterling against the Yen since the open.
"Further upside is expected and we look to set longs in early trade," said PIA First when they identified the latest price action.
But how much further can the Pound extend against the Yen?
We note that despite the strong short-term impetus, the exchange rate remains in consolidate mode, appearing to favour sideways trade between 138.90 at the bottom and 141.58 at the top.
We would therefore allow for the current impulse to rally towards 141.58, and await for signs a break of this ceiling has occurred before suggesting the Pound is due to run higher.
141.58 appears to be a solid level of support, and we would expect history to repeat and technical selling interest to pick up in the currency around this level. However, a break here could open the door to another impulse higher.


The TMReNameFile API call changes the name of a previously opened file specified by the 'file_handle'. The new name is given in the FileEntry structure 'fentry'. Only the 'name' and 'extension' portions of 'fentry' need be set before calling TMReNameFile. 'file_handle' must be set as a result of a call to TMOpenFile. Note that sub-directory names can not be changed to a file name and vise versa.
For a description of the above types, see the TMEX Type Descriptions.
Parameters
session_handle
Specifies the session handle returned from the API function TMExtendedStartSession that specifies the desired 1-Wire network port. This parameter is required by most TMEX API functions.
state_buffer
Specifies a pointer to a memory location that TMEX keeps all of the state information for the 1-Wire networks. This parameter is required by most TMEX API functions.
file_handle
Specifies a file handle of the file to rename.
fentry
Specifies a pointer to a memory location that contains a FileEntry structure. This structure must have the name and extension portions set before calling this API. This structure will contain the new name.
Return Value
1 => file name changed to new name
<0 => TMEX File Operations Error Return Code
See Also


Community
Developer Center
My Account
Open
Shift Origin
Management Console
My Applications
Create Application
Help
My Account
Community
Developer Center
Page not found
404
The page you requested was not found or may no longer exist
Management console
View your account
Get help
Contact us
if you feel you have reached this page in error.


Princess Lala
reset
sound on/off
Around The World MSX-Snabisch
How to play:
Use the arrow keys
to move the hero
,
rescue the princess
and avoid the monsters
,
the fire
hurts, but it helps against some monsters.
Credits:
Concept: Gregorio Robles +
LOSTDECADEGAMES
.
Graphics:
monster, background_game and hero
,
stone
,
princess
,
fire
,
tower
,
background.
Program: Victor Carrera.
Music:
Around The World MSX-Snabisch.


CrimPapers
Articles published on 30 September 2019
On 30 September 2019, 10 new articles were published in 8 journals.
Minority Gangs in Singapore Prisons: Prisonisation Revisited by Narayanan Ganapathy, Lavanya Balachandran
Predicting Risk in Criminal Procedure: Actuarial Tools, Algorithms, Ai and Judicial Decision-Making by Carolyn McKay
Policing's ‘meme Strategy’: Understanding the Rise of Police Social Media Engagement Work by Mark A. Wood
“The Group Must Come First Next Time”: Students’ Self-Assessment of Groupwork in A First-Year Criminal Justice Topic by Angela Melville
The Usefulness of A General Risk Assessment, the Static Risk Assessment (sra), in Predicting Pretrial Failure: Examining Predictive Ability Across Gender and Race by Michael Baglivio, Kevin T. Wolff, Katherine Jackowski
The Duality of Stigmatization: An Examination of Differences in Collateral Consequences For Black and White Sex Offenders by Vanessa Woodward Griffin, Mary Evans
Empathy in Investigative Interviews of Victims:how to Understand It, How to Measure It, and How to Do It? by Kristina Kepinska Jakobsen
Correction
Interviewing Persons With Mental Illness Charged With Murder Or Attempted Murder: A Retrospective Review of Police Interviews by Bobbie Clugston, Bob Green, Jane Phillips, Zara Samaraweera, Carolina Ceron, Cameron Gardner, Carla Meurk, Ed Heffernan
Fighting Industrial and Economic Espionage Through Criminal Law: Lessons to Be Learned From Austria and Switzerland


CombMSC: Combined Model Selection Criteria
Functions for computing optimal convex combinations of
model selection criteria based on ranks, along with utility
functions for constructing model lists, MSCs, and priors on
model lists.
| Version: |
1.4.2 |
| Depends: |
R (≥ 2.4.0) |
| Suggests: |
lattice, rgl |
| Published: |
2012-10-29 |
| Author: |
Andrew K. Smith |
| Maintainer: |
Andrew K. Smith <andrewsmith81 at gmail.com> |
| License: |
GPL-2 |
| NeedsCompilation: |
no |
| CRAN checks: |
CombMSC results |
Downloads:
Reverse dependencies:
Linking:
Please use the canonical form
https://CRAN.R-project.org/package=CombMSC
to link to this page.


- Source:
Methods
-
function addItem(item [, x] [, y] [, w] [, h]) -> module:wcLayoutTable~tableItem | Boolean -
Adds an item into the layout, expanding the grid size if necessary.
Parameters:
Name Type Argument Default Description item
external:jQuery~selector | external:jQuery~Object | external:domNode A DOM element to add. x
Number <optional>
0 The horizontal grid position to place the element. y
Number <optional>
0 The vertical grid position to place the element. w
Number <optional>
1 The number of horizontal cells this item will take within the grid. h
Number <optional>
1 The number of vertical cells this item will take within the grid. - Source:
Returns:
The table data element of the cell that contains the item, or false if there was a problem.- Type
- module:wcLayoutTable~tableItem | Boolean
-
function clear() -
Clears the contents of the layout and squashes all rows and columns from the grid.
- Source:
-
function finishBatch() -
Ends a batch operation.
- Source:
- See:
-
function gridAlternate() -> Boolean -
Gets, or Sets whether the table rows alternate in color based on the theme.
- Source:
Returns:
- Whether the grid alternates in color.- Type
- Boolean
-
function gridSpacing( [size]) -> Number -
Gets, or Sets the spacing between cell borders.
Parameters:
Name Type Argument Description size
Number <optional>
If supplied, sets the pixel size of the spacing between cells. - Source:
Returns:
- The current cell spacing in pixels.- Type
- Number
-
function item(x, y) -> module:wcLayoutTable~tableItem | Boolean -
Retrieves the table item at a given grid position, if it exists. Note, if an item spans multiple cells, only the top-left most cell will actually contain the table item.
Parameters:
Name Type Description x
Number The horizontal grid position. y
Number The vertical grid position. - Source:
Returns:
- The table item, or false if none was found.- Type
- module:wcLayoutTable~tableItem | Boolean
-
function itemStretch(x, y [, sx] [, sy]) -> Boolean -
Sets the stretch amount for a given table item. This is more reliable than assigning width and height style attributes directly on the table item.
Parameters:
Name Type Argument Description x
Number The horizontal grid position. y
Number The vertical grid position. sx
Number | String <optional>
The horizontal stretch for this grid. Use empty string to clear current value. Can be a pixel position, or a string with a 'px' or '%' suffix. sy
Number | String <optional>
The vertical stretch for this grid. Use empty string to clear current value. Can be a pixel position, or a string with a 'px' or '%' suffix. - Version:
-
- 3.0.0
- Source:
Returns:
- Success or failure. A failure generally means your grid position was a merged grid cell.- Type
- Boolean
-
function showGrid( [enabled]) -> Boolean -
Gets, or Sets whether the layout grid cells should draw an outline.
Parameters:
Name Type Argument Description enabled
Boolean <optional>
If supplied, will set the grid cell border visibility. - Source:
Returns:
- The current visibility state of the grid cells.- Type
- Boolean
-
function startBatch() -
Begins a batch operation. Basically it refrains from constructing the layout grid, which causes a reflow, on each item added. Instead, The grid is only generated at the end once wcLayoutTable.finishBatch is called.
- Source:
-
function tableItem_css(style [, value]) -> module:wcLayoutTable~tableItem | String -
This function is found in module:wcLayoutTable~tableItem.
A wrapper for jQuery's css function. Note: It is recommended that you use stretch if you intend to alter width or height styles.Parameters:
Name Type Argument Description style
String The style attribute to alter. value
String <optional>
The value of the attribute. If omitted, the current value of the attribute is returned instead of the tableItem instance. - Version:
-
- 3.0.0
- Source:
Returns:
- Self, for chaining, unless the value parameter was omitted.- Type
- module:wcLayoutTable~tableItem | String
-
function tableItem_stretch( [sx] [, sy]) -> module:wcLayoutTable~tableItem -
This function is found in module:wcLayoutTable~tableItem.
Sets the stretch amount for the current table item. This is more reliable than assigning width and height style attributes directly on the table item.Parameters:
Name Type Argument Description sx
Number | String <optional>
The horizontal stretch for this grid. Use empty string to clear current value. Can be a pixel position, or a string with a 'px' or '%' suffix. sy
Number | String <optional>
The vertical stretch for this grid. Use empty string to clear current value. Can be a pixel position, or a string with a 'px' or '%' suffix. - Version:
-
- 3.0.0
- Source:
Returns:
- Self, for chaining.- Type
- module:wcLayoutTable~tableItem
Type Definitions
-
typedef var tableItem -
The table item is an object that represents one cell in the layout table, it contains convenient methods for cell alteration and supports chaining. Its purpose is to remove the need to alter <tr> and <td> elements of the table directly.
- Version:
-
- 3.0.0
- Source:
Properties:
Name Type Description $
jQuery~Object If you truely need the table cell jQuery object, here it is. css
module:wcLayoutTable~tableItem_css Wrapper to alter jQuery's css function. stretch
module:wcLayoutTable~tableItem_stretch More reliable method for setting the table item width/height values. Example
myPanel.addItem(domNode).css('text-align', 'right').css('border', '1px solid black').stretch('100%', '100%');


| Modifier and Type | Class and Description |
|---|---|
class |
AllComparisonExpression |
class |
AnyComparisonExpression |
class |
BinaryExpression
A basic class for binary expressions, that is expressions having a left member and a right member
which are in turn expressions.
|
class |
BooleanValue
Every number without a point or an exponential format is a LongValue
|
class |
CaseExpression
CASE/WHEN expression.
|
class |
DateValue
A Date in the form {d 'yyyy-mm-dd'}
|
class |
DoubleValue
Every number with a point or a exponential format is a DoubleValue
|
class |
Function
A function as MAX,COUNT...
|
class |
InverseExpression
It represents a "-" before an expression
|
class |
JdbcParameter
A '?' in a statement
|
class |
LongValue
Every number without a point or an exponential format is a LongValue
|
class |
NullValue
A "NULL" in a sql statement
|
class |
StringValue
A string as in 'example_string'
|
class |
TimestampValue
A Timestamp in the form {ts 'yyyy-mm-dd hh:mm:ss.f .
|
class |
TimeValue
A Time in the form {t 'hh:mm:ss'}
|
class |
WhenClause
A clause of following syntax:
WHEN condition THEN expression.
|
| Modifier and Type | Field and Description |
|---|---|
private Expression |
CaseExpression.elseExpression |
private Expression |
InverseExpression.expression |
private Expression |
BinaryExpression.leftExpression |
private Expression |
BinaryExpression.rightExpression |
private Expression |
CaseExpression.switchExpression |
private Expression |
WhenClause.thenExpression |
private Expression |
WhenClause.whenExpression |
| Modifier and Type | Method and Description |
|---|---|
Expression |
CaseExpression.getElseExpression() |
Expression |
InverseExpression.getExpression() |
Expression |
BinaryExpression.getLeftExpression() |
Expression |
BinaryExpression.getRightExpression() |
Expression |
CaseExpression.getSwitchExpression() |
Expression |
WhenClause.getThenExpression() |
Expression |
WhenClause.getWhenExpression() |
| Modifier and Type | Method and Description |
|---|---|
static java.util.List<Expression> |
ExpressionVisitorBase.getChildren(Expression expr) |
| Modifier and Type | Method and Description |
|---|---|
static java.util.List<Expression> |
ExpressionVisitorBase.getChildren(Expression expr) |
void |
ExpressionVisitorBase.recur(Expression e) |
void |
CaseExpression.setElseExpression(Expression elseExpression) |
void |
InverseExpression.setExpression(Expression expression) |
void |
BinaryExpression.setLeftExpression(Expression expression) |
void |
BinaryExpression.setRightExpression(Expression expression) |
void |
CaseExpression.setSwitchExpression(Expression switchExpression) |
void |
WhenClause.setThenExpression(Expression thenExpression) |
void |
WhenClause.setWhenExpression(Expression whenExpression) |
void |
ExpressionVisitorBase.unhandled(Expression e) |
| Constructor and Description |
|---|
BinaryExpression(Expression leftExpression,
Expression rightExpression) |
InverseExpression(Expression expression) |
| Modifier and Type | Class and Description |
|---|---|
class |
Addition |
class |
BitwiseAnd |
class |
BitwiseOr |
class |
BitwiseXor |
class |
Concat |
class |
Division |
class |
Multiplication |
class |
Subtraction |
| Constructor and Description |
|---|
Addition(Expression lhs,
Expression rhs) |
BitwiseAnd(Expression lhs,
Expression rhs) |
BitwiseOr(Expression lhs,
Expression rhs) |
BitwiseXor(Expression lhs,
Expression rhs) |
Concat(Expression lhs,
Expression rhs) |
Division(Expression lhs,
Expression rhs) |
Multiplication(Expression lhs,
Expression rhs) |
Subtraction(Expression lhs,
Expression rhs) |
| Modifier and Type | Class and Description |
|---|---|
class |
AndExpression |
class |
OrExpression |
| Constructor and Description |
|---|
AndExpression(Expression lhs,
Expression rhs) |
OrExpression(Expression lhs,
Expression rhs) |
| Modifier and Type | Class and Description |
|---|---|
class |
Between
A "BETWEEN" expr1 expr2 statement
|
class |
EqualsTo |
class |
ExistsExpression |
class |
GreaterThan |
class |
GreaterThanEquals |
class |
InExpression |
class |
IsNullExpression |
class |
LikeExpression |
class |
Matches |
class |
MinorThan |
class |
MinorThanEquals |
class |
NotEqualsTo |
| Modifier and Type | Field and Description |
|---|---|
private Expression |
Between.betweenExpressionEnd |
private Expression |
Between.betweenExpressionStart |
private Expression |
Between.leftExpression |
private Expression |
InExpression.leftExpression |
private Expression |
IsNullExpression.leftExpression |
private Expression |
ExistsExpression.rightExpression |
| Modifier and Type | Field and Description |
|---|---|
private java.util.List<Expression> |
ExpressionList.expressions |
| Modifier and Type | Method and Description |
|---|---|
Expression |
Between.getBetweenExpressionEnd() |
Expression |
Between.getBetweenExpressionStart() |
Expression |
Between.getLeftExpression() |
Expression |
InExpression.getLeftExpression() |
Expression |
IsNullExpression.getLeftExpression() |
Expression |
ExistsExpression.getRightExpression() |
| Modifier and Type | Method and Description |
|---|---|
java.util.List<Expression> |
ExpressionList.getExpressions() |
| Modifier and Type | Method and Description |
|---|---|
void |
Between.setBetweenExpressionEnd(Expression expression) |
void |
Between.setBetweenExpressionStart(Expression expression) |
void |
Between.setLeftExpression(Expression expression) |
void |
InExpression.setLeftExpression(Expression expression) |
void |
IsNullExpression.setLeftExpression(Expression expression) |
void |
ExistsExpression.setRightExpression(Expression expression) |
| Modifier and Type | Method and Description |
|---|---|
void |
ExpressionList.setExpressions(java.util.List<Expression> list) |
| Constructor and Description |
|---|
EqualsTo(Expression lhs,
Expression rhs) |
GreaterThan(Expression lhs,
Expression rhs) |
GreaterThanEquals(Expression lhs,
Expression rhs) |
InExpression(Expression leftExpression,
ItemsList itemsList) |
MinorThan(Expression lhs,
Expression rhs) |
MinorThanEquals(Expression lhs,
Expression rhs) |
NotEqualsTo(Expression lhs,
Expression rhs) |
| Constructor and Description |
|---|
ExpressionList(java.util.List<Expression> expressions) |
| Modifier and Type | Class and Description |
|---|---|
class |
Column
A column.
|
| Modifier and Type | Field and Description |
|---|---|
private Expression |
Delete.where |
| Modifier and Type | Method and Description |
|---|---|
Expression |
Delete.getWhere() |
| Modifier and Type | Method and Description |
|---|---|
void |
Delete.setWhere(Expression expression) |
| Modifier and Type | Field and Description |
|---|---|
private java.util.List<Expression> |
Replace.expressions |
| Modifier and Type | Method and Description |
|---|---|
java.util.List<Expression> |
Replace.getExpressions()
A list of
Expression s (from a "REPLACE mytab SET col1=exp1, col2=exp2"). |
| Modifier and Type | Method and Description |
|---|---|
void |
Replace.setExpressions(java.util.List<Expression> list) |
| Modifier and Type | Class and Description |
|---|---|
class |
SubSelect
A subselect followed by an optional alias.
|
| Modifier and Type | Field and Description |
|---|---|
private Expression |
OrderByElement.expression |
private Expression |
SelectExpressionItem.expression |
private Expression |
PlainSelect.having |
private Expression |
Join.onExpression |
private Expression |
PlainSelect.where |
| Modifier and Type | Method and Description |
|---|---|
Expression |
OrderByElement.getExpression() |
Expression |
SelectExpressionItem.getExpression() |
Expression |
PlainSelect.getHaving() |
Expression |
Join.getOnExpression()
Returns the "ON" expression (if any)
|
Expression |
PlainSelect.getWhere() |
| Modifier and Type | Method and Description |
|---|---|
void |
OrderByElement.setExpression(Expression expression) |
void |
SelectExpressionItem.setExpression(Expression expression) |
void |
PlainSelect.setHaving(Expression expression) |
void |
Join.setOnExpression(Expression expression) |
void |
PlainSelect.setWhere(Expression where) |
| Modifier and Type | Field and Description |
|---|---|
private Expression |
Update.where |
| Modifier and Type | Field and Description |
|---|---|
private java.util.List<Expression> |
Update.expressions |
| Modifier and Type | Method and Description |
|---|---|
Expression |
Update.getWhere() |
| Modifier and Type | Method and Description |
|---|---|
java.util.List<Expression> |
Update.getExpressions()
The
Expression s in this update (as 'a' and 'b' in UPDATE col1='a', col2='b') |
| Modifier and Type | Method and Description |
|---|---|
void |
Update.setWhere(Expression expression) |
| Modifier and Type | Method and Description |
|---|---|
void |
Update.setExpressions(java.util.List<Expression> list) |


ERB1.8(1) ERB1.8(1) NAME erb - an embedded Ruby language interpreter SYNOPSIS erb1.8 [switches] [inputfile] DESCRIPTION erb interprets a Ruby code embedded text file. For example, erb enables you to embed a Ruby code to a HTML file. A Ruby block starts with `<%' and ends with `%>'. erb replaces the block with its output. If `<%' is followed by `=', eRuby replaces the block with a value of the block. If `<%' is followed by `#', the block is ignored as a comment. OPTIONS -x print ruby script -n print ruby script with line number -v enables verbose mode -d set debugging flags (set $DEBUG to true) -r library load a library -K kcode specifies KANJI code-set (euc or sjis) or UTF-8 (utf8) -S safe_level set $SAFE (0..4) -T trim_mode specify trim_mode (0..2) -P disregard the lin which starts in "%" SEE ALSO eruby(1) AUTHOR This document stands on eruby(1) which is written by Shugo Maeda<EMAIL_ADDRESS>April 2003 ERB1.8(1)


My Virtual Stream - Video Dashboard
Selected Files
Your browser does not support the video tag.
Mujhko Yaad Sataye Teri.mp4
Click to Select
Remove Noise
Make portrait to Landscape
Reporting Location:
Recommended Options For Visuals
Select External Audio File
Remove Default Audio
Sync Visual with External Audio
Recommended Options For Bits
Speaker Name/ Relation:
Headline(s):
Submit Selected files for review
merge files and submit button


This model contain the status, dates, author, template. The real content of the page can be found in the Content model.
Creates a QuerySet containing the ancestors of this model instance.
This defaults to being in descending order (root ancestor first, immediate parent last); passing True for the ascending argument will reverse the ordering (immediate parent first, root ancestor last).
Creates a QuerySet containing the immediate children of this model instance, in tree order.
The benefit of using this method over the reverse relation provided by the ORM to the instance’s children is that a database query can be avoided in the case where the instance is a leaf node (it has no children).
Creates a QuerySet containing descendants of this model instance, in tree order.
If include_self is True, the QuerySet will also include this model instance.
Creates a QuerySet containing siblings of this model instance. Root nodes are considered to be siblings of other root nodes.
If include_self is True, the QuerySet will also include this model instance.
Return the slug of the page depending on the given language.
If fallback is True, the slug will also be searched in other languages.
Return the title of the page depending on the given language.
If fallback is True, the title will also be searched in other languages.
Page manager provide several filters to obtain pages QuerySet that respect the page settings.
Content manager methods
PageAlias manager.
A collection of functions for Page CMS
Return a normalized url with trailing and without leading slash.
>>> normalize_url(None)
'/'
>>> normalize_url('/')
'/'
>>> normalize_url('/foo/bar')
'/foo/bar'
>>> normalize_url('foo/bar')
'/foo/bar'
>>> normalize_url('/foo/bar/')
'/foo/bar'
Page CMS functions related to the request object.


Sketch
MultiSketch
About
MultiSketch
allows to draw multiple sketches. Can the model recognize them all? See
the categories.
Model not ready. Preparing ... ❌
Classes not loaded. Loading ... ❌
Choose an algorithm ...
Bounding Boxes
Unsupervised Learning
How many drawings are in the canvas? (1-20)
Predict >>
<< Clear


Employee Table
Article name
Start date
End date
Work status
Desc of article
GOT
03-07-2020
04-08-2020
Completed
hdc
HIGH
05-06-2020
01-07-2020
Completed
acd
SEll
07-06-2020
05-07-2020
Inprogress
bdf
GIVE
06-06-2020
07-07-2020
Inprogress
upg


| Job | Time | Company | About |
|---|---|---|---|
| Devops Engineer | 20.04-Now | Cheep2Workshop | Sleep? |
| SRE Engineer | 19.08-Now | CQI - Services Team | Cloud,Systeam,CI/CD,Deploy |
| MIS Engineer | 17.10-19.08 | YAMAHA - Network Group | Desktop Support |
Windows
Linux
Shell
Network
GCP
Git
kubernetes
Docker
GO
Python
Liver's health
money


JavaScript is the new BASIC—a universal scripting language. CL-JavaScript allows you to add user scripting to your Common Lisp application without requiring your poor users to learn Common Lisp. It is a JavaScript to Common Lisp translator, runtime, and standard library. We are ECMAScript 3 compatible, with some of the ECMAScript 5 extensions.
By using the Lisp compiler to compile JavaScript (and by using some clever tricks for the things that Lisp normally isn't good at), this implementation manages to be faster than most of the 2009 generation of JavaScript engines. The new generation (V8, Jägermonkey) beats it by, depending on the benchmark, a factor 4 or so.
14-03-2012: Version 0.12.03: Fix CLISP incompatibility.
09-01-2012: Version
0.12.01: Follow changes
in parse-js,
add Function.prototype.bind
, getter/setter support,
small fixes.
08-12-2010: Version
0.10.12: Implements ECMA5-style
array, string, and Object
constructor methods, as well
as a JSON
object. Rough support for CommonJS
modules. Adds correct length
(arity) properties to
function objects.
15-11-2010: Version 0.10.11: The first release on the new project page. Our API can be considered more or less stable now, and there are no serious gaps left in our ECMAScript 3 support.
15-11-2010: It seems I have finally documented this library.
CL-JavaScript was created by Alan Pavičić, Iva Jurišić, and Marijn Haverbeke. It is released under a MIT-style licence.
Development takes place on github. Any releases we make are listed under News. The latest release is always linked from cl-javascript.tgz.
CL-JavaScript depends on parse-js, CL-PPCRE, and optionally local-time
(you won't have a Date
object if your ASDF can not find
local-time).
Because emulating IEEE 754 floating point special values (NaN, Infinity) in software is painfully inefficient, CL-JavaScript includes some non-portable code to directly use machine floats in SBCL and Allegro Common Lisp. There is fallback code present for other implementations, but since the developers don't develop on those, that might not be very well tested. It is recommended, if you really want to use the system on another implementation, to try and add native float support for that implementation.
When you have a problem, please either open an issue on github, or send the maintainer an e-mail.
First, load the system:
cl-user> (asdf:oos 'asdf:load-op :cl-js) cl-user> (use-package :cl-js)
We can start a JavaScript REPL to convince ourselves that yes, we really do have JavaScript in our Common Lisp.
cl-user> (js-repl) JS repl (#q to quit) > 1 + 1 2 > function fac(x) { return x <= 1 ? x : x * fac(x - 1); } [object Object] > fac(10) 3628800 > #q cl-user>
Well, that seems to work. Next up: defining our own library.
cl-user> (defparameter *mylib* (empty-lib)) cl-user> (add-to-lib *mylib* (.func "plusOne" (x) (1+ (to-number x))) (.object "numbers" (.value "one" 1) (.value "two" "2"))) cl-user> (with-js-env (*mylib*) (run-js "plusOne(numbers.two)")) 3
Note the to-number
call. This will invoke
JavaScripts number-conversion. For a library like this, you are, of
course, better off just doing something like this:
cl-user> (run-js " function plusOne(x){return x + 1;} var numbers = {one: 1, two: '2'};")
But, in general, what you want to do is write glue code, providing a JavaScript API for your application. For this, the library does its best to provide a practical interface for defining JavaScript environments.
function run-js (code &key (compile t) wrap-parse-errors optimize)
Runs the given code. code
can be a
string or a stream. compile
and optimize
determine whether the code should be compiled, and if, whether it
should be optimized, before it is run. When
wrap-parse-errors
is given, parse errors are wrapped in
js-condition
objects, and
can be caught by JavaScript catch
forms.
function run-js-file (file &key (compile t) wrap-parse-errors optimize external-format)
Runs the code from the given file. The keyword
arguments are passed through to run-js
, except for
external-format
, which is passed to
open
.
function js-repl (&key (handle-errors t))
Starts an interactive JavaScript REPL. If
handle-errors
is t
, all errors will be
caught and printed. If it is nil
, all errors are let
through. If it has any other value, only errors of type js-condition
are handled and
printed.
Values in a JavaScript environment are represented as follows:
null
and undefined
are the Lisp
keywords :null
and :undefined
. The type
js-null
is provided, which includes both these values.
js-null
is also a predicate function (shortcut for
(typep x 'js-null)
).
Booleans are Lisp booleans (nil
and t
).
Numbers are represented as Lisp numbers (integers and
double-floats). On implementations where no support for representing
NaN and Infinity as floats has been added, these are represented by
the values :NaN
, :Inf
, and
:-Inf
. The js-number
type helps abstract
this—matching only numbers on those implementations where no
keywords are needed, and both numbers and these three keywords on
others.
The macros nan
, infinity
, and
-infinity
are provided to create special number values.
The predicate is-nan
can be used to check whether a
value is NaN.
Strings are plain Lisp strings.
Objects are a custom struct type—js-obj
. The
js-func
and js-array
types are subtypes of
this.
function js-obj (&optional prototype type)
Creates a JavaScript object. Optionally, a prototype
id (more about that later) or prototype
object, and a type (as
in define-js-obj
) can be
given.
function js-prop (obj propname)
Retrieves a property from an object. A
setf
variant is provided for setting properties.
function js-array (vector)
Creates a new JavaScript array. vector
must be an adjustable vector with a fill pointer.
function js-array-length (array)
Retrieve the length of a JavaScript array.
function js-aref (array index)
Access an element in an array. There is a
setf
variant as well.
macro js-call (func this &rest args)
Call a JavaScript function value.
macro js-method (object name &rest args)
Call a method in a JavaScript object.
macro js-func (args &body body)
Creates a JavaScript function object from a
lambda
-like specification. Inside the body
this
will be bound, in addition to the specified
arguments. The argument list is mangled to conform to JavaScript
calling conventions—each paramter will become optional, with an
implicit default of :undefined
, unless you specify your
own default. A &rest
clause is allowed, but
&key
and &optional
can't be
used.
JavaScript exceptions are raised as Lisp conditions of the
js-condition
type. A JavaScript catch
block will catch these (and only these).
method js-condition-value (condition)
Returns the JavaScript value associated with the given condition.
function js-error (type message &rest args)
Raises a JavaScript error (value of type
Error
) . type
must be prototype id
(:error
, :type-error
,
:syntax-error
, :range-error
,
:uri-error
, and :eval-error
are provided
by the standard lib). message
can be a format string
into which args
will be interpolated.
variable *env*
The variable that holds the current environment.
Starts out unbound (though run-js
and js-repl
will give it a
default value automatically when they find it unbound).
macro with-js-env ((&rest libraries) &body body)
Runs body
with *env*
bound to a fresh environment,
which was created by loading the standard library plus the given
libraries.
function create-env (&rest libraries)
Creates a new environment, loading the given libraries.
function add-to-env (env &rest libraries)
Extends env
with the given libraries,
then returns it.
macro void (&body body)
Executes the body, returns
:undefined
.
function to-string (value)
function to-number (value)
function to-integer (value)
function to-boolean (value)
Invokes the standard JavaScript type conversion algorithm on the given value.
CL-JavaScript works with first-class libraries. These are specifications of a set of variables, prototypes, and constructors that can be instantiated into an environment to make their definitions available there.
function empty-lib (&optional name)
Returns a fresh, empty library specification object. The name is only used for the printed representation of the object.
macro add-to-lib (lib &body body)
Add the definitions found in body
to
the given library.
Defining the content of a library is done with a family of macros
starting with a period. These all take a &body
in
which lists starting with a keyword can be used to set options. For
example:
(.object "Math" (:slot-default :noenum) (.value "E" (exp 1)))
Here, the :slot-default
option is given, causing all
slots defined in the Math
object to not be enumerable.
All defining forms that allow slots to be defined inside of them
accept the :slot-default
option. All forms that define
slots accept the :slot
option. Both of these expect a
list of keywords (:enum
, :noenum
,
:ro
, :rw
, :del
,
:nodel
) which specify slot properties (enumerabe,
read-only, and deletable). Properties that are not specified are
inherited from the context (as an under-the-covers special
variable). By default, properties are enumerable, read-write, and
deletable, except in prototypes, where they are not enumerable.
macro .prototype (id &body body)
Creates a new prototype and associates it with the
given ID. All non-option forms appearing in the body are evaluated,
and can add properties to the prototpe. A :parent
option (which should hold a prototype-id) can be used to make this
prototype inherit from another prototype.
macro .constructor (name args &body body)
Declares a constructor with the given argument list
(interpreted as in js-func
) and
body. A :prototype
option may appear in the body, and
is used to determine what prototype objects created with this
constructor should get. If it holds a keyword, that is the ID of the
prototype to use, if it holds a list of slot definitions, a new prototype
object is created and given those slots.
If this constructor should not create regular
objects, you can give it a :type
option containing the
name of a type defined with define-js-obj
. When the
constructor is invoked with new
, you will then get an
object of that type as this
variable, rather than a
plain object.
Finally, a :properties
option can be
passed, within which properties for the constructor itself can be
defined (as in String.fromCharCode
).
macro .value (name &body value)
Defines a simple value property. When this appears at the top level, it defines a global variable. When it appears inside another form, it adds a property to that definition.
macro .object (name &body body)
This defines an object property. The
body
contains property definitons for this object, and
optionally a :parent
option, as in .prototype
, to give the object a
specific prototype.
macro .func (name args &body body)
Adds a function (top-level) or method.
args
is an argument list as in js-func
. The given body becomes the
body of the function. A :properties
option can be used
to give the function object itself properties.
macro .active (name &body body)
This macro is used to add 'active' properties to
objects. Active properties are things that can be approached like
regular properties, but execute some function when read or written.
The :read
and :write
options can be used
to specify the bodies of the functions, like this:
(.active "preciousProperty" (:read () "my precious!") (:write (value) (js-error :error "How dare you touch my precious!")))
(The argument lists are compulsory, even though they are always the same.)
macro .active-r (name &body body)
This is a shortcut for an .active
property with only a
:read
entry (meaning writes to the slot will be
ignored).
The following two macros should not be used inside library definitions, but at the top level (they are global in their effect).
macro define-js-obj (name &body slots)
Defines a struct type fit for holding JavaScript
object values. The way to use this is to specify the type name you
use here as the :type
option of a .constructor
form, and then
fill in your custom slots in this constructor.
macro integrate-type (specializer &body options)
A type defined by define-js-obj
is a 'real'
JavaScript object, to which clients can add properties. Sometimes,
it is preferable to use Lisp objects 'as they are', because wrapping
is too expensive. This macro allows you to do that.
To be able to use a value as a JavaScript value, a
bunch of methods have to specialized on it, so that JavaScript
operations (typeof
, String(x)
) will know
what to do with it.
specializer
should be a valid method
specializer that can be used to recognize the type you want to
integrate.
All options appearing under this macro can take
either the form of a single value, or an argument list (of a single
symbol) and then a body. The :string
option determines
how the type is converted to string (default is "[object
Object]"
). The :number
option converts to
numbers (default NaN
). The :boolean
option
to booleans (default true
). typeof
is used
to determine the string returned by the typeof
operator
(default "foreign"
). When a :proto-id
form
is given, it is used to locate a prototype in which properties for
these values are looked up.
An example:
(integrate-type complex (:number (val) (realpart val)) (:string (val) (format nil "~a+~ai" (realpart val) (imagpart val))) (:typeof "complex") (:proto-id :number)) ;; or add a custom prototype /* ... and in your library ... */ (.func "complex" (real imag) (complex (to-number real) (to-number imag)))
variable *printlib*
A tiny library value containing only a
print
function, which will write its arguments to
*standard-output*
.
function requirelib (hook)
When called, returns a library object that
implements the CommonJS-style require
operator.
hook
should be a funcallable object which, given a
string, verifies that string as a module specifier, and returns a
pathname under which the module text can be found. Or, if you need
modules that aren't simply files, it can return two values—a
canonical module identifier (must be comparable with
equal
) and a function that, given this identifier,
returns either a stream or a string containing the module's
text.
A trivial hook (without error-checking or safety)
could simply do (merge-pathnames spec
"/my/script/dir/x.js")
. If you do want to do error-checking,
use js-error
to complain when a
specifier is not acceptable.
Note that CL-JavaScript's implementation of CommonJS
modules does not sandbox the modules in any serious way—it simply
wraps them in a function. This means that direct,
var
-less assignments will create top-level
variables, and the module can mangle existing values (say,
Object.prototype
) all it wants. For well-behaved
modules, this shouldn't be an issue.