Hermes RESTful API
Access Hermes functionalities using RESTful API.
Version: 1.0.0
BasePath:/corvus/api
All rights reserved
http://apache.org/licenses/LICENSE-2.0.html
Access
[ Jump to Models ]
Table of Contents
Up
get /message/history/ebms
Get ebMS message history (messageHistoryEbmsGet)
The get ebMS message history API queries for messages which
match the passed in query parameters.
Query parameters
message_id (optional)
Query Parameter —
message_box (optional)
Query Parameter —
conversation_id (optional)
Query Parameter —
cpa_id (optional)
Query Parameter —
service (optional)
Query Parameter —
action (optional)
Query Parameter —
status (optional)
Query Parameter —
limit (optional)
Query Parameter —
Return type
Example data
Content-Type: application/json
{
"message_ids" : [ {
"id" : "aeiou",
"timestamp" : 123,
"status" : "aeiou"
} ]
}
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the
Content-Type response header.
Responses
200
A list of message IDs, which identifies a list of messages
matching the passed in query parameters.
inline_response_200_1
500
Unexpected error
Error
Up
post /message/history/ebms
Reset message delivery status (messageHistoryEbmsPost)
The reset message status API resets a message's status to
undelivered. Note that the only support action is 'reset'.
Request body
Return type
Example data
Content-Type: application/json
{
"success" : true,
"id" : "aeiou"
}
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the
Content-Type response header.
Responses
200
Whether the deletion is successful or not
ActionResult
500
Unexpected error
Error
Up
get /message/history/ebms
Get ebMS message history (messageHistoryEbmsGet)
The get ebMS message history API queries for messages which
match the passed in query parameters.
Query parameters
message_id (optional)
Query Parameter —
message_box (optional)
Query Parameter —
conversation_id (optional)
Query Parameter —
cpa_id (optional)
Query Parameter —
service (optional)
Query Parameter —
action (optional)
Query Parameter —
status (optional)
Query Parameter —
limit (optional)
Query Parameter —
Return type
Example data
Content-Type: application/json
{
"message_ids" : [ {
"id" : "aeiou",
"timestamp" : 123,
"status" : "aeiou"
} ]
}
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the
Content-Type response header.
Responses
200
A list of message IDs, which identifies a list of messages
matching the passed in query parameters.
inline_response_200_1
500
Unexpected error
Error
Up
post /message/history/ebms
Reset message delivery status (messageHistoryEbmsPost)
The reset message status API resets a message's status to
undelivered. Note that the only support action is 'reset'.
Request body
Return type
Example data
Content-Type: application/json
{
"success" : true,
"id" : "aeiou"
}
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the
Content-Type response header.
Responses
200
Whether the deletion is successful or not
ActionResult
500
Unexpected error
Error
Up
get /message/receive/ebms
Get a list of received ebMS message (messageReceiveEbmsGet)
The get unread ebMS messages endpoints queries for the list of
messages that has been received for the specified partnership.
If the parameter include_read is true, only unread messages
will be returned.
Query parameters
partnership_id (required)
Query Parameter —
include_read (optional)
Query Parameter —
Return type
Example data
Content-Type: application/json
{
"message_ids" : [ {
"id" : "aeiou",
"timestamp" : 123,
"status" : "aeiou"
} ]
}
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the
Content-Type response header.
Responses
200
A list of message IDs, which identifies a list received
messages for the specified partnership. Note that upon query,
the list of returned messages will be marked as read; which means
it will not be returned next time the same endpoint is invoked
unless include_read parameter is true.
inline_response_200_1
500
Unexpected error
Error
Up
post /message/receive/ebms
Get ebMS message by identifier (messageReceiveEbmsPost)
The get ebMS message by identifier endpoint queries Hermes server for the ebMS
message identified by the specified identifier.
Request body
Return type
Example data
Content-Type: application/json
{
"cpa_id" : "aeiou",
"payloads" : [ {
"payload" : "aeiou"
} ],
"service" : "aeiou",
"conversation_id" : "aeiou",
"action" : "aeiou",
"to_party_id" : "aeiou",
"id" : "aeiou",
"from_party_id" : "aeiou",
"timestamp" : 123,
"status" : "aeiou"
}
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the
Content-Type response header.
Responses
200
The message identified by the specified identifier
EbmsReceivedMessage
500
Unexpected error
Error
Up
get /message/send/ebms
Query for the status of a ebMS message sending request (messageSendEbmsGet)
The query ebMS message status endpoints queries for the status of a previous
message sending request.
Query parameters
id (required)
Query Parameter —
Return type
Example data
Content-Type: application/json
{
"message_id" : "aeiou",
"status" : "aeiou"
}
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the
Content-Type response header.
Responses
200
Message ID and status
MessageSendStatus
500
Unexpected error
Error
Up
post /message/send/ebms
Send an ebMS message (messageSendEbmsPost)
The send ebMS message endpoint requests Hermes server to send a message.
The message should have its parameters fitting a valid partnership configured
at Hermes server before sending.
Request body
Return type
Example data
Content-Type: application/json
{
"id" : "aeiou"
}
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the
Content-Type response header.
Responses
200
The same message ID that is passed in with the message.
Identifier
500
Unexpected error
Error
Up
delete /partnership/ebms
Delete an ebMS partnership (partnershipEbmsDelete)
The delete ebMS partnership endpoint remove the specified partnership
in Hermes ebMS plugin.
Return type
Example data
Content-Type: application/json
{
"success" : true,
"id" : "aeiou"
}
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the
Content-Type response header.
Responses
200
Whether the deletion is successful or not
ActionResult
500
Unexpected error
Error
Query ebMS partnership (partnershipEbmsGet)
The query ebMS partnership endpoint returns all partnerships set up
in Hermes ebMS plugin.
Return type
Example data
Content-Type: application/json
{
"partnerships" : [ {
"cpa_id" : "aeiou",
"sign_certicate" : "",
"duplicate_elimination" : "aeiou",
"retries" : 123,
"message_order" : "aeiou",
"ack_requested" : "aeiou",
"signed_ack_requested" : "aeiou",
"service" : "aeiou",
"sign_requested" : true,
"action" : "aeiou",
"transport_endpoint" : "aeiou",
"disabled" : true,
"id" : "aeiou",
"retry_interval" : 123
} ]
}
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the
Content-Type response header.
Responses
200
An array of partnership objects
inline_response_200
500
Unexpected error
Error
Up
post /partnership/ebms
Create an ebMS partnership (partnershipEbmsPost)
The create ebMS partnership endpoint creates a partnership in Hermes
server using the parameters.
Request body
Return type
Example data
Content-Type: application/json
{
"id" : "aeiou"
}
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the
Content-Type response header.
Responses
200
A partnership ID
Identifier
500
Unexpected error
Error
Up
get /message/receive/ebms
Get a list of received ebMS message (messageReceiveEbmsGet)
The get unread ebMS messages endpoints queries for the list of
messages that has been received for the specified partnership.
If the parameter include_read is true, only unread messages
will be returned.
Query parameters
partnership_id (required)
Query Parameter —
include_read (optional)
Query Parameter —
Return type
Example data
Content-Type: application/json
{
"message_ids" : [ {
"id" : "aeiou",
"timestamp" : 123,
"status" : "aeiou"
} ]
}
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the
Content-Type response header.
Responses
200
A list of message IDs, which identifies a list received
messages for the specified partnership. Note that upon query,
the list of returned messages will be marked as read; which means
it will not be returned next time the same endpoint is invoked
unless include_read parameter is true.
inline_response_200_1
500
Unexpected error
Error
Up
post /message/receive/ebms
Get ebMS message by identifier (messageReceiveEbmsPost)
The get ebMS message by identifier endpoint queries Hermes server for the ebMS
message identified by the specified identifier.
Request body
Return type
Example data
Content-Type: application/json
{
"cpa_id" : "aeiou",
"payloads" : [ {
"payload" : "aeiou"
} ],
"service" : "aeiou",
"conversation_id" : "aeiou",
"action" : "aeiou",
"to_party_id" : "aeiou",
"id" : "aeiou",
"from_party_id" : "aeiou",
"timestamp" : 123,
"status" : "aeiou"
}
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the
Content-Type response header.
Responses
200
The message identified by the specified identifier
EbmsReceivedMessage
500
Unexpected error
Error
Up
get /message/send/ebms
Query for the status of a ebMS message sending request (messageSendEbmsGet)
The query ebMS message status endpoints queries for the status of a previous
message sending request.
Query parameters
id (required)
Query Parameter —
Return type
Example data
Content-Type: application/json
{
"message_id" : "aeiou",
"status" : "aeiou"
}
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the
Content-Type response header.
Responses
200
Message ID and status
MessageSendStatus
500
Unexpected error
Error
Up
post /message/send/ebms
Send an ebMS message (messageSendEbmsPost)
The send ebMS message endpoint requests Hermes server to send a message.
The message should have its parameters fitting a valid partnership configured
at Hermes server before sending.
Request body
Return type
Example data
Content-Type: application/json
{
"id" : "aeiou"
}
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the
Content-Type response header.
Responses
200
The same message ID that is passed in with the message.
Identifier
500
Unexpected error
Error
Query API server status (statusGet)
The status endpoint returns the health status of the API server.
It also returns the current timestamp and current version of the
API server. No parameters are needed.
Return type
Example data
Content-Type: application/json
{
"server_time" : 123,
"status" : "aeiou"
}
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the
Content-Type response header.
Responses
200
Hermes API server status
Status
500
Unexpected error
Error
[ Jump to Methods ]
Table of Contents
ActionResult
EbmsMessageSendRequest
EbmsReceivedMessage
Ebms_Partnership
Error
Identifier
inline_response_200
inline_response_200_1
MessageSendStatus
MessageStatusReset
Payload
ReceivedMessageIdentifier
Status
id (optional)
success (optional)
Boolean Whether the action requested is success
partnership_id (optional)
String ID of partnership to refer to for the message to be sent.
from_party_id (optional)
String From Party ID of the message to be sent.
to_party_id (optional)
String From Party ID of the message to be sent.
conversation_id (optional)
String Conversation ID of the message to be sent.
payload (optional)
String Payload to be attached with the message, should be Base64 encoded.
id (optional)
String Message ID of the message received.
cpa_id (optional)
String CPA ID of the message received.
service (optional)
String Service of the message received.
action (optional)
String Action of the message received.
from_party_id (optional)
String From Party ID of the message received.
to_party_id (optional)
String From Party ID of the message received.
conversation_id (optional)
String Conversation ID of the message received.
timestamp (optional)
Integer Message timestamp (Unix timestamp).
status (optional)
String Status of the message received.
payloads (optional)
array[Payload] Payload to be attached with the message, should be Base64 encoded.
id (optional)
String Unique ID of partnership.
cpa_id (optional)
String CPA ID field in ebMS contract.
service (optional)
String Service field in ebMS contract.
action (optional)
String Action field in ebMS contract.
disabled (optional)
Boolean Whether this partnership is disabled.
transport_endpoint (optional)
String Transport endpoint of the partnership.
ack_requested (optional)
String Whether acknowledgement is required.
signed_ack_requested (optional)
String Whether signed acknowledgement is required.
duplicate_elimination (optional)
String Whether duplicate elimination is required.
message_order (optional)
String Whether message order is guaranteed.
retries (optional)
Integer Number of retries for delivery.
retry_interval (optional)
Integer Number of seconds to wait until retry.
sign_requested (optional)
Boolean Whether digital signature is required.
sign_certicate (optional)
byte[] Base64 encoded string of the signing certificate. format: byte
code (optional)
message (optional)
message_id (optional)
status (optional)
String Send status of the message
message_id (optional)
action (optional)
String Action to be taken to the message (only support 'reset' now)
payload (optional)
String Payload to attached with the message, Base64 encoded.
id (optional)
timestamp (optional)
Integer Message timestamp (Unix timestamp)
status (optional)
status (optional)
String Current status of Hermes API server.
server_time (optional)
Integer Current datetime in Hermes server (Unix timestamp)


Laziness: The quality that makes you go to great effort to reduce overall energy expenditure.
In keeping with Larry Wall’s virtues of a programmer, I seek to be as lazy as possible while still achieving my goals. Working smarter, not harder, is fundamental in every program I write - shouldn’t it be fundamental in how I behave? My deepest fear is working incredibly hard on something that creates no value or helps no one at all. At the end of the day, am I tired because I changed the world, or because I developed carpal tunnel syndrome refreshing my Facebook feed?
I’m employed full-time at Paperless Post, where I work across teams on a wide variety of projects. I spend evenings and weekends running Girl Develop It, organizing Developers for Good, and advising Hirelite. I also exercise and watch teen dance movies of low artistic caliber regularly and eat dessert every day.
Simply put, I work a lot and I get a lot done. Despite that productivity, I recently found myself unable to keep up with even important emails, and on edge about relationships that might not use my time effectively. I’m familiar with techniques like Getting Things Done and Pomodoro, but I hesitate to adopt any entirely new method without fully understanding what could be improved about my own.
So, in an effort to understand my time’s ROI, I turned to data. I tried several time-tracking tools for a couple of hours each on a Sunday while I did remote volunteer work. The free tool that was easiest to use and gave me the most freedom in analyzing my information was Toggl. Thanks to web, desktop, and mobile apps, I was able to bring time tracking into all aspects of my life.
I have a workspace for each significant obligation in my life - e.g. Paperless Post, Girl Develop It, Developers for Good & Volunteering, Personal. I use Projects to track the type of work I’m doing - e.g. Analytics, DBA, Product, Finance, Admin, Relaxation. I track significant emails or questions I answer, what I’m debugging, coding, or fixing, how long my meetings, calls, and Ohours take, and just about everything else. When I change windows on my desktop and may be off-task, the Auto-pilot Toggl app sweetly asks “WTF are you doing?” … “Click to change project”, making it easy to stay honest.
From this meticulous data collection, I’ve learned a few things about productivity:
You can’t manage what you don’t measure.
I recently had the feeling that I was doing way too much X and not enough Y, and I was not amused. Every time an X task came up, I developed a wrinkle. After one week of time tracking, I saw I really was doing a ton of X. I felt validated. I was less emotional about the problem, and in the next week, I also gave myself freedom to delay or delegate many X tasks in pursuit of Y tasks. I’m working with my team to better manage X tasks and in the meantime, I’m more efficient and feel in control of them. I have irrefutable evidence about just how demanding X work is. As we try different solutions, we’ll also know exactly how much they help.
Good data (tracking time as you go) is extremely important.
Your planning estimates and guesses afterward will always be wrong, and good data is fundamental to any data-driven decision making. If you think you’re good at these estimates, test yourself. Then email me how hilariously wrong you were, and we’ll chuckle.
Tracking time increases focus and limits context switching.
Tracking your time makes you more aware of what you’re specifically trying to accomplish, so you’re less likely to abandon one task for another. Maybe you only actually get to work 25 hours out of the 40 hours you’re at a work. If you need to track what you’re doing, you’ll feel compelled to make use of dead time you might have spent doing the worst kind of context switching - pretending to multitask.
Time is your biggest asset. Knowing where it goes benefits you more than anyone else.
I think a strong component of this experiment’s success has been that I’m doing it for myself. I have the freedom to show others the summary or the breakdown of my time if I’d like, but this isn’t a report that goes directly to my boss or determines my paycheck. I have the freedom to be completely honest. My priority is clean, accurate data and a true reflection of how I spend time, not convincing some other person that I’m working a lot.
Overall, I’ve found time tracking incredibly helpful for my focus and in helping me determine which time investments are worthwhile. I’ve also noticed trends in behavior that I’ve discussed with coworkers so we can work together to boost productivity.
What methods do you use to get things done? How do gauge your own effectiveness? Do your methods work for both short and long-term improvement?
Notes:
One of the reasons I chose Toggl was for their completely free basic features plan. Most other services were unpleasant to use, less functional, or only offered a 30-day free trial, which I knew from experience might not be enough time. Call me old-fashioned, but I just can’t commit to something in every aspect of my life when it’s guaranteed to dump me in a month.


Murble's unique navigational skills have earned him a special prize - his travel plans will be decided for him by the organisers, who will instruct him on exactly which tickets to buy, lest he accidentally try to route himself via Iceland or - even worse - Glasgow.
Alfriston is most easily reached along a lane that turns south from the A27 road between Polegate and Lewes. Here's a map. If driving from London or anywhere north or west of there, head for Brighton and then go east on the A27. If arriving at Dover or Folkestone, follow signs to Ashford, then Rye, Hastings, Eastbourne, and then follow the A27.
Ferries run between Newhaven and Dieppe and Le Havre. From Newhaven harbour, either take a train to Lewes and then to Berwick, or drive to Alfriston via Seaford. See the map link above. Those who are feeling particularly adventurous might like to row from France to the beach at Coombe Haven and then walk five miles up the valley.
There are also ferries between Dover and Calais/Dunkerque. Rowing across that particular part of the Channel is not recommended, due to drunken Elbonian tanker captains.
The nearest station is Berwick (that's Berwick, Sussex, not Berwick-on-Tweed), two miles north of Alfriston. There is a local bus, although we don't yet know how often it runs - but if the bus isn't convenient, we will arrange something. There are direct trains from London Victoria, Gatwick Airport, Brighton, and Ashford International, although in all cases it's better to get the first train to either Berwick, Brighton or Lewes (or Eastbourne if coming from the east) and change if necessary.
The nearest major airport is Gatwick. From there you can either hire a car, or catch a train.
Bus services are somewhat chaotic and infrequent :-) The local Cuckmere Community Bus service, run by volunteers, has a small fleet of minibuses. We expect to hire one or two of these for trips and also maybe to get people to the start of walks without the usual hassle of finding enough cars.


What is this?
Welcome to our Flask App!
Where would you like to go?
About Page
Meet the Team!
See the Data!


Dengue cases soar to record high in Pakistan
ISLAMABAD: A record-breaking 44,000 people have been infected with mosquito-borne dengue in Pakistan this year, a senior health official said on Wednesday (Nov 6), as increased outbreaks linked to rising temperatures and erratic rainfall ravage other parts of Asia.
Dr Rana Safdar, a senior official at the National Institute of Health (NIH), told AFP the figure is a huge leap from the previous record of 27,000 infections in 2011.
Safdar said 66 people had been killed by the disease so far in 2019, compared to 370 in 2011.
He blamed climate change for the surge, but would not elaborate. The government was "employing all available resources at its disposal to contain the problem", he said.
Physician Dr Mahseema Siddique, who treats dengue patients, blamed the government for the rise in cases, saying local authorities in Punjab and Islamabad, in particular, had failed to take precautions such as covering up water reservoirs or spraying anti-dengue chemicals.
"They woke up only after hundreds of people got infected and that was too late. There are a large number of areas where spray teams could not make it," he said.
The highest number of patients was recorded in the capital Islamabad and neighbouring garrison city of Rawalpindi, where 12,433 people were found infected with the virus.
Dengue is transmitted mainly by the Aedes Aegypti mosquito, which thrives in densely-populated tropical climates and breeds in stagnant pools of water.
Mosquitoes pick up the virus from infected humans - even asymptomatic ones - and pass it along to other people through bites.
Infections have steadily climbed across the globe since the 1970s due to rising temperatures and irregular monsoon rains linked to climate change, which allow for ideal mosquito breeding conditions.
But this year outbreaks have rampaged through Southeast Asia in particular, infecting hundreds of thousands, killing hundreds, and crippling health care systems as governments struggle to contain the untreatable virus.
Dengue is mostly found in crowded areas, and breakneck urbanisation across the globe has helped the virus thrive.
Dubbed "breakbone fever", it inflicts suffers with intense flu-like symptoms: severe headache, pain behind the eyes, full-body aches, high fever, nausea, vomiting, swollen glands or rash.


Home
Players
Create
About
Name
Team
Age
Jersey Number
Position
Height
Weight
Championships Won
Points Per Game
Steals Per Game
Blocks Per Game
Rebounds Per Game
Fouls Per Game
Assist Per Game
Free Throw %
Kobe Bryant
Lakers
42
24
Shooting Guard
6 Feet, 6 Inches
206
5
37
4
5
8
2
7
84%
Michael Jordan
Bulls
60
23
Shooting Guard
6 Feet, 6 Inches
204
6
32
4
7
5
4
9
87%


[% INCLUDE components/loader.html %]
All the information you provide on this page will be sent, recorded and made publicly available on the global perfSONAR Lookup Service. For privacy reasons, we recommend you use a role or group name and related email address to be registered. Any personal information you would provide will be on your own responsibility and will by no means represent an obligation for the perfSONAR project. See our Privacy Policy for more information.
I agree to the perfSONAR Privacy Policy


--- layout: page section: media title: Media image: feature: bogong-cover.jpg ---
Sydney North Region's 90s Kid Moot
Victorian Rover Scouts blog (mirror)
World Moot Canada, Brad Peters' Experience
Australian Rover Scouts website (mirror)
WF Waters Rover Service Award acceptance
Scouting Service Lauded
Knox Leader, 24 February 2015 (mirror)


+Need
+relation
s. Note that this does not
enforce any requirements by itself, it only returns an error message if the
mis>
message is explicitly called, e.g. by GUI functions. See
also Database.
(rel nr (+Need +Key +Number)) # Item number is mandatory
+Number
+relation
. Accepts an optional argument
for the fixpoint scale (currently not used). See also Database.
(rel pr (+Number) 2) # Price, with two decimal places
(n== 'any ..) -> flg
T
when not all any
arguments are the same
(pointer equality). (n== 'any ..)
is equivalent to (not (==
'any ..))
. See also ==
and Comparing.
: (n== 'a 'a)
-> NIL
: (n== (1) (1))
-> T
(n0 'any) -> flg
T
when any
is not a number with value
zero. See also =0
, lt0
, le0
, ge0
and gt0
.
: (n0 (- 6 3 2 1))
-> NIL
: (n0 'a)
-> T
(nT 'any) -> flg
T
when any
is not the symbol
T
. See also =T.
: (nT 0)
-> T
: (nT "T")
-> T
: (nT T)
-> NIL
(name 'sym ['sym2]) -> sym
sym2
is not given, a new transient symbol with the
name of sym
. Otherwise sym
must be a transient symbol,
and its name is changed to that of sym2
(note that this may give
inconsistencies if the symbol is still referred to from other namespaces). See
also str
, sym
, symbols
, zap
and intern
.
: (name 'abc)
-> "abc"
: (name "abc")
-> "abc"
: (name '{A17})
-> "A17"
: (name (new))
-> NIL
: (de foo (Lst) (car Lst)) # 'foo' calls 'car'
-> foo
: (intern (name (zap 'car) "xxx") T) # Globally change the name of 'car'
-> xxx
: (xxx (1 2 3))
-> 1
: (pp 'foo)
(de foo (Lst)
(xxx Lst) ) # Name changed
-> foo
: (foo (1 2 3)) # 'foo' still works
-> 1
: (car (1 2 3)) # Reader returns a new 'car' symbol
!? (car (1 2 3))
car -- Undefined
?
(nand 'any ..) -> flg
any
are evaluated from left to
right. If NIL
is encountered, T
is returned
immediately. Else NIL
is returned. (nand ..)
is
equivalent to (not (and ..))
. See also and
, nor
, unless
, ifn
and nond
.
: (nand (lt0 7) (read))
-> T
: (nand (lt0 -7) (read))
abc
-> NIL
: (nand (lt0 -7) (read))
NIL
-> T
(native 'cnt1|sym1 'cnt2|sym2 'any 'any ..) -> any
"@"
(the current main
program), sym1
(a library path name), or cnt1
(a
library handle obtained by a previous call). The second argument should be a
symbol name sym2
, or a function pointer cnt2
obtained
by a previous call). Practically, the first two arguments will be always passed
as transient symbols, which will get the library handle and function pointer
assigned as values to be cached and used in subsequent calls. The third argument
any
is a result specification, while all following arguments are
the arguments to the native function. If the result specification is
T
, the actual function call is skipped, so that only the handle and
pointer are assigned. The functionality is described in detail in Native C Calls.
The result specification may either be one of the atoms
NIL void
B byte # Byte (unsigned 8 bit)
C char # Character (UTF-8, 1-4 bytes)
I int # Integer (signed 32 bit)
N long # Long or pointer (signed 64 bit)
S string # String (UTF-8)
-1.0 float # Scaled fixpoint number
+1.0 double # Scaled fixpoint number
T # Don't call, just assign handle and pointer
or nested lists of these atoms with size specifications to denote arrays and structures, e.g.
(N . 4) # long[4]; -> (1 2 3 4)
(N (C . 4)) # {long; char[4];} -> (1234 ("a" "b" "c" NIL))
(N (B . 7)) # {long; byte[7];} -> (1234 (1 2 3 4 5 6 7))
Arguments can be
double
, otherwise as a float
)
NIL
)
(num . cnt)
where 'num
' is stored in
a field of 'cnt
' bytes
(sym . cnt)
where 'sym
' is stored as
a null-terminated string in a field of 'cnt
' bytes
(1.0 num ...)
where the 'num
'
elements (scaled fixpoint numbers) are stored as a sequence of double
precision floating point numbers
(-1.0 num ...)
where the 'num
'
elements (scaled fixpoint numbers) are stored as a sequence of single
precision floating point numbers
native
takes care of allocating memory for strings, arrays or
structures, and frees that memory when done.
The number of fixpoint arguments is limited to six. For NaN or negative
infinity NIL
, and for positive infinity T
is returned.
The C function may in turn call a function
long lisp(char*, long, long, long, long, long);
which accepts a symbol name as the first argument, and up to 5 numbers.
lisp()
calls that symbol with the five numbers, and expects a
numeric return value. "Numbers" in this context are 64-bit scalars, and may not
only represent integers, but also pointers or other encoded data. See also
struct
, lisp
and errno
.
: (native "@" "getenv" 'S "TERM") # Same as (sys "TERM")
-> "xterm"
: (native "@" "printf" 'I "abc%d%s^J" (+ 3 4) (pack "X" "Y" "Z"))
abc7XYZ
-> 8
: (native "@" "printf" 'I "This is %.3f^J" (123456 . 1000))
This is 123.456
-> 16
: (use Tim
(native "@" "time" NIL '(Tim (8 B . 8))) # time_t 8 # Get time_t structure
(native "@" "localtime" '(I . 9) (cons NIL (8) Tim)) ) # Read local time
-> (32 18 13 31 11 109 4 364 0) # 13:18:32, Dec. 31st, 2009
: (native "libcrypto.so" "SHA1" '(B . 20) "abcd" 4 0)
-> (129 254 139 254 135 87 108 62 203 34 66 111 142 87 132 115 130 145 122 207)
(need 'cnt ['lst ['any]]) -> lst
(need 'cnt ['num|sym]) -> lst
cnt
elements. When called without
optional arguments, a list of cnt
NIL
's is returned.
When lst
is given, it is extended to the left (if cnt
is positive) or (destructively) to the right (if cnt
is negative)
with any
elements. In the second form, a list of cnt
atomic values is returned. See also range
.
: (need 5)
-> (NIL NIL NIL NIL NIL) # Allocate 5 cells
: (need 5 '(a b c))
-> (NIL NIL a b c)
: (need -5 '(a b c))
-> (a b c NIL NIL)
: (need 5 '(a b c) " ") # String alignment
-> (" " " " a b c)
: (need 7 0)
-> (0 0 0 0 0 0 0)
: (need 5 (2 3) 1)
-> (1 1 1 2 3)
(new ['flg|num] ['typ ['any ..]]) -> obj
flg
is given and
non-NIL
, the new object will be an external symbol (created in
database file 1 if T
, or in the corresponding database file if
num
is given). typ
(typically a list of classes) is
assigned to the VAL
, and the initial T
message is sent
with the arguments any
to the new object. If no T
message is defined for the classes in typ
or their superclasses,
the any
arguments should evaluate to alternating keys and values
for the initialization of the new object. See also box
, object
, class
, type
, isa
, send
and Database.
: (new)
-> $134426427
: (new T '(+Address))
-> {1A;3}
(new! 'typ ['any ..]) -> obj
new
. (new! '(+Cls) 'key 'val ...)
is equivalent to (dbSync) (new (db: +Cls) '(+Cls) 'key 'val ...) (commit
'upd)
. See also request!
, set!
, put!
and inc!
.
: (new! '(+Item) # Create a new item
'nr 2 # Item number
'nm "Spare Part" # Description
'sup (db 'nr '+CuSu 2) # Supplier
'inv 100 # Inventory
'pr 12.50 ) # Price
(next) -> any
@
). Returns the next argument from the internal list. See also
args
, arg
, rest
, and pass
.
: (de foo @ (println (next))) # Print next argument
-> foo
: (foo)
NIL
-> NIL
: (foo 123)
123
-> 123
(nil . prg) -> NIL
prg
, and returns NIL
. See also t
, prog
,
prog1
and prog2
.
: (nil (println 'OK))
OK
-> NIL
nil/1
NIL
. See also not/1
.
: (? @X NIL (nil @X))
@X=NIL
-> NIL
(noLint 'sym)
(noLint 'sym|(sym . cls) 'sym2)
sym
(in the first form), or for variable binding and usage of
sym2
in the function definition, file contents or method body of
sym
(second form), during calls to lint
. See also lintAll
.
: (de foo ()
(bar FreeVariable) )
-> foo
: (lint 'foo)
-> ((def bar) (bnd FreeVariable))
: (noLint 'bar)
-> bar
: (noLint 'foo 'FreeVariable)
-> (foo . FreeVariable)
: (lint 'foo)
-> NIL
(nond ('any1 . prg1) ('any2 . prg2) ..) -> any
anyN
conditions evaluates to NIL
, prgN
is executed and the
result returned. Otherwise (all conditions evaluate to non-NIL
),
NIL
is returned. See also cond
, ifn
, unless
, nor
and nand
.
: (nond
((= 3 3) (println 1))
((= 3 4) (println 2))
(NIL (println 3)) )
2
-> 2
(nor 'any ..) -> flg
any
are evaluated from left to
right. If a non-NIL
value is encountered, NIL
is
returned immediately. Else T
is returned. (nor ..)
is
equivalent to (not (or ..))
. See also or
, nand
, unless
, ifn
and nond
.
: (nor (lt0 7) (= 3 4))
-> T
(not 'any) -> flg
T
if any
evaluates to
NIL
.
: (not (== 'a 'a))
-> NIL
: (not (get 'a 'a))
-> T
not/1
nil/1
, true/0
and fail/0
.
: (? (equal 3 4))
-> NIL
: (? (not (equal 3 4)))
-> T
(nsp 'sym) -> sym
sym
is found in, according to the current symbols
search order. See also pico
.
(load<EMAIL_ADDRESS>: (symbols '(pico gis))
-> (pico)
: (nsp 'gis)
-> pico
: (nsp 'Zoom)
-> gis
: (nsp 'osmStat)
-> gis
(nth 'lst 'cnt ..) -> lst
lst
starting from the cnt
'th
element of lst
. Successive cnt
arguments operate on
the CARs of the results in the same way. (nth 'lst 2)
is equivalent
to (cdr 'lst)
. See also get
.
: (nth '(a b c d) 2)
-> (b c d)
: (nth '(a (b c) d) 2 2)
-> (c)
: (cdadr '(a (b c) d))
-> (c)
(num? 'any) -> num | NIL
any
when the argument any
is a number,
otherwise NIL
. See also sym?
, atom
and pair
.
: (num? 123)
-> 123
: (num? (1 2 3))
-> NIL


home / programming / python
CodeSignal Arcade: Python
Meet PythonStrings
Lists
Lambdas
Comprehensions
Functional
Collections
Itertools
Drilling Lists
Yields
Higher-order
Classes
Parsing
01-collections-truthness.txt
What will be the value of res after the following snippet is executed? xs = [()] res = [False] * 2 if xs: res[0] = True if xs[0]: res[1] = True Answer: [True, False]
02-efficient-comparison.txt
You would like to write a function f(x, y, L, R) that returns True if x ** y lies within the interval (L, R] and False otherwise. You're considering several different ways to write the conditional statement inside this function: 1. if L < x ** y <= R: 2. if x ** y > L and x ** y <= R: 3. if x ** y in range (L+1, R+1): Which option would be the most efficient? Option 1
03-special-conditional.txt
Given two boolean variables a and b, one of the following works differently than the others. Which one is it? (Bad question, the solution is actually invalid syntax) a == (not b) not (a == b) a == not b not a == b Answer: a == not b # NOTE: this is invalid syntax.
04-language-differences.txt
Summary: integer division in Java and Python work differently. 15 // -4 is not the same as Java's 15 / -4
05-count-bits.py
""" Given an integer n, return the number of bits in its binary representation. """ def solution(n): return n.bit_length()
06-modulus.py
""" Write a modulus function that only accepts integers as the input. """ def solution(n): if isinstance(n, int): return n % 2 return -1
07-simple-sort.py
""" The task is to write the line of code that swaps adjacent elements that are out of order. """ def solution(arr): n = len(arr) for i in range(n): j = 0 stop = n - i while j < stop - 1: if arr[j] > arr[j+1]: arr[j], arr[j+1] = arr[j+1], arr[j] j += 1 return arr
08-base-conversion.py
""" Implement a function that converts an integer n that is in base x to base 16. """ def solution(n, x): return hex(int(n, x))[2:]
09-mex-function.py
""" Mex is "minimum excludant" for a given set s. It is the minimum non-negative number that is not present in s. This simplified version returns the mex if it's smaller than upperBound, otherwise it returns upperBound. """ def solution(s, upperBound): found = -1 for i in range(upperBound): if not i in s: found = i break else: return upperBound return found
10-list-beautifier.py
""" A list is beautiful if its first element is equal to its last element, or if it's empty. The task is to chop off the ends until the list is beautiful. NOTE: solution is to fill in the left side of the assignment. Destructuring is the easiest way to accomplish the task. """ def solution(a): res = a[:] while res and res[0] != res[-1]: _, *res, _ = res return res
11-string-definition.txt
It's ok to define strings with '', "", '''...''', and """...""" ''...'' and ""..."" are not valid.
12-fix-message.py
""" Implement a function that changes the very first letter to uppercase, and makes everything else lowercase. """ def solution(msg): return msg.capitalize()
13-cat-walk.py
""" Replace all multiple space characters in the string with single ones. Also, remove leading and trailing whitespace. """ def solution(line): return " ".join(line.strip().split())
14-convert-tabs.py
""" Convert tab characters to x space characters. """ def solution(code, x): return code.replace("\t", " "*x)
15-feedback-review.py
""" Wrap a line of text so that each line is at most "size" characters long. """ import textwrap def solution(feedback, size): return textwrap.wrap(feedback, size)
16-is-word-palindrome.py
def solution(word): return word == word[::-1]
17-permutation-cipher.py
""" Replace letters from a-z with the letters in key. """ def solution(password, key): table = str.maketrans(string.ascii_lowercase, key) return password.translate(table)
18-competitive-eating.py
""" Display the time with the given precision, centered in a field with the given width. """ def solution(t, width, precision): return f"{t:.{precision}f}".center(width)
19-new-style-formatting.py
""" Convert old style "%s, %d, %f" formatting types to {}, and %% to %. """ import re def solution(s): s = s.replace("%%", "{%}") var_pat = re.compile(r'%[sdf]') s = var_pat.sub("{}", s) s = s.replace("{%}", "%") return s
20-get-commit.py
""" Remove the special characters 0, ?, +, and ! from the beginning of the commit message. """ import re def solution(commit): return re.sub('[0?+!]', '', commit)
21-list-multiplication.txt
The code c = a * b can mean both: c is the list a repeated b times. c is the list b repeated a times.
22-lists-concatenation.py
def solution(lst1, lst2): res = lst1 res.extend(lst2) # original code had a bug: res.append adds the entire list as a new element return res
23-two-teams.py
""" Calculate the difference between the sum of the even-numbered positions (starting from 0) and the sum of the odd-numbered positions. """ def solution(lst): return sum(lst[::2]) - sum(lst[1::2])
24-remove-tasks.py
""" Remove all kth items from the list. """ def solution(k, todo): del todo[k-1::k] return todo
25-print-list.py
def solution(lst): return f"This is your list: {lst}"
26-repeat-char.py
""" Given a character ch, return a string of ch repeated n times. """ solution = lambda ch, n: ch * n
27-get-points.py
""" Calculate the number of points (for an exam) received for the given list of answers. A correct answer gets i points (1-based) and a wrong answer loses p points (penalty). """ def solution(answers, p): questionPoints = lambda i, ans: i+1 if ans else -p res = 0 for i, ans in enumerate(answers): res += questionPoints(i, ans) return res
28-sort-students.py
""" Sort the students lexicographically by their surnames. """ def solution(students): students.sort(key=lambda s: s.split()[-1]) return students
29-is-test-solvable.py
""" Compute the sum of the digits in questionId. """ def solution(ids, k): digitSum = lambda n: sum(map(int, str(n))) sm = 0 for questionId in ids: sm += digitSum(questionId) return sm % k == 0
30-create-spiral-matrix.py
""" A spiral matrix is a square matrix of size n x n. It starts on the bottom-right corner and increases in the counterclockwise direction. Example: 5 4 3 6 9 2 7 8 1 """ def solution(n): dirs = [(-1, 0), (0, -1), (1, 0), (0, 1)] curDir = 0 curPos = (n - 1, n - 1) # Fill in the following line res = [[0 for _ in range(n)] for _ in range(n)] for i in range(1, n * n + 1): res[curPos[0]][curPos[1]] = i nextPos = curPos[0] + dirs[curDir][0], curPos[1] + dirs[curDir][1] if not (0 <= nextPos[0] < n and 0 <= nextPos[1] < n and res[nextPos[0]][nextPos[1]] == 0): curDir = (curDir + 1) % 4 nextPos = curPos[0] + dirs[curDir][0], curPos[1] + dirs[curDir][1] curPos = nextPos return res
31-construct-shell.py
""" Return a 2-d list of size 2 * n - 1 where each element is a list, and the size increases, then decreases. Example: Shell(3) = [[0], [0, 0], [0, 0, 0], [0, 0], [0]] """ def solution(n): return [[0] * n for n in list(range(1, n)) + list(range(n, 0, -1))]
32-word-power.py
""" The power of a letter is the 1-based index of the plaintext alphabet. The power of a word is the sum of the powers of its characters. Return a word's power. """ def solution(word): num = {chr(n + 96): n for n in range(1, 27)} return sum([num[ch] for ch in word])
33-cool-pairs.py
""" A pair of numbers is cool if their product is divisible by their sum. Return the number of different sums of elements in cool pairs. """ def solution(a, b): uniqueSums = {i + j for i in a for j in b if (i * j) % (i + j) == 0} return len(uniqueSums)
34-multiplication-table.py
""" Construct a n x n multiplication table. """ def solution(n): return [list(range(r, r*n+1, r)) for r in range(1, n+1)]
35-chess-teams.py
""" Given two teams, create a list of lists where elements are the ith member of the first team and the ith member of the second team. """ def solution(smarties, cleveries): return list(map(list, zip(smarties, cleveries)))
36-fix-result.py
""" Drop the last digit of each element in result. """ def solution(result): def fix(x): return x // 10 return list(map(fix, result)) # task was to fill in "map"
37-college-courses.py
""" John thinks the number x is bad luck, so he won't take courses whose title is x letters long. Remove the courses as described. """ def solution(x, courses): def shouldConsider(course): return len(course) != x return list(filter(shouldConsider, courses))
38-create-histogram.py
""" Create a horizontal histogram with bars formed by repeating the ch character the right amount of times. """ def solution(ch, assignments): return [ch * i for i in assignments]
39-least-common-denominator.py
from math import gcd def solution(denominators): return functools.reduce(lambda x, y: x * y // gcd(x, y), denominators)
40-dictionary-keys.txt
Out of the following, which can be used as dictionary keys? 1. set 2. frozenset 3. tuple of mutable objects 4. tuple of immutable objects 5. list of mutable objects 6. list of immutable objects Answer: 2, 4
41-unique-characters.py
""" Return an array of all unique characters that appear in it, sorted by their ASCII codes. """ def solution(document): return sorted(set(document), key=ord)
42-correct-scholarships.py
""" You are given lists of unique student IDs bestStudents, scholarships, and allStudents. The scholarships are correctly distributed if all the best students are in it, but no outsider students are receiving scholarships. """ def solution(bestStudents, scholarships, allStudents): return set(bestStudents) <= set(scholarships) < set(allStudents) # a <= b is a.issubset(b). Is every element of a in b? # a < b does not have a corresponding method. It checks if a is a proper subset of b. A proper subset is the same as a subset, but the sets can't be identical.
43-startup-name.py
""" A popular character appears in at least two company names, and mainstream if it appears in all three. Return the list of characters that are popular but not mainstream. """ def solution(companies): cmp1 = set(companies[0]) cmp2 = set(companies[1]) cmp3 = set(companies[2]) res = (cmp1 & cmp2 | cmp2 & cmp3 | cmp1 & cmp3) - (cmp1 & cmp2 & cmp3) return list(sorted(list(res)))
44-words-recognition.py
""" Return an array of two strings, return an array of two strings sorted lexicographically, where the first string contains characters present only in word1, and the second, in word2. """ def solution(word1, word2): def getIdentifier(w1, w2): return "".join(sorted(set(w1) - set(w2))) return [getIdentifier(word1, word2), getIdentifier(word2, word1)]
45-transpose-dictionary.py
""" Given a dictionary of scripts and extensions, return a list of lists with elements [extension. script], sorted by extension. """ def solution(scriptByExtension): return sorted([[scriptByExtension[k], k] for k in scriptByExtension], key=lambda el: el[0])
46-doodled-password.py
""" Given a list of numbers that you think is a password, and are written in a circle, find all possible combinations the password could be. """ from collections import deque def solution(digits): n = len(digits) res = [deque(digits) for _ in range(n)] deque(map(lambda d: res[d].rotate(-d), range(n)), 0) # implement this line return [list(d) for d in res] # Comment: creating a zero-length deque is weird, why not use a loop?
47-frequency-analysis.py
""" Return the most frequent character in the text. Inputs have a unique most frequent character. """ from collections import Counter def solution(encryptedText): return Counter(encryptedText).most_common()[0][0]
48-cyclic-name.py
""" Cycle the given name up to n characters. """ from itertools import cycle def solution(name, n): gen = cycle(name) res = [next(gen) for _ in range(n)] return ''.join(res)
49-memory-pills.py
""" Given a list of pills, return a list of three names that go right after the very first medicine name of even length. """ from itertools import dropwhile def solution(pills): gen = dropwhile(lambda p: len(p) % 2 == 1, pills + [""] * 3) next(gen) return [next(gen) for _ in range(3)]
50-float-range.py
""" Create a function like range() but with float values. """ from itertools import takewhile, count def solution(start, stop, step): gen = takewhile(lambda n: n < stop, count(start, step)) return list(gen)
51-rock-paper-scissors.py
""" Given a list of players, return a list of all the games played between them, sorted lexicographically. """ from itertools import permutations def solution(players): return list(permutations(sorted(players), 2)) # NOTE: sorting the players will return the right solution, without having to sort the result by column.
52-kth-permutation.py
""" Return the kth permutation (1-based) from the permutations of the given numbers. """ from itertools import permutations def solution(numbers, k): return list(permutations(numbers))[k-1]
53-crazyball.py
""" Given a list of players and the number of players, k, return a list of all possible lineups, sorted lexicographically. """ from itertools import combinations def solution(players, k): return list(combinations(sorted(players), k))
54-cracking-password.py
""" Given the digits that comprise the password, the password length k, and divisor d, return a sorted list of strings that should be tried as passwords. """ from itertools import product def solution(digits, k, d): def createNumber(digs): return "".join(map(str, digs)) return [''.join(map(str, p)) for p in product(sorted(digits), repeat=k) if int(''.join(map(str, p))) % d == 0]
55-twins-score.py
""" Given two lists with scores, combine them into a single list that contain the sums of the individual scores. """ def solution(b, m): return [b + m for b, m in zip(b, m)]
56-pressure-gauges.py
""" Given morning and evening pressure readings, return two lists, one containing the minimum, and the other containing the maximum readings. """ def solution(morning, evening): return [[min(a, b) for a, b in zip(morning, evening)], [max(a, b) for a, b in zip(morning, evening)]]
57-correct-lineup.py
""" Given a list of athletes, return the list after swapping each pair of adjacent athletes. Example: [1, 2, 3, 4, 5, 6] should be [2, 1, 4, 3, 6, 5] """ def solution(athletes): return [item for pair in zip(athletes[1::2], athletes[::2]) for item in pair] # NOTE: this operation is the same for flattening a list of lists # (found in Stack Overflow)
58-group-dating.py
""" Two lists of the nature values of male and female cats are given. If the corresponding cats have the same value, they become connected and walk away. Return the two lists, having removed the pairs with the same value. """ def solution(male, female): return [[], []] if male == female else list(zip(*[[m, f] for m, f in zip(male, female) if m != f]))
59-fix-tree.py
""" You are given a list of strings that form a tree. However, it has become corrupted and the * characters need to be centered. """ def solution(tree): return [("*" * s.count("*")).center(len(s)) for s in tree] # Alternative solution: strip, then center
60-pref-sum.py
""" Calculate all the prefix sums for the given array. b[0] = a[0] b[1] = a[0] + a[1] b[2] = a[0] + a[1] + a[2] ... """ def solution(a): # This naive approach is too inefficient. return [sum(a[:end]) for end in range(1, len(a) + 1)] # Alternative solution from itertools import accumulate def solution(a): return list(accumulate(a))
61-math-practice.py
""" Implement a function that computes (((...(a[0] + a[1]) * a[2] + a[3]) * a[4] + ...)) NOTE: makes little sense """ from functools import reduce def solution(numbers): return reduce(lambda x, y: x * numbers[y] if y % 2 == 0 else x + numbers[y], range(len(numbers)), 1)
62-check-participants.py
""" You're organizing games for your coworkers, and the requirement for the ith 0-based game is that there are at least i people registered for it (game 0 does not need any participants). Return the list of games for which too few people signed up for. """ def solution(participants): return [i for i, e in enumerate(participants) if e < i]
63-fibonacci-list.py
""" Return a list whose elements are lists containing i zeros, where i is the nth element of the Fibonacci sequence (0, 1, 1, 2, 3, 5, 8, ...). """ def solution(n): return [[0] * x for x in functools.reduce(lambda x, y: x + [x[-1] + x[-2]], range(n-2), [0, 1])]
64-primes-sum.py
""" Return the sum of all prime numbers in the range [a, b]. """ def solution(a, b): return sum(filter(lambda x: all(x % i for i in range(2, int(x**0.5) + 1)), range(max(2, a), b+1)))
65-calc-bonuses.py
""" Return the sum of the first n bonuses for the given values of bonuses and n. However, if fewer than n bonuses were collected, the score is 0. """ def solution(bonuses, n): it = (b for b in bonuses) res = 0 try: for _ in range(n): res += next(it) except StopIteration: res = 0 return res # Alternative solution: it = iter(bonuses)
66-calc-final-score.py
""" Given a list of scores and the number n that represents how many levels had to have been passed to avoid the penalty (score is divided by 5), return the sum of the squares of the maximum n scores. """ def solution(scores, n): gen = (s * s for s in sorted(scores, reverse=True)) res = 0 try: for _ in range(n): res += next(gen) except StopIteration: res //= 5 return res
67-fibonacci-generator.py
""" Return the first n numbers of the Fibonacci sequence, using the given generator. """ def solution(n): def fib(): last = (0, 1) while True: yield last[0] last = last[0] + last[1], last[0] # new value is placed first gen = fib() return [next(gen) for _ in range(n)]
68-calkin-wilf-sequence.py
""" The Calkin-Wilf tree consists of vertices that correspond one-to-one to the positive rational numbers. A fraction a/b has as its children a/(a + b) and (a + b)/b. Given a rational number, return its 0-based index in the Calkin-Wilf sequence. """ def solution(number): def fractions(): n, d = 1, 1 while True: yield [n, d] n, d = d, 2 * (n // d) * d + d - n # No idea how this was computed, copied someone else's solution. # The formula is in Wikipedia. gen = fractions() res = 0 while next(gen) != number: res += 1 return res
69-check-password.py
""" Return the index of the correct password attempt. """ def solution(attempts, password): def check(): while True: yield password == attempt checker = check() for i, attempt in enumerate(attempts): next(checker) if checker.send(attempt): return i + 1 return -1
70-greetings-generator.py
""" Given a list of names, return an array of greetings such as "Hello, Joe!" """ class Greeter(object): def __init__(self, names): self.cnt = 0 self.names = names def __iter__(self): return self def __next__(self): if self.cnt < len(self.names): self.cnt += 1 return 'Hello, {}!'.format(self.names[self.cnt - 1]) else: raise StopIteration def solution(team): return list(Greeter(team))
71-range-float.py
""" Implement a range function that allows floating point numbers. """ class FRange(object): def __init__(self, start, stop=None, step=None): if stop is None: self.i = 0 self.stop = start self.step = 1 elif step is None: self.i = start self.stop = stop self.step = 1 else: self.i = start self.stop = stop self.step = step def __iter__(self): return self def __next__(self): if (self.i - self.stop) * self.step < 0: self.i += self.step return self.i - self.step else: raise StopIteration def solution(args): return list(FRange(*args))
72-super-prize.py
""" A supermarket is giving prizes for the nth (1-based) customer if the total of their purchase is divisible by d. Return the 1-based indices of all customers who won the prize. """ class Prizes(object): def __init__(self, purchases, n, d): self.purchases = purchases self.n = n self.d = d def __iter__(self): for i in range(self.n - 1, len(self.purchases), self.n): if self.purchases[i] % self.d == 0: yield i + 1 def solution(purchases, n, d): return list(Prizes(purchases, n, d))
73-try-functions.py
""" Given the variable x and a list of functions, return a list of values f(x) for each f in functions. """ def solution(x, functions): return [eval(fname)(x) for fname in functions]
74-two-lines.py
""" Consider two straight lines y = mx + b. Consider all integer coordinates a from [l, r]. For each vertical x = a, find where this vertical intersects line1 and line2. Whichever line is higher earns a point. Choose the line that has the higher score. """ from functools import partial def line_y(m, b, x): return m * x + b def solution(line1, line2, l, r): # Task is to fill in these partials line1_y = partial(line_y, *line1) line2_y = partial(line_y, *line2) balance = 0 for x in range(l, r + 1): y1 = line1_y(x) y2 = line2_y(x) if y1 > y2: balance += 1 elif y1 < y2: balance -= 1 if balance > 0: return "first" if balance < 0: return "second" return "any"
75-simple-composition.py
""" Given f and g, combine them to obtain f(g(x)) """ def compose(f, g): return lambda x: f(g(x)) def solution(f, g, x): return compose(eval(f), eval(g))(x)
76-functions-composition.py
""" Compose an arbitrary number of functions. """ def compose(functions): return functools.reduce(lambda f, g: lambda x: f(g(x)), functions, lambda x: x) def solution(functions, x): return compose(map(eval, functions))(x)
77-merging-vines.py
""" Vines entangle together as time passes, forming a single vine. Given the number of grapes hung on the "vines" list, return the number of grapes in each vine after n years, assumming that each year the 2 * i - 1th and the 2 * ith vines merge into a single vine for each integer i in range [1, len(vines) / 2]. """ def solution(vines, n): def nTimes(n): # Task: implement this decorator def deco(f): def wrapper(vines): for i in range(n): vines = f(vines) return vines return wrapper return deco @nTimes(n) def sumOnce(vines): res = [vines[i] + vines[i+1] for i in range(0, len(vines) - 1, 2)] if len(vines) % 2 == 1: res.append(vines[-1]) return res return sumOnce(vines)
78-count-visitors.py
""" Given the amount of time visitors used your application and k (amount of time spent by beta users), return the total number of users that used your app for at least k minutes, including beta users. """ class Counter(object): def __init__(self, beta): # Task: implement this initialization self.value = beta def inc(self): self.value += 1 def get(self): return self.value def solution(beta, k, visitors): counter = Counter(beta) for visitor in visitors: if visitor >= k: counter.inc() return counter.get()
79-sign.py
""" Implement a "sign(x)" function that returns 1 for positive x, -1 for negative, and 0 for zero. """ class Functions(object): @staticmethod def solution(x): if x > 0: return 1 elif x < 0: return -1 else: return 0 def solution(x): return Functions.solution(x)
80-primary-school.py
""" Implement a function that calculates the area of a rectangle (height x width). """ class Rectangle(object): def __init__(self, height, width): self.height = height self.width = width def __str__(self): return '{} x {} = {}'.format(self.height, self.width, self.area) # Task: fill in this blank @property def area(self): return self.height * self.width def solution(height, width): return str(Rectangle(height, width))
81-user-attribute.py
""" Given the attribute requested, return its value if it's defined, and the string "x attribute is not defined" otherwise. """ class User: def __init__(self, username, _id, xp, name): self.username = username self._id = _id self.xp = xp self.name = name def __getattr__(self, attribute): return f"{attribute} attribute is not defined" def solution(attribute): user = User("anny", "123", "1500", "annya") return getattr(user, attribute)
82-sort-codesignal-users.py
""" Sort the leaderboard by the players' XP in descending order, and in case of a tie, by their ids. """ def solution(users): res = [CodeSignalUser(*user) for user in users] res.sort(reverse=True) return list(map(str, res)) class CodeSignalUser: def __init__(self, name, uid, xp): self.name = name self.uid = int(uid) self.xp = int(xp) def __lt__(self, other): if self.xp == other.xp: return self.uid < other.uid return self.xp < other.xp
83-is-cool-team.py
""" A team is cool if and only if the first letter of one player's name is the same as the last letter in the name of the player before them. The letter matching does not have to wrap. Check if a team is cool. """ # NOTE: this task is equivalent to a complicated problem called "last letter first letter" class Team(object): def __init__(self, names): self.names = names def __bool__(self): # Turn this problem into the Eulerian Path Checker rather than the NP-Complete Hamiltonian Path problem # # How? Use the letters of the alphabet as the nodes instead of the names. The names will become the edges. # Now we just check if we can connect all the edges without using any twice! # We just turned it into the Eulerian path problem. This will become very important. # # Generally, a graph will have an Eulerian path IF it has a maximum of 2 nodes that have an odd degree (Number of edges/teammates coming in and out) # Why? We can use a odd-degree node as a starting or ending point. # That forces us to use those two vertices/letters as the corresponding point in the team announcement. # The rest of the nodes MUST have an equal number of in-degree and out-degree (We must somehow connect them all) # # The check will be something like this: # - Have two directories: # - One for the names coming in (FROM) # - The other for names going out (TO) # - Go through every letter of the alphabet # - Find all names that can go to current letter/vertice, save it to FROM # - Ex: K -> Mark # - Find all names that the letter can go to, save it to TO # - Ex: M -> Mark # # - Go through every letters again, count the number of nodes with unequal in-out degrees. # - If there is 1 less in-degree (One less teammate to come from) # - THIS IS OUR GUARANTEED STARTING NAME! # - If we have more than one starting name, then it is impossible, return False. # # - If there is 1 more in-degree (One more teammate to come from) # - THIS IS OUR GUARANTEED ENDING NAME! # - If we have more than one ending name, then it is impossible, return False. # # We are almost done! # # Doing this check can already pass most of the tests, the last thing we need to check is if the entire graph is connected. # We can do this with a simple BFS: # - Start from any teammate # - Find all unvisited teammate who can lead to current teammate or vice-versa # Ex: Mark <- [ Kurt ] -> Terk # - Repeat until we can't find any more teammates # - Then check if the entire team is visited. self.names = [i.lower() for i in self.names] letters = "abcdefghijklmnopqrstuvwxyz" FROM = {i: [] for i in letters} TO = {i: [] for i in letters} for i in letters: for j in self.names: if i == j[-1]: FROM[i].append(j) # Find names that lead to current letter if i == j[0]: TO[i].append(j) # Find names that letter can lead to # Debugging and visualizing the graph for i in letters: print("____________________") print("Node: %s" % i) print("From: ", FROM[i]) print("To: ", TO[i]) start = False end = False for i in letters: if len(FROM[i]) + 1 == len(TO[i]): # Found the start! if start: return False # Whoops, too many starts! start = True elif len(FROM[i]) == len(TO[i]) + 1: # Found the end! if end: return False # Whoops, too many ends! end = True elif len(FROM[i]) != len(TO[i]): return False # Check if graph is connected visited = {0} queue = [0] while queue: name = queue.pop(0) for ind, teammate in enumerate(self.names): if ind in visited: continue if self.names[name][0] == teammate[-1]: visited.add(ind) queue.append(ind) elif self.names[name][-1] == teammate[0]: visited.add(ind) queue.append(ind) return len(visited) == len(self.names) # Is everyone found? def solution(team): return bool(Team(team))
84-create-die.py
""" Use the random module to create a die interface for a game. The function must accept the random seed and the number of sides of the die. """ import random def solution(seed, n): class Die: def __new__(cls, seed, n): random.seed(seed) return int(random.random() * n) + 1 class Game: die = Die(seed, n) return Game.die
85-to-human-age.py
""" Convert each animal's age to the equivalent human age. """ class Mammal(object): # Task: implement this class def __init__(self, age): self.age = age def toHuman(self): return self.age def __str__(self): return f"{self.toHuman()} y.o. in human age" class Cat(Mammal): def toHuman(self): if self.age == 0: return 0 elif self.age < 3: return 25 // (3 - self.age) else: return 25 + 4 * (self.age - 2) class Dog(Mammal): def toHuman(self): if self.age == 0: return 0 elif self.age == 1: return 15 elif self.age == 2: return 24 else: return 24 + (self.age - 2) * 4 class Human(Mammal): pass def solution(members): species = { 'cat': Cat, 'dog': Dog, 'human': Human } res = [] for spec, age in members: res.append(str(species[spec](int(age)))) return res
86-xml-tags.py
""" XML ElementTree """ # skipped as it's too domain-specific
87-build-command.py
""" Given a JSON, replace the values for each key with empty values, except for dictionaries. """
88-website-calendar.py
""" Given a month and year, generate a calendar in HTML format. """
89-malicious-program.py
""" Given a timestamp and a list "changes", apply the deltas to the timestamp and return the altered timestamp. """
90-url-similarity.py
""" Compare two URLs and return their similarity score. """
91-page-complexity.py
""" Given an HTML document, return all distinct tags located in the deepest level. """
92-weird-encoding.py
""" Return the encoded version of the message, given the encoding key (a variation of Base64). """


On December 3rd, Brooklyn High School for Law and Technology will be opening its doors to anyone interested in technology and its plethora of applications. Technology is our future, and in order to continue innovating, advancing, and evolving, more people need to be educated in the field.
As such, InspiredxSTEM brings technology to our community through workshops and a hackathon, an event where people create awesome project during the day, in an effort to inspire more students, teachers, and parents to utilize the rapidly expanding technological world


Libya's NOC says Massila oilfield producing an additional 2,900 bpd
by ReutersDUBAI — Libya’s Arabian Gulf Company, a subsidiary of state oil firm NOC, is producing an additional 2,900 barrels per day (bpd) from the Massila oilfield after connecting a well, an NOC statement said on Sunday.
The well, which was abondonned in 1979, has been reconnected since Friday thanks to new drilling technologies, the statement added. (Reporting by Aziz El Yaakoubi; Editing by Mark Potter)


"x" "1" "CUI,XS, BERGMAN,J AND MOLLER,L, PRENEOPLASTIC LESIONS, DNA ADDUCTFORMATION AND MUTAGENICITY OF 5-,7- AND 9-HYDROXY-2-NITROFLUORENE, METABOLITESOF THE AIR POLLUTANT 2-NITROFLUORENE, MUTAT. RES. 369(3-4 __ ):147-156,1996"


| Year | Month | Number of Audits conducted | Open | Close | Number of Non-conformance |
| 2017 | Jan | 10 | 2 | 8 | 25 |
| 2017 | Feb | 8 | 4 | 4 | 28 |
| 2017 | Mar | 11 | 6 | 5 | 34 |
| 2017 | Apr | 9 | 4 | 5 | 19 |
| 2017 | May | 12 | 4 | 8 | 26 |
| 2017 | Jun | 16 | 6 | 10 | 41 |
| Area | FTA Certified Producers | Audits Faced | Audits Passed |
| Importing Companies | 1284 | 500 | 250 |
| Brands | 329 | 200 | 179 |
| Retailers | 214 | 200 | 185 |
| Holding | 80 | 80 | 73 |
| Association | 15 | 10 | 4 |
| Supermarket | 1 | 1 | 1 |
| Area | Audit # | Audit date | Audit Result |
| 3S Company | 1234 | Jan-17 | Passed |
| A-Tex | 2675 | Feb-17 | Failed |
| Adidas | 3876 | Mar-17 | Passed |
| Alberto | 5271 | Apr-17 | Passed |
| Beluga Spielwaren | 7281 | May-17 | Failed |
| Bolsius | 7943 | Jun-17 | Passed |


Please wait while we grow ourselves a beard!
You can read the controls if you'd like:
Smash goblins to dust: Q
Reign down the wrath of the dwarven gods: W
Catch goblins by surprise: E
Demolish everything from the alpha to the omega: R (You can only use this once, use it wisely!)
Move: Arrow Keys
Jump: Space


--- layout: page title: "Marand Lab" subtitle: "Department of MCDB, University of Michigan" use-site-title: true bigimg: "/img/labwebsite_background.png" ---


‘RuPaul’s Drag Race UK’ confirmed for season two
There's not much time left if you want to apply
A second season of RuPaul’s Drag Race UK has been confirmed.
The first season of the show is currently showing on BBC Three, with 6.5 million people tuning in so far via iPlayer.
Applications to appear on the second season are open now – you can apply here – and close next Friday (November 15).
“All you need to apply is Charisma, Uniqueness, Nerve and Talent,” a tweet announcing the new season reads.
“I want to thank the BBC and all our fans for their overwhelming support of RuPaul’s Drag Race UK,’ RuPaul says of the upcoming second season.
“This season’s queens proved that Britain’s Got Charisma Uniqueness Nerve and Talent and I want to see more! Here’s to another season of love, laughter and light!”
The second season will air in the new year and feature eight episodes.
Stars from Game of Thrones, Little Mix, the Spice Girls and beyond have all appeared as guest judges on the first series of the UK version of the show.


Working weekend
I spent most of the weekend working, but today I was a bit like jello left in the sun too long, so I did some cleaning and upgraded the MythTV frontend (only, not the recording bit) to R5F1, so hot off the presses there's no changelog yet.
Everything went mostly well - I had to play with the mixer a bit to get sound back, basically unmute and turn up the Front channel. Then get mythwelcome re-configured for startup, and set it up so I can shut down the box with the remote (i.e. add the mythtv user to the sudoer list with the shutdown command).
Everything seems slightly nicer. Tho, my nvidia on-board videocard wasn't happy decoding live HDTV so I had to go back to software decoding - watch the CPU jump from 20% usage to 68% usage. I'll have to see if I had a tainted driver in there before - I didn't even bother checking here yet tho.
Finally, while watching the start of the Detroit-Anaheim hockey game, I thought I'd see if the compiler or headers would be anymore compatible with my Antec Fusion VFD. I started downloading the lcdproc sources in order to build it, when it occurred to me this new release may have it already.
This wiki page detailed the changes I needed to make to LCDd.conf (which I think was my old version, as it was missing the trailing slash referenced in the comments!?), modprobe lirc_imon, echo 'woo!' > /dev/lirc0 and bang, it worked. Cool! (Yes, I did it in that order, but there's no point in editing LCDd.conf until the echo works.)
Now start LCDd, get the welcome message, enter the MythTV setup, turn it on and BOOM! it works.
Cool. Of course, it'd be nice if the machine didn't need to be on in order to show me what the backend is doing. The SqueezeBox looks like it could do that...
About this entry
You"re currently reading "Working weekend," an entry on a crick in the net
- Published:
- 05.13.07 / 7pm
- Category:
- MythTV


A library implementing Principal Component Analysis (PCA) data transformation; in majority of cases the only class that the library's user should be interested in is the {@link pca_transform.PCA} class.


Augmented Reality makes use of the camera and video overlays to allow mobile applications
to mix virtual and real world objects.
Use your camera to add pictures at various locations.
(depending on GPS accuracy, you may need to walk 10m between
locations).
#{realityBean.uploadMessage}
Next, view the pictures superimposed on the camera view in the
Augmented Reality overlay (this is an alpha level feature on iOS
and pre-alpha on Android only).
Selected Location:
Print, cut-out, then view the Augmented Reality Markers
with 3D overlays. (This is an alpha level feature on iOS only.
Note that the view may take 30 seconds to display.)


What does the animal say:
How loud is the animal:
1 (low)
2
3 (medium)
4
5 (high)
Submit
See the Talking Animal!


Mirza M Baig
FRONT-END NINJA
Featured Work
place puppy
placepuppy.it
place creature
placecreature.com
lorem pixel
lorempixel.com


{% extends "base_leftsidebar.html" %} {% block title %}FableMe - Sign In{% endblock %} {% block extraheader %} {% endblock %} {% block maincontent %}
Need to register? Sign up here »
Unknown user
Wrong password. Did you forget your password?


Onepiece's products
2020 CC/CVV & PAYPAL TO BITCOIN & V3.0 &...
2020 AMPHETAMINE SYNTHESIS > 3 Complete ...
HOW TO BACKDOOR AN APP TO SPY ANYONE
PAYPAL RECEIPT GENERATOR
Make Easy Money Overnight (MoneyMachine2...
HOW TO MAKE BANK/ACH TRANSFERS CORRECTLY...
How To Bypass Paypal Phone Verification
LOCALBITCOINS SCAM: HOW TO
AMAZON Carding Method
2020 Cc/Cvv to Giftcards+Websites > CARD...
TUTORIAL 2020// How to run a Botnet
♕ FOREX AND CRYPTO TRADING PROFESSIONN...
MAKE $20,000+ A WEEK CASHING OUT WESTERN...
BYPASS CELL PHONE SCREEN LOCK EASY>2020
How To Make $700 A Day (Very Easy)
2020 BITCOIN MEGAPACK > 50 BITCOIN CARDI...
How To Hack Remotely A Smartphone To Get...
FBI HACKING AND FORENSIC TOOLKIT HACK IN...
2020 UBER FRAUD PACK > MAKE $2500 MONTHL...
CC CASHOUT eBay/Amazon || TRIANGULATION ...
MAKE $ SCAMMING PAY-PER-CALL OFFERS
INCOME SOURCE | 100% LEGAL
Special Flint Cashout Method 100% Workin...
Xoom Bank Transfer Method EXCLUSIVE FOR ...
How to use RDP + Socks5 proxy + HQ socks...
3 HEROIN Synthesis & Manufacturing Tutor...
2020 HOW TO SAFELY PASS COUNTERFEIT MONE...
Make From 100$ - 500$ A Day / Legal Onli...
(CASHOUT CC TO SKRILL/HOW TO MAKE $500 A...


This is an analysis of a Samsung monitor which makes use of the Press-on framework graph methodology. The idea is that if the user inteaction can be described as a graph, then the graph properties can be used to describe the quality of the interaction.


{% extends "layout.html" %} {% block content %} Find your unicorn Give us your resume and we will find the unicorns for you. GET STARTED {% endblock %}
Give us your resume and we will find the unicorns for you.


Cryptocurrency Collectors Club for Beginners has 85,288 members. READ THIS BEFORE POSTING - This is the public Cryptocurrency Collectors Club. Everyone is welcome, this is for people new to cryptocurrency as well as the pros. Please do not spam and keep the focus on cryptocur...


Functions for performing forward and inverse FFT of real 16-bit and 32-bit input data.
Real forward FFT function with auto-scaling.
- Details
- Computes the forward discreet Fourier transform (DFT) of 16-bit real inputs. If the inputs are not already in bit reversed order the bit reversal parameter must be set. The output is monitored for overflow and scaled by a factor of two when an overflow risk is detected. The shift parameter contains the number of bit shifts that were applied to the output.
- This functions requires half the data storage and consumes roughly half the cycles and energy as running a complex FFT of the same length. When transforming purely real inputs, such as samples from an ADC or analog sensor, it is recommended to use the real FFT functions.
- Pseudo code
y = fft(real(x)) * 2^-shift
- Scaling
- Scaling is applied as needed to prevent saturation of the output. The scale factor that was applied to the output is returned in the shift parameter and can be used to calculate the result by applying the following function.
result = result * 2^shift
- LEA Support
- This function is supported by LEA and requires data to be placed into shared LEA memory with alignment equal to twice the data length (e.g. a 256-point real FFT requires 512-byte alignment). When allocating data the MSP_ALIGN_FFT_Q15 macro can be used to calculate correct alignment. The twiddle table pointer parameter is not used with LEA and can be null or uninitialized.
- Parameters
-
| params | Pointer to the real FFT parameter structure. |
| src | Pointer to the real data array to perform the FFT on. |
| shift | Auto-scaling shift that was applied to the output. |
- Returns
- Status of the operation.
Real forward FFT function with fixed scaling by two at each stage.
- Details
- Computes the forward discreet Fourier transform (DFT) of 16-bit real inputs. If the inputs are not already in bit reversed order the bit reversal parameter must be set. The output is scaled by a factor of two for each stage of the DFT.
- This functions requires half the data storage and consumes roughly half the cycles and energy as running a complex FFT of the same length. When transforming purely real inputs, such as samples from an ADC or analog sensor, it is recommended to use the real FFT functions.
- Pseudo code
y = fft(real(x)) ./ (N/2)
- Scaling
- Each stage of the real FFT, with the exception of the final split stage, scales the result by a factor of 0.5. The output format can either be interpreted as the same type with (N/2) scaling or a different fixed point data type. This can be helpful when using the IQmathLib to process the results of the FFT, such as computing the magnitude or phase angle of the complex result.
-
| Length | Input Type | Result Type |
| 16 | _q15 | _q12 |
| 32 | _q15 | _q11 |
| 64 | _q15 | _q10 |
| 128 | _q15 | _q9 |
| 256 | _q15 | _q8 |
| 512 | _q15 | _q7 |
| 1024 | _q15 | _q6 |
| 2048 | _q15 | _q5 |
| 4096 | _q15 | _q4 |
- The following table lists the applied scaling factor and resulting data type when the input is a 16-bit integer.
-
| Length | Input Type | Result Type |
| 16 | int16_t | (int16_t)(result / 8) |
| 32 | int16_t | (int16_t)(result / 16) |
| 64 | int16_t | (int16_t)(result / 32) |
| 128 | int16_t | (int16_t)(result / 64) |
| 256 | int16_t | (int16_t)(result / 128) |
| 512 | int16_t | (int16_t)(result / 256) |
| 1024 | int16_t | (int16_t)(result / 512) |
| 2048 | int16_t | (int16_t)(result / 1024) |
| 4096 | int16_t | (int16_t)(result / 2048) |
- LEA Support
- This function is supported by LEA and requires data to be placed into shared LEA memory with alignment equal to twice the data length (e.g. a 256-point real FFT requires 512-byte alignment). When allocating data the MSP_ALIGN_FFT_Q15 macro can be used to calculate correct alignment. The twiddle table pointer parameter is not used with LEA and can be null or uninitialized.
- Parameters
-
| params | Pointer to the real FFT parameter structure. |
| src | Pointer to the real data array to perform the FFT on. |
- Returns
- Status of the operation.
Real forward FFT function without scaling.
- Details
- Computes the forward discreet Fourier transform (DFT) of 32-bit real inputs. If the inputs are not already in bit reversed order the bit reversal parameter must be set. The output is not scaled.
- This functions requires half the data storage and consumes roughly half the cycles and energy as running a complex FFT of the same length. When transforming purely real inputs, such as samples from an ADC or analog sensor, it is recommended to use the real FFT functions.
- Pseudo code
y = fft(real(x))
- LEA Support
- This function is supported by LEA and requires data to be placed into shared LEA memory with alignment equal to four times the data length (e.g. a 256-point real FFT requires 1024-byte alignment). When allocating data the MSP_ALIGN_FFT_IQ31 macro can be used to calculate correct alignment. The twiddle table pointer parameter is not used with LEA and can be null or uninitialized.
- Parameters
-
| params | Pointer to the real FFT parameter structure. |
| src | Pointer to the real data array to perform the FFT on. |
- Returns
- Status of the operation.
- Examples:
- transform_ex3_fft_iq31.c.
Real result inverse FFT function with auto-scaling.
- Details
- Computes the inverse discreet Fourier transform (DFT) of 16-bit complex inputs with real result. If the inputs are not already in bit reversed order the bit reversal parameter must be set. Automatic scaling is performed such that this is the direct inverse of the forward FFT with auto scaling.
- This functions uses half the data storage and consumes roughly half the cycles and energy as running a complex IFFT of the same length. When transforming purely real inputs, such as samples from an ADC or analog sensor, it is recommended to use the real FFT functions.
- Pseudo code
y = (real(ifft(x)) * 2^shift) ./ (N/2)
- LEA Support
- This function is supported by LEA and requires data to be placed into shared LEA memory with alignment equal to twice the data length (e.g. a 256-point real FFT requires 512-byte alignment). When allocating data the MSP_ALIGN_FFT_Q15 macro can be used to calculate correct alignment. The twiddle table pointer parameter is not used with LEA and can be null or uninitialized.
- Parameters
-
| params | Pointer to the real FFT parameter structure. |
| src | Pointer to the real data array to perform the FFT on. |
| shift | Auto-scaling shift that was applied to the forward FFT. |
- Returns
- Status of the operation.
Real result inverse FFT function with fixed scaling by two at each stage.
- Details
- Computes the inverse discreet Fourier transform (DFT) of 16-bit complex inputs with real result. If the inputs are not already in bit reversed order the bit reversal parameter must be set. Fixed scaling is performed such that this is the direct inverse of the forward FFT with fixed scaling.
- This functions uses half the data storage and consumes roughly half the cycles and energy as running a complex IFFT of the same length. When transforming purely real inputs, such as samples from an ADC or analog sensor, it is recommended to use the real FFT functions.
- Pseudo code
y = real(ifft(x))
- Scaling
- This function is the direct inverse of the forward real FFT with fixed scaling. The following fixed point input types will all result in Q15 results.
-
| Length | Input Type | Result Type |
| 16 | _q12 | _q15 |
| 32 | _q11 | _q15 |
| 64 | _q10 | _q15 |
| 128 | _q9 | _q15 |
| 256 | _q8 | _q15 |
| 512 | _q7 | _q15 |
| 1024 | _q6 | _q15 |
| 2048 | _q5 | _q15 |
| 4096 | _q4 | _q15 |
- LEA Support
- This function is supported by LEA and requires data to be placed into shared LEA memory with alignment equal to twice the data length (e.g. a 256-point real FFT requires 512-byte alignment). When allocating data the MSP_ALIGN_FFT_Q15 macro can be used to calculate correct alignment. The twiddle table pointer parameter is not used with LEA and can be null or uninitialized.
- Parameters
-
| params | Pointer to the real FFT parameter structure. |
| src | Pointer to the real data array to perform the FFT on. |
- Returns
- Status of the operation.
Real result inverse FFT function without scaling.
- Details
- Computes the inverse discreet Fourier transform (DFT) of 32-bit complex inputs with real result. If the inputs are not already in bit reversed order the bit reversal parameter must be set. Fixed scaling is performed such that this is the direct inverse of the forward FFT without scaling.
- This functions uses half the data storage and consumes roughly half the cycles and energy as running a complex IFFT of the same length. When transforming purely real inputs, such as samples from an ADC or analog sensor, it is recommended to use the real FFT functions.
- Pseudo code
y = real(ifft(x)) ./ N
- LEA Support
- This function is supported by LEA and requires data to be placed into shared LEA memory with alignment equal to four times the data length (e.g. a 256-point real FFT requires 1024-byte alignment). When allocating data the MSP_ALIGN_FFT_IQ31 macro can be used to calculate correct alignment. The twiddle table pointer parameter is not used with LEA and can be null or uninitialized.
- Parameters
-
| params | Pointer to the real FFT parameter structure. |
| src | Pointer to the real data array to perform the FFT on. |
- Returns
- Status of the operation.


Tarantool/Box, or simply Tarantool, is a high performance key/value storage server. The code is available for free under the terms of BSD license. Supported platforms are GNU/Linux and FreeBSD.
The server maintains all its data in random-access memory, and therefore can handle read requests blazingly fast. At the same time, a copy of the data is kept on non-volatile storage (a disk drive), and inserts and updates are performed atomically.
To ensure atomicity, consistency and crash-safety of the persistent copy, a write-ahead log (WAL) is maintained, and each change is recorded in the WAL before it is considered complete.
If update and delete rate is high, a constantly growing write-ahead log file (or files) can pose a disk space problem, and significantly increase time necessary to restart from disk. A simple solution is employed: the server can be requested to save a concise snapshot of its current data. The underlying operating system's “copy-on-write” feature is employed to take the snapshot in a quick, resource-savvy and non-blocking manner. The “copy-on-write” technique guarantees that snapshotting has minimal impact on server performance.
Tarantool supports replication. Replicas may run locally or on a remote host. Tarantool replication is asynchronous and does not block writes to the master. When or if the master becomes unavailable, the replica can be switched to assume the role of the master.
Tarantool is lock-free. Instead of the underlying operating system's concurrency primitives, Tarantool uses cooperative multitasking environment to simultaneously operate on thousands of connections. While this approach limits server scalability to a single CPU core, in practice it removes competition for the memory bus and sets the scalability limit to the top of memory and network throughput. CPU utilization of a typical highly-loaded Tarantool server is under 10%.
The software is production-ready. Tarantool has been developed and is actively used at Mail.Ru one of the leading Russian web content providers. At Mail.Ru, the sowtware serves the “hottest” data, such as online users and their sessions, online application properties, the map between users and their serving shards.
To conclude, Tarantool/Box is ideal for highly volatile and/or highly accessed Web data. With Tarantool, performance overhead on serving data is minimal: a single server can easily deal with tens or even hundreds of thousands of requests per second. Snapshots can be made when Web user activity is at its lowest, for example at night, and thus add little or no restraint on the top throughput of the system. If the master becomes unavailable, a replica can assume the role of the master with minimal downtime.
IRC chatroom
#tarantool on irc.freenode.netWhat's new
2011-12-14: Tarantool 1.4.4, a maintenace version of stable 1.4 branch.
2011-08-25: Tarantool 1.4.2, featuring Lua stored prcoedures, is out.
2011-06-05: Tarantool User Guide is published.
2011-05-14: tarantool-1.3.5 (stable) is out.


Filip Handzel (b. 1994, Cracow, Poland) is transdisciplinary artist and student from Jan Matejko Academy of Fine Arts in Krakow and Bezalel Academy of Arts in Jerusalem. He focuses on contemporary media arts including creative coding, robotics and installations. He participated in exhibitions and festivals in Czech Republic, Israel and Poland. In December 2018, he received a scholarship from the Minister of Culture in Poland for artistic achievements.
------------------------
Education
------------------------
- Jan Matejko Academy of Fine Arts in Cracow, Poland
Graphic Arts Dpt (10.2014 - 10.2019)
- Bezalel Academy of Art and Design in Jerusalem, Israel
Fine Arts Dpt (2.2018 - 6.2018)
-------------------------
Exhibitions and festivals
-------------------------
International:
- Festival of new media arts "Prototyp 2018" in Brno, Czechia. (2018)
- "Anachnu lo medabrim ivrit" in Rothberg International School in Jerusalem, Izrael. (2018)
- "Binary Conflict" in Tytano, Cracow, Poland. (2017)
National:
- "Jak jest/How it is?" in Galeria Labirynt, Lublin (2017)
- "Gravity cinema/Kino grawitacyjne" with Marek Sobczyk and Mateusz Falkowski in Painting Gallery in ASP Cracow (2017)
- „Heterotopy” in Psychiatric Hospital in Cracow and Gallery of Painting Gallery in Cracow (5-6.2018)
- "Uśmierzanie bólu/Pain Relief" in Promotional Gallery ASP Cracow (2017)
- "(Per)wersje/(Per)version" in Tytano with MULTImedia Group, Dolne Mlyny, Cracow (2017)
- "Sprzeciw/Oppostition" video show in Pauza, Cracow with MULTImedia Group (2018)
- "Competition for Artwork Dzieło 2017" after competition for students in ASP Cracow. Gallery of Painting and "Academy in Bronowice" (2018)
- "Art review of avant-garde" in Szyb Wilson Gallery in Katowice. (2018)
- „From Academy” in District Museum in Sandomierz (2016)
- „Tak nam się wydaje/We think so” group student exhibtion in Center of Culture in Rotunda, Cracow (2017)
-------------------------
Scholarships
-------------------------
- Minister of Culture 2018/2019
- Marshal of the Małopolska Region "Sapere Auso" 2017/2018


"When first hearing about Harness I was instantly excited to finally see an innovative product come to the market to support the changing times in talent acquisition."
Talent Manager, Buzzfeed
Simply enter into Harness the vacancy you have, click Submit, and boom! The best tech recruiters around the world are working to find you the very best tech talent
Sit back, relax and watch the best candidates come your way – no admin, no chasing, we arrange interviews and do all the hard work, and so you don’t have too!
Found someone perfect for your team? Hire them! Harness allows you to focus on the things you love doing; meeting and greeting amazing people for your team!
"Harness enables me to access top talent within an area that I would not have good knowledge of or a good network in. It simplifies the recruitment process so I can spend more time with my stakeholders."
Barclay, Recruitment Manager
All you do is enter who you need. Literally, that's it. No endless cold calls, multiple recruiter briefings, candidate chasing, sending 100's of LinkedIn messages, trawling through CV boards...
Harness requires you to do nothing but review high quality, relevant and available CV's in one simple place. Zero admin.
Where else can you guarantee every inch of the market has been scouteal for the best tech talent? Our exclusive, curated network means no stone goes unturned in finding you the perfect candidate.
Don't need to hire this month? Then don't pay! We only charge you when you need us. Think of us as your super in-house recruiter, we're there when you need us. Otherwise, we'll just be chilling.
That's right, recruitment can be fun! We allow you to focus on the fun and important parts of hiring; meeting, greeting and qualifying the future employees of your business! No boring bits. Guaranteed.
Recruiting the top 5% top tech talent doesn't have to cost the earth, we make sure of it. 90% of what you pay us only happens when you find the candidate you love! OMG. No seriously, it's true.
FOUNDING DIRECTOR
<EMAIL_ADDRESS>Harness Ltd. 3rd Floor, 207 Regent St. London W1B 3HH.
02037523043
07469249766
ben@harnesstalent.com


You and your peers will no longer be able to access the endpoints provided below:


A simple pseudo-noise implementation
The PseudoNoise suite implements a basic colored noise synthesis algorithm, along with its
associated handler and actor. The noise is psueudo-random or repetitive. Various
amounts of filtered, non-repetitive "random" noise can be introduced to modulate or "break up"
the repetitiveness of the resulting sound.
PseudoNoise uses three parameters: "Cutoff", "Modulation Cutoff", and "Modulation Index". Cutoff
controls the frequency at which the noise spectrum falls off.
Specifically, a cutoff of 1000 Hz produces an output spectrum whose half-power point occurs at roughly 300 Hz.
Modulation Cutoff controls the cutoff frequency of the random modulating noise, in similar fashion to Cutoff.
. Modulation Index ranges
from 0 to 10 and controls the overall amount of random modulation applied to the repetitive noise.
To use the PseudoNoise implementation, load pnoise.so and create an actor of type PseudoNoiseActor.
PseudoNoiseActor messages
In addition to the messages understood by all generator actors, the PseudoNoiseActor understands the following messages:
- SetCutoff hActor x
- Set the default cutoff frequency for new instances created by this actor
to x Hz.
- SetAllCutoff hActor x time
- Set the cutoff frequency of all children to x Hz,
and set the default value for all future children.
If time is specified, children will modulate to the new value over the specified duration (in seconds).
Default cutoff is always set immediately regardless of time.
- SetModCutoff hActor x
- Set the default modulation cutoff frequency for new instances created
by this actor to x Hz.
- SetAllModCutoff hActor x time
- Set the modulation cutoff frequency of all children to x Hz,
and set the default mod cutoff for all future children. If time
is specified, children will modulate to the new mod cutoff over the
specified duration. Default mod cutoff is always set immediately regardless
of time.
- SetModIndex hActor x
- Set the default modulation index for new instances created by this actor
to x (in the range 0 to 10).
- SetAllModIndex hActor x time
- Set the modulation index of all children to x (between 0 and 10; default 0),
and set the default value for all future children.
If time is specified, children will modulate to the new value over the specified duration (in seconds).
Default modulation index is always set immediately regardless of time.
PseudoNoise handler messages
In addition to the messages understood by all handlers, the handler for the pseudonoise algorithm understands the following messages:
- SetCutoff hSound x time
- Set the cutoff frequency to x Hz.
If time is specified, move to the new value over time seconds.
- SetModCutoff hSound x time
- Set the modulation cutoff frequency to x Hz.
If time is specified, move to the new value over time seconds.
Note that this message has no audible effect if SetModIndex below is still zero.
- SetModIndex hSound x time
- Set the modulation index to x (between 0 and 10).
If time is specified, move to the new value over time seconds.
Default value is zero.


Symbol Index for "Unordered Species Relation"
Symbol Index for diagram
"Unordered Species Relation"
genus (Association)
Ordered Species Relation (Class)
Species Relation (Class)
SR/Ordering (Generalization Node)
Unordered Classificatn Element (Class)
Unordered Species Relation (Class)


This function takes the outputs from the functions weight()
optionally passed through weight.adjust()
, benchmarker()
, and a TerrADat SpatialPointsDataFrame with a field for reporting units. It applies spsurvey::cat.analysis()
and returns the results
analyze(evaluated.points, point.weights, default.reportingunit = "No reporting unit", reportingunit.type = NA, adjustedweights = FALSE, conf = 80)
| evaluated.points | Data frame output from |
|---|---|
| point.weights | Data frame output from |
| default.reportingunit | A string to populate the reporting unit field with in the case that designs were not restricted by reporting unit. Defaults to |
| reportingunit.type | A string to populate the reporting unit type field with. Depends on the reporting units used, e.g. it may be |
| adjustedweights | Logical. If |
| conf | Numeric. The confidence level. Defaults to |
A data frame with the output from spsurvey::cat.analysis()
analyze()#> Error in toupper(names(evaluated.points)): argument "evaluated.points" is missing, with no default


Node VCR
Record HTTP interactions The Node Way™. This repository is basically a clone of flickr/yakbak and is also based on ijpiantanida/talkback.
Installation
$ npm install node-vcr --save-dev
Code Documentation
Please refer to the github wiki page
Usage
The main idea behind testing HTTP clients with node-vcr is:
- Make your client's target host configurable
- Set up a node-vcr server locally to proxy the target host
- Point your client at the node-vcr server.
Then develop or run your tests. If a recorded HTTP request is found on disk, it will be played back instead of hitting the target host. If no recorded request is found, the request will be forwarded to the target host and recorded to disk (or return 404).
const crypto = require('crypto')
const http = require('http')
const nodeVcr = require('node-vcr')
const path = require('path')
const _ = require('lodash')
const proxyTarget = 'https://api.github.com/users/mbaertschi/orgs'
const dirname = path.join(__dirname, 'playback')
const port = 8888
const hash = (req, body) => {
const action = `${req.method.toLowerCase()}_${_.last(req.url.split('/'))}`
const content = body.toString()
const md5sum = crypto.createHash('md5')
return `${action}_${md5sum.update(content).digest('hex')}`
}
const handler = nodeVcr(proxyTarget, {
dirname,
hash
})
const server = http.createServer(handler)
server.listen(port)
Options
| Name | Type | Description | Default |
|---|---|---|---|
| host | String | The proxy target to tape | |
| dirname | String | The tapes directory | ./tapes/ |
| noRecord | Boolean | If true, requests will return a 404 error if the tape doesn't exist | false |
| maxRedirects | Number | Number of max http redirects. 0 means no redirects | 5 |
| tapeRequestBody | Boolean | If enabled the request body will be written to tape | false |
| ignoreHeaders | Array | Headers which must not be written down to tape (req and res) | [ ] |
| hash | Function | Provide your own IncomingMessage hash function of the signature function (req, body) |
see source |
| reload | Boolean | If true, node-vcr will reload (delete and record) required tape | false |
| refresh | Boolean | If true, node-vcr will refresh required tape | false |
Examples
Some examples and its results can be found in the folder under ./examples.
Tech-Stack
- nodemon development mode
- jest test environment
- jsdoc documentation
- npm-check for dependencies check
- pre-commit for pre git commit hooks
- babel to compile to es2015
Scripts
# start development mode with nodemon
yarn dev
# run tests with jest
yarn test
# start continous integration testing with jest
yarn ci
# generate the jsdoc documentation
yarn jsdoc
# run eslint
yarn lint
# check for dependendies updates
yarn deps
# build with babel
yarn build
License
MIT


I'm currently a trainer for the Provider Customer Service department at Regence BlueShield, and I'm learning full-stack web coding through UW Coding Bootcamp.


" History "
" Applications "
" Taxonomies "
" Development frameworks "
| "DSS Reservoir" | "DSS Applications" | "DSS V&B" |
|---|---|---|
| Classification[edit]There are several ways to classify DSS applications. Not every DSS fits neatly into one of the categories, but may be a mix of two or more architectures.Holsapple and Whinston[15] classify DSS into the following six frameworks: text-oriented DSS, database-oriented DSS, spreadsheet-oriented DSS, solver-oriented DSS, rule-oriented DSS, and compound DSS. | One is the clinical decision support system for medical diagnosis. There are four stages in the evolution of clinical decision support system (CDSS). The primitive version is standalone which does not support integration. The second generation of CDSS supports integration with other medical systems. The third generation is standard-based while the fourth is service model-based. | Using the relationship with the user as the criterion, Haettenschwiler differentiates passive, active, and cooperative DSS. A passive DSS is a system that aids the process of decision making, but that cannot bring out explicit decision suggestions or solutions. An active DSS can bring out such decision suggestions or solutions. |
" DSS ""An iterative developmental approach allows for the DSS to be changed and redesigned at various intervals. Once the system is designed, it will need to be tested and revised where necessary for the desired outcome." |


I kept running, and running, and running, and running...unitl, I ran into a brick wall.
Click here to start over.


Id: 235
Name: Mortytown Loco
Status: Dead
Species: Human
Type:
Gender: Male
OriginName: unknown
OriginUrl:
LocationName: Citadel of Ricks
LocationUrl: https://rickandmortyapi.com/api/location/3
Image: https://rickandmortyapi.com/api/character/avatar/235.jpeg
Episode: ['https://rickandmortyapi.com/api/episode/28']
Url: https://rickandmortyapi.com/api/character/235
Created: 2017-12-30T16:37:07.150Z