Hi all,
I have some noob questions about the EmonTx V3 I just recieved from the shop. Thank's guys for the quick shipping !
Note that I'm talking about an EmonTxV3 not fully assembled but ordered in a bundle with RFU+RFM12B, battery holder, power supply, ...
1. How to mount the RFU on the EmontxV3 board ? As I don't want to solder it directly onto the board, I have to use the male and female headers provided with the RFU. As I really don't feel confortable with soldering the headers, I want to be sure there is no alternative. So, could you please first confirm me that I have to solder the headers ? If yes, I guess that I have to solder the male headers on the board and the female headers on the RFU. Correct ? For the male headers, long or short pins to the board ? For the female headers, is there a good way ?
2. There is no antenna provided with the RFU, is it normal ? As my EmonTX will be very closed to my EmonBase (<3m), is it necessary to solder a cable antenna on the RFU ? If yes, what kind of cable should I use ?
3. Do I need to solder the battery holder of the EmonTxV3 ?
4. Another question about the Emonbase. Where to plug the RFM12BV2 on the RPI ? I mean on which GPIO pins ?
I'm sorry for asking these questions but I didn't managed to get these answers anywhere (on the main site, on the shop site or on the wiki.)
Regards,
Re: How to assemble an EmonTx V3
I haven't got an EmonTx V3 so I can't help with Q1-3. However to answer question 4,
If you look at your RFM12Pi board you should see in white GPIO PIn1 marked, this needs to match up with the P1 pin which is marked on the raspberry pi.
Re: How to assemble an EmonTx V3
The pictures here: http://wiki.openenergymonitor.org/index.php?title=EmonTx_V3#RFM12B might help you.
1. You do need to do some soldering. The male headers go on the edges of the RFu, with the long part mating with the female headers on the PCB, which of course use the holes adjacent to the SMT pads. So opposite to your assumption.
I haven't assembled one, if you're not confident that you can set the male headers accurately in position, you could try soldering the female into the PCB first, then mate the male, then fit the RFu between the pins. Only solder the two end pins first (on both male and female) and do the rest when you are sure they are in the correct places and a good fit. (You can unsolder one a lot easier than ten.)
2. I don't know whether a wire antenna is normally provided, all you need is a short length of solid insulated wire, the length is printed on the non-component side of the PCB. It solders onto the 'half-hole' immediately above the pad that leads to the SMA socket.
3. You don't need the battery holder if you are using a 5 V USB power supply or the ac adapter power (link JP2 made).
Re: How to assemble an EmonTx V3
HI,
Thank you both for helping me.
4. Ukmoose, I would like to add your picture into the wiki. Is it OK for you ?
1. So I am afraid I have to do some soldering. Thanks to Robert, I have a reasonable chance of doing it well but I am really not confident. In fact, I didn't select the option "emonTx V3 Assembled" when ordering because I was thinking that I will just have to plug the RFU. It should be clearly mention in the shop that adding RFU means soldering it. Today, I wish I had select this cheap option ...
2. I bought 3 EmonTx + RFU at the same time. Only for the first one, the wire antenna is missing. I will replace it.
3. I ordered a battery case for every EmonTx in addition to the AC adaptater power. I don't know if I will power the EmonTx with battery but now I have the battery cases. They seem to be at the right place, but not soldered. Can someone confirm that point ?
Eric
Re: How to assemble an EmonTx V3
If you are not confident to solder, buy a small piece of stripboard and a handful of cheap components, and practice on those first. Make sure your soldering iron is at the correct temperature, because you will cause more damage if it is too cold than if it is too hot as you will take longer to make the join. You should be able to solder one header pin in less than 1 s. Do not solder the pins in order - do one on one side, then one on the other side to allow the first side to cool before you go back to that side and do the third one, etc. If you take more than 1 s to solder one joint, stop. Allow it to go completely cold and only then try again.
The battery holder for the emonTx will fit in one place only. There is a printed rectangle that goes through the holes where you solder it to show where it fits. It was probably put into position so as not to be damaged or damage the PCB while in transit to you.
Re: How to assemble an EmonTx V3
Thank you so much for spending time to give these advices !
Re: How to assemble an EmonTx V3
I did it and everything seems to work fine !
Re: How to assemble an EmonTx V3
Congratulations on your new skills. Well done.


--- layout: default title: 'Error 404 (Not Found)!!1' ---
The requested URL was not found on this server. That's all we know.


Buzdar seeks compilation of non-Muslim employees’ data
by https://www.dawn.com/authors/397/the-newspaper-s-staff-reporter, The Newspaper's Staff ReporterLAHORE: Chief Minister Usman Buzdar has directed the authorities concerned to compile data of non-Muslim employees across the province to ensure protection of their rights.
The CM gave the direction during a meeting with a delegation of the National Commission for Minority Rights, led by Dr Shoaib Suddle, who called on him at his office on Friday.
The meeting discussed the provision of facilities and matters regarding welfare of the minorities.
Mr Buzdar said Punjab was being made a model when it came to protection of the minorities’ rights while the Punjab Minority Empowerment Package would prove to be an exemplary programme with regard to minorities’ welfare. He said Youhanabad would be made a model area with an amount of Rs300m.
The CM sought appointment of a provincial focal person for timely resolution of minorities’ issues, saying that the employees belonging to the minority communities be given official holidays on their religious days. He said non-Muslim students were being given educational scholarships worth Rs25m while another amount of Rs25m would be distributed among the non-Muslim research scholars and postgraduate students as scholarships.
Mr Buzdar talked about a proposal to exempt non-Muslim students from appearing in the competitive examinations during their religious festivals and events. He said lands reserved for the minorities in the province were being retrieved from squatters and asked the police officers to personally check the security of churches.
Dr Suddle apprised the CM of the objectives of the commission and added that Punjab would emerge as a model with regard to the protection of rights and provision of facilities to non-Muslim communities.
MNA Ramesh Kumar, Saqib Jillani advocate, minorities minister Ijaz Alam, ACS (Home), administrative secretaries and others attended the meeting.
Published in Dawn, November 16th, 2019


Sweet Shop is a project created to help demonstrate some of the great features of the Chrome DevTools which may be of use to people who help test web applications. Sweet Shop encompasses common issues found in real-world web applications!


F.A.Q
How does is it works ?
There is a default list set by our choice but don't be sad, you can edit it as you wish.
On each line, you can see a button which once clicked give you more info of the currency and a display of button actions. You can edit, delete and even add a new one.
Be aware that if cookie is accepted, you'll get your edited list everytime you connect on Crypto Market. Otherwise, we use the localstorage of your browser.
If you want to reset the list, you can reset everything by clicking on the reset button.
Now it's time to check the market !
| # | NAME | PRICE | 24H % | 7D % | MARKET CAP | VOLUME 24H | CTA |
|---|---|---|---|---|---|---|---|
| #1 | Bitcoin BTC | $58000 | 1.65% | 1.65% | $1,475,623,213 | volume | |
| #2 | Etherum ETH | $1600 | 4.35% | 2.14% | $66,456,213 | volume | |


Having worked a bit with Kotlin, I assume that you must have met the ?
and !!
operators by now. In case you haven’t, I’d suggest that you bookmark this post and come again once you have gained a little more experience with the basics of the language.
Just kidding, let’s briefly review both. If you have a variable which can be null
, Kotlin requires you to mark it as optional, by adding a question mark to its type:
var person: Person?
To access properties and methods of the person
variable, you must then either use the safe call operator (?
):
// the end result will either be a value of null, never an NPE
var name = person?.name
// The opertor allows for deep chaining as well
var firstName = person?.name?.firstName
or if you are really sure that the variable can never be null, you can assert it with a not-null-assertion (!!
):
// an exception will be thrown if person == null
var name = person!!.name
The difference with Java is that by applying the not-null-assertion, it is your own responsibility as a developer, and not the compiler’s.
OK, but what about !
?
Indeed, besides explicitly specifying a type as optional (Person?
), Kotlin presents us with another beast, called platform type, specified by putting a single exclamation mark instead (e.g. Person!
). This concept has been created for compatibility reasons, when accessing code from null-unsafe platforms like Java. It is often the case that when using a Java library, many methods return SomeType!
, since the Kotlin compiler cannot infer if the result is nullable or not.
As a developer, you should treat platform types in pretty much the same way as optional types. They are just annoying because they require seemingly unnecessary boilerplate. As Kotlin developers, we love designing method contracts around non-nulls, avoiding optional types as part of the parameter signature. If something can be optional, one would rather assign a reasonable default value than accept an optional parameter. Therefore, Java-style if (person == null)
checks, although perfectly legal, look very inelegant and Kotlin developers grunt when having to do them.
If you work with a Java API which returns you SomeType!
, which you then want to use in some Kotlin code, expecting SomeType
instead, you have three choices:
- Do a Java-style
null
check (😒) - Explicitly /unwrap/ the variable, using
!!
(but you have to 100% sure that it will never return null, otherwise you are back in Java-land) - Use the built-in let magic function
Let takes a lambda as a parameter, and passes the value of the variable as a parameter to this lambda.  The magic lies in the fact that let
will be called only if the value of result
is not null
, otherwise the call to it will be skipped altogether. If let
ever gets reached, the Kotlin compiler is smart enough to infer the type of it
(default parameter name in lambdas) to SomeType
and not to SomeType!
or SomeType?
.
Which approach will you choose? Let me know in the comments.
Further Reading
Single exclamation mark in Kotlin - Stack Overflow Calling Java from Kotlin - Kotlin Programming Language let - Kotlin Programming Language The difference between Kotlin’s functions: ‘let’, ‘apply’, ‘with’, ‘run’ and ‘also’
Leave a comment


Jordan Tantuico
Computer Science
Davis Hall
<EMAIL_ADDRESS>555-123-1234
Classes
CS 135
CS 284
PEP 112
MA 123
CAL 103
A relaxed group focused on completing the weekly Gradarius assignments for MA 123. We meet every Tuesday at 3:00 PM on the second floor of the library. Anyone is welcome to join.
A group created for reviewing the material for PEP 112 quizzes. Starts meeting two weeks before each quiz.
A group dedicated to solving the weekly problem sets for CS 135. Meets on the first floor of the library every Wednesday. Commuters are welcome.


Preparation time
less than 30 mins
Cooking time
10 to 30 mins
Serves
Serves 4
For the shallot purée, warm the olive oil and add a knob of butter in a saucepan. Once bubbling, add the sliced shallots, cover and cook for 15 minutes without allowing to colour. Stir occasionally. To avoid the shallots sticking to the pan, add 3-4 tablespoons of water to the pan once the shallots have softened.
Add the cream and continue to cook for a further five minutes. Remove from the heat, season and then liquidise to a smooth purée.
Place the peeled tangerine segments on a lightly oiled baking tray, brushing each with melted butter and topping with black pepper.
To cook the scallops, heat a drizzle of oil in a large frying pan. Place scallops in the hot pan and add the knob of butter.
Cook for 1-1½ minutes. Once coloured with deep tinges on their border, turn them over and continue to cook for a further 1-1½ minutes. The scallops will be cooked medium-rare. Season each with a few granules of sea salt, and place to one side.
Pour away excess fat from scallop pan and return to heat. Add the brandy to the pan, and deglaze.
Place the peppered tangerine segments under a hot grill.
Once the baking tray is almost dry, add the tangerine juice and boil quickly, allowing it to reduce in volume by at least half, to a syrupy consistency. Strain the syrup through a fine sieve.
Lay three tablespoons of warm shallot purée on each plate. Place a scallop on top of each, then place two warmed peppered segments on top of each scallop. Now drizzle the syrup over, finishing with two chives. Serve.


{{Infobox prepared food | name = Kharcho | image = | caption = | alternate_name = | country = Georgia | region = | creator = | course = | type = Soup | served = | main_ingredient = Meat (beef, lamb, pork, chicken, or goose), rice, cherry plum purée, English walnuts | variations = | calories = | other = }}
Kharcho ({{lang-ka|ხარჩო}}) is a traditional Georgian soup originating in Mingrelia containing beef, rice, cherry plum purée and chopped English walnut (Juglans regia). The soup is usually served with finely chopped fresh coriander. The characteristic ingredients of the soup are meat, cherry plum purée made from tklapi/tkemali, rice, chopped English walnut and the spice mix that varies between different regions of Georgia.
An example of a Georgian recipe for Kharcho:
Kharcho can be made using beef, lamb, pork, chicken or goose.<ref>Julianne Margvelashvili "The Classic Cuisine of Georgia", p.155</ref><ref>"Кавказская Кухня", Prosveschenie Publ. 1992</ref> Cut a cleaned, thoroughly washed piece of beef (brisket) into pieces, put it in 2 quarts of water, bring to boil and simmer for 2-2.5 hours, skimming the foam. When meat is soft - add rice, in 10 minutes add chopped walnut, allspice, bay leaf and peppercorns. And when it is almost ready add the cherry plum paste, the spices (cerulea, coriander seed, paprika, Turkish smoked red pepper) and then simmer for 5 minutes more. Adjust salt. Add fresh coriander, let cool, and serve.
{{reflist}}
{{soup-stub}} {{Georgia-cuisine-stub}}


[gecode-users] IIS using undoing
Max Ostrowski
ChaosAngel at gmx.de
Mon Jul 18 12:54:21 CEST 2011
> Betreff: Re: [gecode-users] IIS using undoing
>
> Thanks for the information.
> Do you think that recomputation in this case could pay off?
> Furthmore, to turn it into a constraint problem, how could i configure my search in a way that the reified constraint xb==x becomes true/false, without labeling xb.
Don't try to do that. You should always aim to branch on all the variables.
You could put them at the end of the variable ordering, where they should already be assigned. Also, it might well be that allowing them to be branched on early might produce the smallest searches, it is worth exploring the possibilities.
Chris
Sorry but you got me wrong.
I will elaborate a bit more this:
Consider decision machine (outside of Gecode).
It goes stepwise:
At first it decides to make
b_3=true
then i do propagation, nothing happens
Then it decides
b_1=false
propagation -> nothing
then it sets
b_4=true
propagation -> b_2=true is propagated
Now, the simplest reason for this propagation was:
b_3 /\ -b_1 /\ b_4 -> b_2
But maybe the constraint -b_1 was not necessary for this propagation, it is about some other problem.
So maybe only given b_3=true and b_4=true would also made the propagation b_2=true.
This is only a subset and a much smarter reason for the propagation.
If i would only test b_3=true nothing would be propagated, so b_3 is not the reason for b_2.
If i would now branch on b_2 the result of the propagation would always be
satisfiable, but i could not read information out of it.
I could not find out if the tested subset is enough to decided wether b_2=true or not.
I hope i could clarify the problem a bit.
Best,
Max
>My first idea was double reification.
>Consider the reified constraint set B=C are the set to minimize so that >they still propagate x.
>I do know the values of B.
>I could post the constraints D=C with fresh boolean variables D.
>Adding then boolean reified constraints (val(B)==D)==F.
>So that F_i indicates that the constraint c_i has the predifined value(or not).
>I could then minimize on the number of true F's(branching on F).
>But i do not know how to ensure that x==xb will be decided.
Any ideas?
--
NEU: FreePhone - kostenlos mobil telefonieren!
Jetzt informieren: http://www.gmx.net/de/go/freephone
More information about the users
mailing list


React Aws Serverless Deploying simple React app with Serverless / AWS I am learning Serverless and AWS for work. Here is what I did to deploy a basic app with Serverless.
React Devops How I configured ESLint and Prettier for React at work At work we are doing some set-up on our projects so we can work better as a team, especially as we grow. It made sense to look into linting and formatting we can
Devops How to fully delete Visual Studio Code from Windows 10 Recently I was messing around in my VS Code settings trying to get some new extensions to work. Long story short, I was following along with a tutorial, clicked a few things I
Design Usability - notes from design course I am back working on my Udemy course, “Master Digital Product Design: UX Research and UI Design”. In this post I will add some notes on usability.
Javascript Debugging Memory Dealing with memory leaks While working on a particularly difficult task at work I ended up learning a lot about memory leaks.
Sql Database Learning SQL Part 3 The previous post was getting a little long, so here is the last of the notes from my freecodecamp course in SQL.
Design Notes from UX design Udemy course I really love design. It was an area I did well in during school and my instructor commented on this a few times. I want to improve my skills and build a portfolio
Wordpress Using WordPress again - getting started We learned WordPress in school briefly as part of our CMS course. I could possibly get to work on some small freelance WordPress projects in the near future so I am relearning WordPress
Database Sql Dotnet Migrations 'There is already an object named ___ in the database' and 'Column names in each table must be unique' There were migrations performed on our application at work this week, which meant my database was out of date and the application would not load on my local machine.
Version-control When Sourcetree didn't work - 'fatal: authentication failed' error I know I shouldn’t feel incompetent every time I struggle with some kind of error or bug; dealing with frustration comes with being a developer, and I chose this. This issue, however, frustrated
Database Node.js Mongodb Mongoose Learning about databases in Udemy course I often feel I need to drill this information into my head a few times before I really get it, so here are some more notes with basic definitions surrounding databases.
Csharp Dotnet 500 server error and the csproj file Here is what I learned when we got a 500 server error while testing my code at work.
Javascript Node.js Api Reviewing API calls Today in my Web Developer course I am reviewing how to use APIs.
Javascript Jquery Dom Notes on jQuery I have seen jQuery all over the place, including at work, but I have never taken the time to learn it in depth. I figured I needed to do this soon, and there
Javascript Dom Notes on the DOM I finished my .NET MVC Udemy course and have gone back to my Web Developer Bootcamp Udemy course that I started before going to school.
Dotnet Database Migrations Last ditch effort – I deleted my database I have been working on my Udemy courses again, currently hoping to finish my MVC course.


--- layout: post title: ice cream soup date: '2012-10-29T18:24:00-04:00' tags: - poetry tumblr_url: http://poetry.liabogoev.com/post/54953750842/ice-cream-soup ---
it used to be
that’d we’d swirl our spoons
around and around
and make our own soft serve ice cream soup
mom would tell us not to play with our food
but we did anyway.
Now it’s a decade later
and the ice cream scoops melt along the bottom
and slide inside my bowl
as I slice little half moons with my spoon
not even mixing a little
I’ve grown up
and now
the melty makes me sad
and I’ve forgotten how to play.


Start modifying subtree with 5 node operations and 1000 ms delay between them
Start modifying subtree with 20 node operations and 100 ms delay between them
Start modifying and then update child div
Start fading in text
To Fade


Question
Input: {“firstName”:“John”,“lastName”:“Smith”,“isAlive”:true,“age” :25,“height_cm”:167.6,“address”:{“streetAddress”:“212ndStre et”,“city”:“NewYork”,“state”:“NY”,“postalCode”:“10021-3100” },“phoneNumbers”:[{“type”:“home”,“number”:“212555-1234”},{“ type”:“office”,“number”:“646555-4567”}],“children”:[],“spou se”:null}
Output:
{
"firstName": "John",
"lastName": "Smith",
"isAlive": true,
"age": 25,
"height_cm": 167.6,
"address": {
"streetAddress": "21 2nd Street",
"city": "New York",
"state": "NY",
"postalCode": "10021-3100"
},
"phoneNumbers": [
{
"type": "home",
"number": "212 555-1234"
},
{
"type": "office",
"number": "646 555-4567"
}
],
"children": [],
"spouse": null
}
Solution
Since I did not find anything useful online, I spent an hour writing the following code. These are the things to take into consideration:
Line break after a comma, a left bracket, or prior to a right bracket. A special pattern is “},” - we only do line break once after the comma.
Indentation is important. It’s a little complex cuz we reduce indentation BEFORE printing out a right bracket, but increase indentation AFTER the left bracket.
Code
public void prettify(String input) throws Exception {
// observation the rules for Json format:
// 1. each line end with either a { , or }
// 2. indentation depends on number of brackets
int len = input.length();
int left = 0;
int right = 0;
int tab = 0;
while (left < len) {
// first, advance right pointer to the next line break point
while (right < len) {
if (input.charAt(right) == '}' || input.charAt(right) == ']') {
// first case, if point to a closing bracket
tab--;
// indentation should change right away should we find a
// closing bracket
if (right + 1 < len && input.charAt(right + 1) != ',') {
break;
}
} else if (input.charAt(right) == ','
|| input.charAt(right) == '{'
|| input.charAt(right) == '[') {
// second case, break at , or {
break;
} else if (right + 1 < len
&& (input.charAt(right + 1) == '}' || input
.charAt(right + 1) == ']')) {
// third case, break prior to }
// we need not swap the order of first and third case,
// because when we found a closing bracket, we need to
// change indentation right away
break;
}
right++;
}
// now print the chars from left pointer to right inclusively
if (right == len) {
// end of input
if (tab != 0) {
throw new Exception("Json format error!");
}
right--;
// this is for the convenience of printing last line
}
printIndentation(tab);
System.out.println(input.substring(left, right + 1));
if (input.charAt(right) == '{' || input.charAt(right) == '[') {
tab++;
}
// last, update pointers
left = ++right;
}
}
private void printIndentation(int tab) {
for (int i = 0; i < tab; i++) {
System.out.print(" ");
}
}


Time Generated: 2015-04-26 21:57:32
-
Completed
-
- test
-
- Description:
test1
- Last Activity:
2015-04-12 09:20:21.274
- Labels:
complete, doing
- Comments:
- another test
-
- Description:
- Last Activity:
2015-04-12 07:00:34.777
- Labels:
complete
- Comments:
- test3
-
- Description:
- Last Activity:
2015-04-12 05:06:25.650
- Labels:
- Comments:
- test2
-
- Description:
this is a description
- Last Activity:
2015-04-11 16:44:59.578
- Labels:
complete
- Comments:


Peer Pressure VS Culture Pressure
Peer Pressure is not a kind of culture/society pressure. It exists in every culture, every society. However, cultural pressure doesn’t.
Last week, I talked with one of my colleagues about her recent pressure of getting married. Actually it’s her anxiety of finding a boyfriend. She is the same age with me. We were born in 1990, which has the largest newborn population in China. She thought she was facing a lot of pressure from her friends and colleagues. Because most of them have got married. It made me think that whether it’s because most of my friends haven’t got married which made me avoid being so nerve-wracking.
In fact, although I am still feeling OK with the marriage thing, I do feel a lot of pressure when it comes to the career. Many of my friends works in the big internet company. When we talk about the life in Alibaba or Tencent or Baidu, the pressure naturally comes to being. I know we are not focused on who is better instead of wishing we each other can be a better person in every aspect to make the friendship better.
When I was first thinking about these issues. I ascribed it to the peer pressure. When I had a morning talk with my oral English teacher, I realized these were not merely peer pressure or to some extent they cannot be defined as peer pressure. The culture pressure actually needs to account for the feelings or pressure.
For some people in other countries, the girls or boys born in 1990 usually don’t feel so eager to get married. Because parents or society didn’t think you are not so good so that you cannot find a good girl or boy. The society holds a different opinion towards marriage. As a matter of fact, the first time I felt some pressure about the marriage thing was when I graduated from the graduate school and went back hometown to visit my high school teacher. He asked me in a very strange voice, ‘Why don’t you find a boyfriend to get married?’ He was the big supporter for me to go to the graduate school and always encouraged me to go abroad to study. Still he has the opinion that girls should get married before 25-year-old. You see he is not old-fashioned or some stubborn old man. He is just 35 and he receives good high education. It has nothing to do with education or something like that, it’s just the concept the whole society holds.
It is the similar reason for the career pressure maybe. We have very narrow insight of success. So we defined ‘better’ in a narrow way. I knew some friends who chose to be independent photographer, freelancer and other jobs that cannot bring so much money or fame. I admire them but I still feel the pressure to be a better job market creature.
When we talk about peer pressure, which actually exist in every culture, it doesn’t have a big difference in different country or culture. And most of the time it exists among the teenagers.
Maybe the similarity between peer pressure and culture pressure is that both are unavoidable. The thing we can do is to say no to the ‘false’ cool but live in a real cool way to respect the individuality of ourselves.


About Me
Hi, I'm Stephany! I'm a Software Engineer in the making. I previously coached CrossFit and recently decided to delve into the world of technology. I reside in Atlanta, GA. When I'm not learning something new in this industry then you can find me petting any dog I can and hiking/rock climbing. Powered by VS Code and coffee, I turn concepts into websites.


| Field | Type | Label | Description |
| message | string |
|
| Field | Type | Label | Description |
| message | string |
|
| Field | Type | Label | Description |
| message | string |
|
| Field | Type | Label | Description |
| message | string |
|
| Field | Type | Label | Description |
| message | string |
|
| Field | Type | Label | Description |
| message | string |
|
| Method Name | Request Type | Response Type | Description |
| Echo | EchoRequest | EchoResponse | |
| EchoMultiple | EchoMultipleRequest | EchoMultipleResponse stream | |
| EchoBiDi | EchoBiDiRequest stream | EchoBiDiResponse stream |
| Method Name | Method | Pattern | Body |
| Echo | POST | /rpc/examples/echo/v1/echo | * |
Metadata is for custom key values provided by a client or server
during a stream.
| Field | Type | Label | Description |
| md | Metadata.MdEntry | repeated |
|
| Field | Type | Label | Description |
| key | string |
|
|
| value | Strings |
|
A PacketMessage is used to packetize large messages (> 64KiB) to be able to safely
transmit over WebRTC data channels.
| Field | Type | Label | Description |
| data | bytes |
|
|
| eom | bool |
|
A Request is a frame coming from a client. It is always
associated with a stream where the client assigns the stream
identifier. Servers will drop frames where the stream identifier
has no association (if a non-header frames are sent).
| Field | Type | Label | Description |
| stream | Stream |
|
|
| headers | RequestHeaders |
|
|
| message | RequestMessage |
|
RequestHeaders describe the unary or streaming call to make.
| Field | Type | Label | Description |
| method | string |
|
|
| metadata | Metadata |
|
|
| timeout | google.protobuf.Duration |
|
A RequestMessage contains individual gRPC messages and a potential
end-of-stream (EOS) marker.
| Field | Type | Label | Description |
| has_message | bool |
|
|
| packet_message | PacketMessage |
|
|
| eos | bool |
|
A Response is a frame coming from a server. It is always
associated with a stream where the client assigns the stream
identifier. Clients will drop frames where the stream identifier
has no association.
| Field | Type | Label | Description |
| stream | Stream |
|
|
| headers | ResponseHeaders |
|
|
| message | ResponseMessage |
|
|
| trailers | ResponseTrailers |
|
ResponseHeaders contain custom metadata that are sent to the client
before any message or trailers (unless only trailers are sent).
| Field | Type | Label | Description |
| metadata | Metadata |
|
ResponseMessage contains the data of a response to a call.
| Field | Type | Label | Description |
| packet_message | PacketMessage |
|
ResponseTrailers contain the status of a response and any custom metadata.
| Field | Type | Label | Description |
| status | google.rpc.Status |
|
|
| metadata | Metadata |
|
A Stream represents an instance of a gRPC stream between
a client and a server.
| Field | Type | Label | Description |
| id | uint64 |
|
Strings are a series of values.
| Field | Type | Label | Description |
| values | string | repeated |
|
AnswerRequest is the SDP offer that the controlling side is making via the answering
stream.
| Field | Type | Label | Description |
| sdp | string |
|
AnswerResponse is the SDP answer that an answerer responds with.
| Field | Type | Label | Description |
| status | google.rpc.Status |
|
|
| sdp | string |
|
CallRequest is the SDP offer that the controlling side is making.
| Field | Type | Label | Description |
| sdp | string |
|
CallResponse is the SDP answer that the controlled side responds with.
| Field | Type | Label | Description |
| sdp | string |
|
A SignalingService provides the means to have one client "call" another
client using the Session Description Protocol (SDP).
| Method Name | Request Type | Response Type | Description |
| Call | CallRequest | CallResponse | Call makes an offer to a client that it expects an answer to. It is assumed that the service is hosted solely for a specific client. That is, every client has its own signaling service identified by its hostname and in the case of TLS being used, SNI. |
| Answer | AnswerResponse stream | AnswerRequest stream | Answer sets up an answering service where the caller answers call offers and responds with answers. |
| Method Name | Method | Pattern | Body |
| Call | POST | /rpc/webrtc/v1/call |
| .proto Type | Notes | C++ | Java | Python | Go | C# | PHP | Ruby |
| double | double | double | float | float64 | double | float | Float | |
| float | float | float | float | float32 | float | float | Float | |
| int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
| int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long | int64 | long | integer/string | Bignum |
| uint32 | Uses variable-length encoding. | uint32 | int | int/long | uint32 | uint | integer | Bignum or Fixnum (as required) |
| uint64 | Uses variable-length encoding. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum or Fixnum (as required) |
| sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
| sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long | int64 | long | integer/string | Bignum |
| fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int | uint32 | uint | integer | Bignum or Fixnum (as required) |
| fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum |
| sfixed32 | Always four bytes. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
| sfixed64 | Always eight bytes. | int64 | long | int/long | int64 | long | integer/string | Bignum |
| bool | bool | boolean | boolean | bool | bool | boolean | TrueClass/FalseClass | |
| string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode | string | string | string | String (UTF-8) |
| bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str | []byte | ByteString | string | String (ASCII-8BIT) |


Choose the user's favourite file type, replace the program which handles the opening with a similar one described in the previous section, and voila!


Microsoft Sharepoint Basics
Microsoft Sharepoint Basics
This page has been created so that the KSU team can upload relavant articles, and other information that can be used to reference while preparing for the CCDC.
The color combination used here comes from CLRS.
Check out our Facebook Page


| Top |
| void | cairo_select_font_face () |
| void | cairo_set_font_size () |
| void | cairo_set_font_matrix () |
| void | cairo_get_font_matrix () |
| void | cairo_set_font_options () |
| void | cairo_get_font_options () |
| void | cairo_set_font_face () |
| cairo_font_face_t * | cairo_get_font_face () |
| void | cairo_set_scaled_font () |
| cairo_scaled_font_t * | cairo_get_scaled_font () |
| void | cairo_show_text () |
| void | cairo_show_glyphs () |
| void | cairo_show_text_glyphs () |
| void | cairo_font_extents () |
| void | cairo_text_extents () |
| void | cairo_glyph_extents () |
| cairo_font_face_t * | cairo_toy_font_face_create () |
| const char * | cairo_toy_font_face_get_family () |
| cairo_font_slant_t | cairo_toy_font_face_get_slant () |
| cairo_font_weight_t | cairo_toy_font_face_get_weight () |
| cairo_glyph_t * | cairo_glyph_allocate () |
| void | cairo_glyph_free () |
| cairo_text_cluster_t * | cairo_text_cluster_allocate () |
| void | cairo_text_cluster_free () |
The functions with text in their name form cairo's toy text API. The toy API takes UTF-8 encoded text and is limited in its functionality to rendering simple left-to-right text with no advanced features. That means for example that most complex scripts like Hebrew, Arabic, and Indic scripts are out of question. No kerning or correct positioning of diacritical marks either. The font selection is pretty limited too and doesn't handle the case that the selected font does not cover the characters in the text. This set of functions are really that, a toy text API, for testing and demonstration purposes. Any serious application should avoid them.
The functions with glyphs in their name form cairo's low-level text API. The low-level API relies on the user to convert text to a set of glyph indexes and positions. This is a very hard problem and is best handled by external libraries, like the pangocairo that is part of the Pango text layout and rendering library. Pango is available from http://www.pango.org/.
void cairo_select_font_face (cairo_t *cr
,const char *family
,cairo_font_slant_t slant
,cairo_font_weight_t weight
);
Note: The cairo_select_font_face()
function call is part of what
the cairo designers call the "toy" text API. It is convenient for
short demos and simple programs, but it is not expected to be
adequate for serious text-using applications.
Selects a family and style of font from a simplified description as a family name, slant and weight. Cairo provides no operation to list available family names on the system (this is a "toy", remember), but the standard CSS2 generic family names, ("serif", "sans-serif", "cursive", "fantasy", "monospace"), are likely to work as expected.
If family
starts with the string "cairo
:", or if no native font
backends are compiled in, cairo will use an internal font family.
The internal font family recognizes many modifiers in the family
string, most notably, it recognizes the string "monospace". That is,
the family name "cairo
:monospace" will use the monospace version of
the internal font family.
For "real" font selection, see the font-backend-specific
font_face_create functions for the font backend you are using. (For
example, if you are using the freetype-based cairo-ft font backend,
see cairo_ft_font_face_create_for_ft_face()
or
cairo_ft_font_face_create_for_pattern()
.) The resulting font face
could then be used with cairo_scaled_font_create()
and
cairo_set_scaled_font()
.
Similarly, when using the "real" font support, you can call directly into the underlying font system, (such as fontconfig or freetype), for operations such as listing available fonts, etc.
It is expected that most applications will need to use a more comprehensive font handling and text layout library, (for example, pango), in conjunction with cairo.
If text is drawn without a call to cairo_select_font_face()
, (nor
cairo_set_font_face()
nor cairo_set_scaled_font()
), the default
family is platform-specific, but is essentially "sans-serif".
Default slant is CAIRO_FONT_SLANT_NORMAL
, and default weight is
CAIRO_FONT_WEIGHT_NORMAL
.
This function is equivalent to a call to cairo_toy_font_face_create()
followed by cairo_set_font_face()
.
cr |
a cairo_t |
|
family |
a font family name, encoded in UTF-8 |
|
slant |
the slant for the font |
|
weight |
the weight for the font |
Since 1.0
void cairo_set_font_size (cairo_t *cr
,double size
);
Sets the current font matrix to a scale by a factor of size
, replacing
any font matrix previously set with cairo_set_font_size()
or
cairo_set_font_matrix()
. This results in a font size of size
user space
units. (More precisely, this matrix will result in the font's
em-square being a size
by size
square in user space.)
If text is drawn without a call to cairo_set_font_size()
, (nor
cairo_set_font_matrix()
nor cairo_set_scaled_font()
), the default
font size is 10.0.
Since 1.0
void cairo_set_font_matrix (cairo_t *cr
,const cairo_matrix_t *matrix
);
Sets the current font matrix to matrix
. The font matrix gives a
transformation from the design space of the font (in this space,
the em-square is 1 unit by 1 unit) to user space. Normally, a
simple scale is used (see cairo_set_font_size()
), but a more
complex font matrix can be used to shear the font
or stretch it unequally along the two axes
cr |
a cairo_t |
|
matrix |
a cairo_matrix_t describing a transform to be applied to the current font. |
Since 1.0
void cairo_get_font_matrix (cairo_t *cr
,cairo_matrix_t *matrix
);
Stores the current font matrix into matrix
. See
cairo_set_font_matrix()
.
Since 1.0
void cairo_set_font_options (cairo_t *cr
,const cairo_font_options_t *options
);
Sets a set of custom font rendering options for the cairo_t.
Rendering options are derived by merging these options with the
options derived from underlying surface; if the value in options
has a default value (like CAIRO_ANTIALIAS_DEFAULT
), then the value
from the surface is used.
Since 1.0
void cairo_get_font_options (cairo_t *cr
,cairo_font_options_t *options
);
Retrieves font rendering options set via cairo_set_font_options.
Note that the returned options do not include any options derived
from the underlying surface; they are literally the options
passed to cairo_set_font_options()
.
cr |
a cairo_t |
|
options |
a cairo_font_options_t object into which to store the retrieved options. All existing values are overwritten |
Since 1.0
void cairo_set_font_face (cairo_t *cr
,cairo_font_face_t *font_face
);
Replaces the current cairo_font_face_t object in the cairo_t with
font_face
. The replaced font face in the cairo_t will be
destroyed if there are no other references to it.
Since 1.0
cairo_font_face_t *
cairo_get_font_face (cairo_t *cr
);
Gets the current font face for a cairo_t.
the current font face. This object is owned by
cairo. To keep a reference to it, you must call
cairo_font_face_reference()
.
This function never returns NULL
. If memory cannot be allocated, a
special "nil" cairo_font_face_t object will be returned on which
cairo_font_face_status()
returns CAIRO_STATUS_NO_MEMORY
. Using
this nil object will cause its error state to propagate to other
objects it is passed to, (for example, calling
cairo_set_font_face()
with a nil font will trigger an error that
will shutdown the cairo_t object).
Since 1.0
void cairo_set_scaled_font (cairo_t *cr
,const cairo_scaled_font_t *scaled_font
);
Replaces the current font face, font matrix, and font options in
the cairo_t with those of the cairo_scaled_font_t. Except for
some translation, the current CTM of the cairo_t should be the
same as that of the cairo_scaled_font_t, which can be accessed
using cairo_scaled_font_get_ctm()
.
Since 1.2
cairo_scaled_font_t *
cairo_get_scaled_font (cairo_t *cr
);
Gets the current scaled font for a cairo_t.
the current scaled font. This object is owned by
cairo. To keep a reference to it, you must call
cairo_scaled_font_reference()
.
This function never returns NULL
. If memory cannot be allocated, a
special "nil" cairo_scaled_font_t object will be returned on which
cairo_scaled_font_status()
returns CAIRO_STATUS_NO_MEMORY
. Using
this nil object will cause its error state to propagate to other
objects it is passed to, (for example, calling
cairo_set_scaled_font()
with a nil font will trigger an error that
will shutdown the cairo_t object).
Since 1.4
void cairo_show_text (cairo_t *cr
,const char *utf8
);
A drawing operator that generates the shape from a string of UTF-8 characters, rendered according to the current font_face, font_size (font_matrix), and font_options.
This function first computes a set of glyphs for the string of text. The first glyph is placed so that its origin is at the current point. The origin of each subsequent glyph is offset from that of the previous glyph by the advance values of the previous glyph.
After this call the current point is moved to the origin of where
the next glyph would be placed in this same progression. That is,
the current point will be at the origin of the final glyph offset
by its advance values. This allows for easy display of a single
logical string with multiple calls to cairo_show_text()
.
Note: The cairo_show_text()
function call is part of what the cairo
designers call the "toy" text API. It is convenient for short demos
and simple programs, but it is not expected to be adequate for
serious text-using applications. See cairo_show_glyphs()
for the
"real" text display API in cairo.
Since 1.0
void cairo_show_glyphs (cairo_t *cr
,const cairo_glyph_t *glyphs
,int num_glyphs
);
A drawing operator that generates the shape from an array of glyphs, rendered according to the current font face, font size (font matrix), and font options.
Since 1.0
void cairo_show_text_glyphs (cairo_t *cr
,const char *utf8
,int utf8_len
,const cairo_glyph_t *glyphs
,int num_glyphs
,const cairo_text_cluster_t *clusters
,int num_clusters
,cairo_text_cluster_flags_t cluster_flags
);
This operation has rendering effects similar to cairo_show_glyphs()
but, if the target surface supports it, uses the provided text and
cluster mapping to embed the text for the glyphs shown in the output.
If the target does not support the extended attributes, this function
acts like the basic cairo_show_glyphs()
as if it had been passed
glyphs
and num_glyphs
.
The mapping between utf8
and glyphs
is provided by an array of
clusters. Each cluster covers a number of
text bytes and glyphs, and neighboring clusters cover neighboring
areas of utf8
and glyphs
. The clusters should collectively cover utf8
and glyphs
in entirety.
The first cluster always covers bytes from the beginning of utf8
.
If cluster_flags
do not have the CAIRO_TEXT_CLUSTER_FLAG_BACKWARD
set, the first cluster also covers the beginning
of glyphs
, otherwise it covers the end of the glyphs
array and
following clusters move backward.
See cairo_text_cluster_t for constraints on valid clusters.
cr |
a cairo context |
|
utf8 |
a string of text encoded in UTF-8 |
|
utf8_len |
length of |
|
glyphs |
array of glyphs to show |
|
num_glyphs |
number of glyphs to show |
|
clusters |
array of cluster mapping information |
|
num_clusters |
number of clusters in the mapping |
|
cluster_flags |
cluster mapping flags |
Since 1.8
void cairo_font_extents (cairo_t *cr
,cairo_font_extents_t *extents
);
Gets the font extents for the currently selected font.
cr |
a cairo_t |
|
extents |
a cairo_font_extents_t object into which the results will be stored. |
Since 1.0
void cairo_text_extents (cairo_t *cr
,const char *utf8
,cairo_text_extents_t *extents
);
Gets the extents for a string of text. The extents describe a
user-space rectangle that encloses the "inked" portion of the text,
(as it would be drawn by cairo_show_text()
). Additionally, the
x_advance and y_advance values indicate the amount by which the
current point would be advanced by cairo_show_text()
.
Note that whitespace characters do not directly contribute to the size of the rectangle (extents.width and extents.height). They do contribute indirectly by changing the position of non-whitespace characters. In particular, trailing whitespace characters are likely to not affect the size of the rectangle, though they will affect the x_advance and y_advance values.
cr |
a cairo_t |
|
utf8 |
a NUL-terminated string of text encoded in UTF-8, or |
|
extents |
a cairo_text_extents_t object into which the results will be stored |
Since 1.0
void cairo_glyph_extents (cairo_t *cr
,const cairo_glyph_t *glyphs
,int num_glyphs
,cairo_text_extents_t *extents
);
Gets the extents for an array of glyphs. The extents describe a
user-space rectangle that encloses the "inked" portion of the
glyphs, (as they would be drawn by cairo_show_glyphs()
).
Additionally, the x_advance and y_advance values indicate the
amount by which the current point would be advanced by
cairo_show_glyphs()
.
Note that whitespace glyphs do not contribute to the size of the rectangle (extents.width and extents.height).
cr |
a cairo_t |
|
glyphs |
an array of cairo_glyph_t objects |
|
num_glyphs |
the number of elements in |
|
extents |
a cairo_text_extents_t object into which the results will be stored |
Since 1.0
cairo_font_face_t * cairo_toy_font_face_create (const char *family
,cairo_font_slant_t slant
,cairo_font_weight_t weight
);
Creates a font face from a triplet of family, slant, and weight. These font faces are used in implementation of the the cairo_t "toy" font API.
If family
is the zero-length string "", the platform-specific default
family is assumed. The default family then can be queried using
cairo_toy_font_face_get_family()
.
The cairo_select_font_face()
function uses this to create font faces.
See that function for limitations and other details of toy font faces.
family |
a font family name, encoded in UTF-8 |
|
slant |
the slant for the font |
|
weight |
the weight for the font |
a newly created cairo_font_face_t. Free with
cairo_font_face_destroy()
when you are done using it.
Since 1.8
const char *
cairo_toy_font_face_get_family (cairo_font_face_t *font_face
);
Gets the familly name of a toy font.
The family name.
Since 1.8
cairo_font_slant_t
cairo_toy_font_face_get_slant (cairo_font_face_t *font_face
);
Gets the slant a toy font.
Since 1.8
cairo_font_weight_t
cairo_toy_font_face_get_weight (cairo_font_face_t *font_face
);
Gets the weight a toy font.
Since 1.8
cairo_glyph_t *
cairo_glyph_allocate (int num_glyphs
);
Allocates an array of cairo_glyph_t's. This function is only useful in implementations of cairo_user_scaled_font_text_to_glyphs_func_t where the user needs to allocate an array of glyphs that cairo will free. For all other uses, user can use their own allocation method for glyphs.
This function returns NULL
if num_glyphs
is not positive,
or if out of memory. That means, the NULL
return value
signals out-of-memory only if num_glyphs
was positive.
Since 1.8
void
cairo_glyph_free (cairo_glyph_t *glyphs
);
Frees an array of cairo_glyph_t's allocated using cairo_glyph_allocate()
.
This function is only useful to free glyph array returned
by cairo_scaled_font_text_to_glyphs()
where cairo returns
an array of glyphs that the user will free.
For all other uses, user can use their own allocation method
for glyphs.
Since 1.8
cairo_text_cluster_t *
cairo_text_cluster_allocate (int num_clusters
);
Allocates an array of cairo_text_cluster_t's. This function is only useful in implementations of cairo_user_scaled_font_text_to_glyphs_func_t where the user needs to allocate an array of text clusters that cairo will free. For all other uses, user can use their own allocation method for text clusters.
This function returns NULL
if num_clusters
is not positive,
or if out of memory. That means, the NULL
return value
signals out-of-memory only if num_clusters
was positive.
the newly allocated array of text clusters that should be
freed using cairo_text_cluster_free()
Since 1.8
void
cairo_text_cluster_free (cairo_text_cluster_t *clusters
);
Frees an array of cairo_text_cluster's allocated using cairo_text_cluster_allocate()
.
This function is only useful to free text cluster array returned
by cairo_scaled_font_text_to_glyphs()
where cairo returns
an array of text clusters that the user will free.
For all other uses, user can use their own allocation method
for text clusters.
Since 1.8
typedef struct { unsigned long index; double x; double y; } cairo_glyph_t;
The cairo_glyph_t structure holds information about a single glyph when drawing or measuring text. A font is (in simple terms) a collection of shapes used to draw text. A glyph is one of these shapes. There can be multiple glyphs for a single character (alternates to be used in different contexts, for example), or a glyph can be a ligature of multiple characters. Cairo doesn't expose any way of converting input text into glyphs, so in order to use the Cairo interfaces that take arrays of glyphs, you must directly access the appropriate underlying font system.
Note that the offsets given by x
and y
are not cumulative. When
drawing or measuring text, each glyph is individually positioned
with respect to the overall origin
glyph index in the font. The exact interpretation of the glyph index depends on the font technology being used. |
||
the offset in the X direction between the origin used for drawing or measuring the string and the origin of this glyph. |
||
the offset in the Y direction between the origin used for drawing or measuring the string and the origin of this glyph. |
Since 1.0
typedef struct { int num_bytes; int num_glyphs; } cairo_text_cluster_t;
The cairo_text_cluster_t structure holds information about a single text cluster. A text cluster is a minimal mapping of some glyphs corresponding to some UTF-8 text.
For a cluster to be valid, both num_bytes
and num_glyphs
should
be non-negative, and at least one should be non-zero.
Note that clusters with zero glyphs are not as well supported as
normal clusters. For example, PDF rendering applications typically
ignore those clusters when PDF text is being selected.
See cairo_show_text_glyphs()
for how clusters are used in advanced
text operations.
Since 1.8


Interface elements
-
36094 Visits
-
1433 Users
-
8650 Orders
-
12,6,9,23,14,10,17 +70%2968 Tickets
Warning! Your monthly traffic is reaching limit.
Success! The page has been added.
Info! You have 198 unread messages.
Error! The daily cronjob has failed.


Written by Supakorn Laohasongkram on July 17th, 2014
"You are in charge of your education!" I think that pretty much sum up my take on the DBC experience.
Personally, I love this kind of culture and very much would love to be in one all the time.
I myself has always feel I am responsible for my own life and thus also responsible for my own growth and education. I think part of growing up is to unlearn the child in oneself that only wants to play and do only what is told and no more: the lack of enthusiasm for growth. And with the education system only tell us what to do and rarely teach us the why-to-do, we ingrained to become that child who has enough of education.
Anyways, here we are, and on our way to Phase 1! I am already feeling like the long trek into the web dev world has begun. At some point, my mind fear itself not being able to be a good programmer. But the mind can fear but the feet must never faltered. You know Johny Walker's Slogan? Yes exactly...


Proof-of-concept chat client
A simple test of my async event handling framework.
Create new thread
Thread title:


Quest For The Flerbian Texts
Stats
Health:
%
Hover over items for description.
Inventory:
You Died Try Again
Try Again With Current Inventory
Click to play soundtrack:
Your browser doesn't support HTML5 audio.


JEL.bz paste bin
Paste content:
Make the paste secret (doesn't show up on
/pastes/
)
Checkout the source on
github


ML Essentials 2020, Heidelberg
number_of_airlines = len(airlines) + 1
embedding_dim = 1 # up to us
model.add(Embedding(input_dim=number_of_airlines,
output_dim=embedding_dim))
# embedding will be n-dimensional, but Dense can only handle flat input
model.add(Flatten())
# random additional layers to at least make this train
model.add(Dense(units=50, activation='relu'))
# ...
# two airports in a route
model.add(RepeatVector(2))
model.add(SimpleRNN(units=50, return_sequences=True))
# ca. 3500 airports in routes
output_dim = len(routes_tokenizer.word_index) + 1
model.add(Dense(units=output_dim, activation='softmax'))
Trained for two weeks on a single high-end GPU on CelebA-HQ data set (images of celebreties)
https://alantian.net/ganshowcase/
https://github.com/alantian/ganshowcase
https://twitter.com/alanyttian/status/988242167998148608


This was intended for auto-playing videos on iOS, but as of iOS 10, there is native supported option playsinline
, read more here:
https://webkit.org/blog/6784/new-video-policies-for-ios/
(Android works for ages now).
So this project is not actively maintained anymore. Use native HTML video instead of it.
If anyone wants to take over the maintenance, feel free to open an issue, and I'll add you as contributor.
This is intended for iPhone only, it can be used on any other browser
which support canvas and video. It doesn't play sound, I have no real
plan of adding audio support.
Audio is now supported. Autoplay on iOS is NOT working with audio (autoplay is disabled in that case).
It can be used with any HTML video player, just position canvas over the video. Intended usage was for background videos and showcases. Still, if you can, use regular HTML5 video, this was intended to use only on iPhones. This is plain JavaScript solution, no dependencies, IE9+ and modern browsers.
For IE9 there must be requestAnimationFrame
polyfill.
Audio is not tested on IE9.
Please let me know if you are using this player, I would like to make a small showcase, thanks!
Download on GitHub.
var canvasVideo = new CanvasVideoPlayer({
videoSelector: '.js-video',
canvasSelector: '.js-canvas'
});
var canvasVideo = new CanvasVideoPlayer({ videoSelector: '.js-video', canvasSelector: '.js-canvas', timelineSelector: '.js-timeline', framesPerSecond: 25, hideVideo: true, // should script hide the video element autoplay: false, // IMPORTANT On iOS can't be used together with autoplay, autoplay will be disabled audio: false, // can be true/false (it will use video file for audio), or selector for a separate audio file resetOnLastFrame: true, // should video reset back to the first frame after it finishes playing loop: false });
// Unbinds all of the events (when you destroy the player) canvasVideo.unbind() // Plays video canvasVideo.play() // Pauses video canvasVideo.pause() // Plays video if paused and vice versa canvasVideo.playPause() // Draws current frame on canvas, should not be called manually canvasVideo.drawFrame()
var isIphone = navigator.userAgent.indexOf('iPhone') >= 0; // Other way to detect iOS // var isIOS = /iPad|iPhone|iPod/.test(navigator.platform); if (isIphone) { // Init CanvasVideoPlayer here new CanvasVideoPlayer({ // Options }); } else { // Use HTML5 video }
Released under MIT licence.


Las Vegas hosts basketball’s Thanksgiving Madness
by Sam GordonUNLV isn’t the only college basketball team playing in Las Vegas this week.
The city is welcoming several men’s and women’s basketball events across a plethora of venues before and after Thanksgiving. A handful of players with Las Vegas ties are returning to their old stomping grounds, and some of the best teams in the country are here, too — including national runner up Texas Tech.
Here are the details.
MGM Resorts Main Event
Heavyweight bracket
When: Sunday, Tuesday
Where: T-Mobile Arena
No. 23 Colorado squares off against Wyoming at 5 p.m. Sunday, and Texas Christian and Clemson follow at 7:30. The losers will play a consolation game at 6 p.m. Tuesday. The winners play for the championship at 8:30.
Middleweight bracket
When: Sunday, Monday, Tuesday
Where: Clark High School
Detroit meets UC-Irvine at noon Sunday, then Louisiana at 1 p.m. Monday. UC-Irvine and Louisiana conclude the event Tuesday at 1 p.m.
Continental Tire Classic
When: Wednesday
Where: Orleans Arena
Oregon State and San Jose State play ahead of the eight-team Continental Tire Invitational.
Continental Tire Invitational
When: Thursday, Friday
Where: Orleans Arena
Tennessee State and Cal Poly open play Thursday at 11 a.m., followed by North Florida and LIU-Brooklyn at 1 p.m. National runner up and No. 12 Texas Tech plays Iowa at 5, and Creighton tangles with San Diego State at 7:30.
The losers of the first two games play a consolation game at 11 a.m. Friday, and the winners play at 1:30 p.m. The winners of the third and fourth games play for the championship at 5, and the losers play a consolation game at 7:30.
–––
Women
Thanksgiving Shootout
When: Friday, Saturday
Where: South Point Arena
Ten teams from across the country congregate for two games apiece. Sacred Heart opens Friday against Detroit Mercy at 11 a.m., and Tennessee Tech and Northern Illinois follow at 1:15 p.m. South Dakota and Ohio State play at 3:30, Southern California and Nebraska play at 5:45, and Northern Iowa and Alabama conclude the first day at 8.
Detroit Mercy plays Tennessee Tech at 11 a.m. Saturday, and Northern Illinois and South Dakota play at 1:15 p.m. Nebraska meets Sacred Heart at 3:30, Ohio State and Northern Iowa play at 5:45, and Alabama and Southern California conclude the event at 8.
Lady Rebel Round Up
When: Saturday, Dec. 1
Where: Cox Pavilion
UNLV hosts Elon at 11 a.m. Saturday, and St. John’s plays Indiana University-Purdue University Indianapolis at 1:30 p.m. The losers meet Sunday at 11 a.m., and the winners play for the championship at 1:30 p.m.
PLAYERS TO WATCH
Men
Tres Tinkle, Oregon State: The senior forward and All-America candidate averages 22.6 points and 10.2 rebounds.
McKinley Wright IV, Colorado: The all-conference junior point guard averages 14.7 points, 5.0 rebounds and 5.0 assists.
Tyler Bey, Colorado: The junior forward, formerly of Las Vegas High, averages 15 points and 9.7 rebounds.
PJ Fuller, Texas Christian: The former Findlay Prep star is averaging 5.8 points as a freshman.
Jahmi’us Ramsey, Texas Tech: The freshman guard is averaging a team-high 17.5 points.
Kyler Edwards, Texas Tech: The former Findlay Prep guard averages 10 points and 5.5 rebounds.
Women
Aliyah Jeune, Southern California: The senior guard averages a team-high 11.7 points.
Dorka Juhasz, Ohio State: The sophomore forward scores 12.3 points and 10.7 rebounds.
Leigha Brown, Nebraska: The sophomore forward averages 15.6 points and 4.2 rebounds.
Cierra Johnson, Alabama: The senior guard averages 13.5 points and 6.5 rebounds.


Please select a value
Option 1
Option 2
Radio button with label
Radio can have additional information
Checkbox with label
I am additional information regarding this field
Select your favorite framework
React
Vue
Angular
Select your favorite languages
CSS
HTML
Javascript


Medical Miracles
While searching for a serial question to embark on, I really wanted to be drawn to the patterns of trade or mail lines maybe even exciting expeditions. But I noticed one aspect of each issue that always caught my attention, the medical miracles. I would see personal accounts of Egyptian citizens telling their seemingly hopeless stories. “Severe rheumatism,” “kidney trouble,” and “poor appetite,” were just some of the bed confining ailments that were all suddenly cured by a magic box of pills. And these stories weren’t just present in my issues. I found them scattered throughout the whole year. The question I will be investigating is how successful really were these pills? I will be researching how many cases of medical success resulted from the Doan’s Backache Kidney Pills in particular, over the course of this year. I will also go into further studies of the proclaimed brand and gain more historical and background knowledge of its origins and the pill’s chemical makeup. I hope to conclude how successful of a brand this really was and determine if it was as miraculous as the people of Egypt claim.
I began my research by trying to gain a more conclusive background of the brand. Was it more natural or synthetic? What was the main ingredient? By sifting through countless pages I finally found my answer within the newspaper itself. Apparently Doan’s Backache Kidney Pills were a more natural remedy than anything else. The medicine had been used by the Quakers for 72 years, comprised of “roots” and “herbs.” The pill acts as a stimulant to the kidneys, naturally aiding the filtration blood, and the flushing of surplus water and impurities in the blood stream. Even more specifically, the pills catalyze the dissolving process of crystallise I poisons. This can in turn cure, “Bright’s Disease, dropsy, rheumatism, urinary disorders, gravel, gall stones, sciatica, lumbago, weak heart, and diabetes,” or so the brand claims, I have attached proof of these claims in the following images.
I however decided to conduct my own personal research. I did find that they were indeed comprised of natural ingredients,”purely vegetable” to be exact. I discovered this through a reliable web source, detailing the pill’s wrapper information and directions for use. I have provided a chart listing the pill’s components and the source from which obtained can be found in my works cited.
I then decided to turn my attention back to the newspaper. Knowing that these pills were actually what they claimed to be, just how many cases of success were reported? And what did they all have in common? I began to search for a pattern. There were fourteen total features of the Doan’s Backache Kidney Pills. A few of the advertisements were purely informational. Including facts about the drug and symptoms it could treat. The others were actual patient accounts. I organized these based upon which condition or conditions they suffered from and claimed to have been cured. I then organized this into the following chart.
The results were astonishing. The drug did in fact treat a wide variety of diseases that it claimed to have. One of the most prevalent being kidney disease which is a very serious condition. I decided to research all of the diseases that patients claimed to have been cured from, and compare them to modern ways of treatment, I made several breakthroughs with this method.
Kidney disease cannot be treated by medication alone, it can ease symptoms by providing much needed vitamins, but it cannot actually cure kidney disease which is what these subjects claimed. Nowadays the only real cure is dialysis or kidney transplantation, anything else is just a cover up for the real issues at hand, only treating the symptoms and not the problem. Below I have included all of the cases of supposedly cured kidney disease within the issues and next to that I have included up to date information from a reliable medical source.
Rheumatism, unlike kidney disease can be treated with medication. There is no cure for this disease but anti-inflammatory drugs can make an unbelievable difference and ease joint pain greatly, so it is very likely that sufferers of this condition were actually assisted by Doan’s Backache Kidney Pills. Again I have included all of the cases of cured Rheumatism within the issues and next to that I have included up to date information from a reliable medical source.
Bright’s Disease was another claimed ailment supposedly cured by these pills. Bright’s Disease is currently treated on a case by case basis because each underlying cause of disease is very different and there could be a wide range of causes for each unique person. However, it is greatly possible that the Doan’s Backache Kidney Pills did indeed assist in relieving symptoms in some cases, if the cause was inflammation of the kidneys and nothing else. So these claims are not discounted. I included all of the cases of cured Bright’s Disease within the issues and next to that I have included up to date information from a reliable medical source.
Next was dropsy, currently known as edema. This is swelling caused by excess fluid trapped inside your tissues. It was proven that this ailment can in fact be treated by simple diuretics, just like Doan’s Backache Kidney Pills so I have concluded that all of these patient claims are valid. Again, I included all of the cases of cured dropsy within the issues and next to that I have included up to date information from a reliable medical source.
Individuals also claimed that their loss of appetite was somehow regained after taking the pills. Upon research, this was the most difficult to conclude. Loss of appetite can stem from many things, a majority of them being psychological. But many cases occur because of bacteria, viruses, and severe medical conditions, including kidney failure. These pills had the capability of strengthening the kidneys so it is possible that if the source of the problem was kidney functioning the pills may have been helpful in treating loss of appetite. I can conclude that these patient claims were in fact valid. I included all of the cases cured of loss of appetite within the issues and next to that I have included up to date information from a reliable medical source.
Back pain was one of the last conditions that was claimed to have been cured by these pills. Just as Bright’s Disease, it is diagnosed on an individual basis by doctors and treated accordingly. But medications have been proven useful if they contain anti-inflammatory agents. Therefore I have to render all claims of cured back pain from Doan’s Backache Kidney Pills reliable. I included all of the cases of cured back pain within the issues and next to that I have included up to date information from a reliable medical source.
Lastly was urethral stricture, this is the narrowing of the urethra which restricts urinary flow. Modern research suggests that medication is of no assistance in treating the disease. It can only be cured surgically by physically removing the blockage. Therefore, the claim made for urethral stricture being cured by Doan’s Kidney and Backache Pills must be discounted. I included all of the cases of cured back pain within the issues and next to that I have included up to date information from a reliable medical source.
My final conclusion is that Doan’s Backache and Kidney Pills were undoubtedly effective. However they were not as miraculous as they claimed to be. They were not the cure for kidney disease and they could not have been curative for urethral strictures. And not to mention there were diseases they said they could cure that were never even mentioned by patients, throughout the whole year. If the pills really did cure severe conditions, like diabetes and weak heart, I would think the public would be inclined to speak out and I believe these cures would still be acknowledged and practiced today, but they are not. I do think this drug provided much needed relief for many people suffering from things like back pain, loss of appetite, rheumatism, dropsy, and very specific cases of Bright’s Disease. And that in and of itself is remarkable, especially for a natural drug, one sold over the counter, and one of this time period. The Doan’s brand is still around today and sold at local drugstores, it still acts as an anti- inflammatory drug and has extremely high ratings from users. The only conditions they claim to cure nowadays is joint stiffness, swelling and pain. I really do believe that this was an extraordinary brand, maybe not capable of medical miracles but certainly capable of relief.
Works cited: - https://macdonaldtownbicycleclub.com/2016/08/15/doans-backache-and-kidney-pills-mr-john-loaney-a-permanent-cure-after-three-years-suffering/ - https://www.gstatic.com/healthricherkp/pdf/chronic_kidney_disease.pdf - https://www.gstatic.com/healthricherkp/pdf/rheumatoid_arthritis.pdf - https://medlineplus.gov/ency/article/000464.htm - http://www.mayoclinic.org/diseases-conditions/edema/basics/definition/con-20033037 - http://www.healthline.com/symptom/loss-of-appetite - https://www.gstatic.com/healthricherkp/pdf/low_back_pain.pdf - http://www.urologyhealth.org/urologic-conditions/urethral-stricture-disease/treatment


Apple’s highest-end MacBook Pro now costs $7,459 in Canada
If you need a large MacBook screen it's going to cost you
by Brad BennettApple’s new 16-inch MacBook Pro starts at an expensive $3,000 CAD, with the price ranging up to a mind-boggling $7,459 in Canada.
Just for fun, we built (but didn’t buy) the most expensive version of Apple’s new MacBook in the company’s online store. Without any software add-ons, the large laptop’s maximum price is just under $7,500 CAD — and that’s without including taxes.
For that price, you’re getting the 9th gen Intel i9 chipset that turbo clocks up to 5GHz, 64GB of DDR4 RAM, an AMD Radeon Pro 5500M with 8GB of GDDR6 and memory and 8TB of onboard storage.
To compare, the cheapest model includes a 9th gen Intel i7 that turbo boosts up to 4.5GHz, 16GB of DDR4 RAM, an AMD Radeon Pro 530M with 4GB of GDDRR6 memory and 512GB of storage.
Apple is still charging a premium for some parts like RAM and internal storage, but overall, the latest MacBook is a powerhouse.
Depending on your use case you may need to build a more expensive version of this computer, but the base model isn’t bad by any stretch of the imagination. If you need a cheaper MacBook Pro, the 13-inch Pro starts at $1,700.
Source: Apple


This demo cuts out the closest person, and projects that person always at the same size and position, no matter the real life position from the Kinect.


In many cases, FP numbers will need to be converted to different types for use in different parts of an application. For example, floating point numbers may be involved in a complex function that returns an integer. FP numbers may also need to appear to the user as ASCII text.
There are several routines which convert GEOS FP numbers into other float formats, compatible with the C types
float
and
double
. Typically in C, this conversion is accomplished by casting the FP numbers into the other type. It is therefore done automatically for you.
If you are working in Assembly or you wish to directly pass floats or doubles to C stubs, consult Direct FP Operations .
FloatAsciiToFloat()
FloatAsciiToFloat()
converts a number represented in an ASCII text format into a FP number. The routine recognizes two flags:
The routine must also be passed a pointer to the string to convert, the number of characters in the string to convert (starting at the address) and the buffer to store the FP number if passing FAF_STORE_NUMBER.
FloatFloatToAscii(), FloatFloatToAscii_StdFormat(), FloatFloatIEEE64ToAscii_StdFormat()
FloatFloatToAscii()
converts an FP number into ASCII text format. The routine must be passed a stack frame, which may be set up by declaring a local variable of type
FFA_stackFrame
and moving data into the appropriate fields. You should also pass the routine a pointer to a buffer to store the resultant string. This buffer must be declared with a length of either:
The
FFA_stackFrame
is a union of two structures:
FloatFloatAsciiData
or
FloatFloatToDateTimeData
. You will want to use the
FloatFloatToAsciiData
structure in most cases;
FloatFloatToAsciiDateTimeData
is used to format a FP number (representing a date and time) into a date-time format passed in the structure. The routine checks a bit in the structure to see which structure is being passed.
The
FloatFloatToAsciiData
structure is used most often in formatting FP numbers into ASCII. The structure is rather large and cumbersome to set up. You may wish to use the routine
FloatFloatToAscii_StdFormat()
which sets up many of these entries automatically. ( FloatFloatToAsciiData Structure
lists the entries of the
FloatFloatToAsciiData
structure.)
Code Display D-4 FloatFloatToAsciiData Structure
typedef struct {
/* * FFA_params stores the entries that the caller must set up. */ FloatFloatToAsciiParams FFA_params;
/* * These entries store information returned by FloatFloatToAscii() that may be * examined. */ word FFA_startNumber; word FFA_decimalPoint; word FFA_endNumber; word FFA_numChars; word FFA_startExponent;
/* * The rest of the entries are for internal use only. */ word FFA_bufSize; word FFA_saveDI; word FFA_numSign; byte FFA_startSigCount; byte FFA_sigCount; byte FFA_noMoreSigInfo; byte FFA_startDecCount; byte FFA_decCount; word FFA_decExponent; word FFA_curExponent; byte FFA_useCommas; byte FFA_charsToComma; char FFA_commaChar; char FFA_decimalChar; } FloatFloatToAsciiData;
FFA_
params
is a structure that stores the following entries of its own:
decimalOffset
of -6 shifts the decimal point six places to the left; to display in terms of tenths would require a
decimalOffset
of 1.
decimalLimit
of 2 would print out 123.456789 as 123.46.
The
formatFlags
record is a record of type
FloatFloatToAsciiFormatFlags
and defines the format of the ASCII output. Set the appropriate flags to get the desired output.
FloatFloatToAscii()
if this flag is set.
The rest of the entries in
FloatFloatToAsciiData
store information filled in by
FloatFloatToAscii()
. These entries are described below:
startNumber
stores the offset to the start of numeric characters in the ASCII buffer.
decimalPoint
stores the offset to the decimal point character or zero if no decimal point is present.
endNumber
stores the offset to the end of the numeric characters in the ASCII buffer.
numChars
stores the total number of characters in the ASCII buffer (excluding the null terminator). This entry is set to zero if an error is encountered.
startExponent
stores the offset to the "E" character in the ASCII buffer or zero if no exponent is present. Applications can check this to see if the number was expressed in scientific notation using the `E' format.
FFA_stackFrame
may contain
FloatFloatToAsciiDateTimeData
if
FloatFloatToAscii()
is being used to convert a FP number into a date-time format. In that case
FFA_stackFrame
contains the structure
FloatFloatToDateTimeData
instead of
FloatFloatToAsciiData
. (
FFA_stackFrame
is a union.)
FloatFloatToDateTimeData
contains one entry, FFA_
dateTimeParams
. This structure contains several flags which specify how the date-time should be formatted and a number of entries which break down the date-time into its respective parts (year, month, day etc.) If none of these entries are filled in, the date-time is taken from the top of the FP stack.
Date-times are represented by FP numbers in GEOS. The integer portion represents dates as integers counted from Jan 1, 1900, which is designated as 1. The highest date allowed is 73049 (December 31, 2099).
The fractional portion represents a fraction of the day between midnight (0.000000) and 11:59:59 p.m. (0.999988). This fractional value is derived from the hour, minute and second of the day.
Code Display D-5 DateTime Parameters
typedef struct { FloatFloatToDateTimeFlags FFA_dateTimeFlags; word FFA_year; byte FFA_month; byte FFA_day; byte FFA_weekday; byte FFA_hours; byte FFA_minutes; byte FFA_seconds; } FloatFloatToDateTimeParams;
/* * FloatFloatToDateTimeFlags record */
typedef WordFlags FloatFloatToDateTimeFlags; #define FFDT_DATE_TIME_OP 0x8000 #define FFDT_FROM_ADDR 0x4000 #define FFDT_FORMAT 0x3fff
The flag FFDT_DATE_TIME_OP is set to notify the
FloatFloatToAscii()
routine that this operation is a date-time format, not a normal float to ASCII conversion. This flag must be set if you want to convert the FP number into a date-time format using
FloatFloatToAscii()
.
FFDT_FROM_ADDR is set if the date-time FP number should not be taken from the FP stack (or passed directly in the
FloatFloatToDateTimeParams
structure) but should instead be taken from the address passed in
FloatFloatToAscii()
.
FFDT_FORMAT stores the
DateTimeFormat
that the routine will use to format the number into a date-time string.
If the date-time is directly passed in, and not taken from an FP date-time number either at a passed address or the top of an FP stack,
FloatFloatToAscii()
looks at the other passed parameters.
FFA_
year
specifies the year. The value must be between 1900 and 2099. This is not a one-based year, as it is when presented as a date-time number.
FFA_
month
is the month of the year, a value between 1 and 12.
FFA_
day
is the day of a month, a value between 1 and 31.
FFA_
hour
specifies the hour of the day, a value between 0 and 23. Zero specifies midnight.
FFA_
minutes
specifies the minute of the hour, a value between 0 and 59.
FFA_
seconds
specifies the second of the minute, a value between 0 and 59.
FloatFloatToAscii_StdFormat()
uses a pre-set stack frame, eliminating the need to set up the variables of the
FloatFloatToAsciiData
structure manually. The only flags recognized are FFAF_FROM_ADDR, FFAF_SCIENTIFIC, FFAF_PERCENT, FFAF_USE_COMMAS, and FFAF_NO_TRAIL_ZEROS. The developer must pass the number of total digits and the number of decimal digits desired. If the flag FFAF_FROM_ADDR is used, a pointer to a FP number (not on the FP stack) must also be passed.
The standard format sets the following elements of the stack frame to zero:
decimalOffset, header, trailer, postNegative, prePositive
, and
postPositive
. The structure element
preNegative
is set to the minus sign ("-
").
FloatFloatIEEE64ToAscii_StdFormat()
performs the same operation as
FloatFloatToAscii_StdFormat()
except that the FP number is passed (in 64 bit format) and is not taken from the stack. The entire FP number (not just a pointer to it) must be passed. All criteria for
FloatFloatToAscii_StdFormat()
applies to this routine, except that the flag FFAF_FROM_ADDR is not used.
FloatGetDateNumber(), FloatDateNumberGetYear(), FloatDateNumberGetMonthAndDay(), FloatDateNumberGetWeekday(), FloatGetTimeNumber(), FloatTimeNumberGetHour(), FloatTimeNumberGetMinutes(), FloatTimeNumberGetSeconds()
FloatGetDateNumber()
, when passed the month, day, and year, converts the data into an FP "date number" representation. This format represents dates as integers counted from Jan 1, 1900, which is designated as 1. The highest date allowed is 73050 (December 31, 2099).
FloatDateNumberGetYear(), FloatDateNumberGetMonthAndDay()
and
FloatDateNumberGetWeekday()
all return the appropriate data, either the year, month and day, or weekday, given an FP "date number" as defined above. All data are returned as integers, not as FP numbers, and the original FP "date number" is popped off of the stack. Years are returned as integers between 1900 and 2099. Month and Days are returned as integers between 1 and 12, and 1 and 31, respectively. Weekdays are returned as integers between 1 and 7, where 1 is Sunday, 2 is Monday, etc.
FloatGetTimeNumber()
when passed hours, minutes, and seconds returns an FP decimal representation between midnight (0.000000) and 11:59:59 p.m. (0.999988).
FloatTimeNumberGetHour(), FloatTimeNumberGetMinutes()
and
FloatTimeNumberGetSeconds()
return the appropriate data given an FP "time number" as defined above. The original FP "time number" is popped off of the stack.
Note that both "date numbers" and "time numbers" can be added to specify a specific point in time. For example, 73050.999988 would specify December 31, 2099, 11:59:59. Since these formats are in FP format, they can be operated on with all standard functions in the FP library.
FloatGetDaysInMonth(), FloatGetNumDigitsInIntegerPart(), FloatFormatNumber()
FloatGetDaysInMonth()
returns the total number of days in a specific month, for a specific year. The routine must be passed the appropriate month and year.
FloatGetNumDigitsInIntegerPart()
returns the number of digits in the integer portion of an FP number. Numbers between zero and one will return one as the number of digits.
FloatStringGetDateNumber(), FloatStringGetTimeNumber()


--- layout: home title: Simple Porfolio Using Jekyll subtitle: Use The Navbar In The Top Right To Learn More! ---


--- layout: categories title: Professional thumbnail: city2.jpg --- {% for post in site.categories.professional %}
{{ post.date | date_to_string: "ordinal", "US" }} / by {{ post.author }}


This site contains the syllabus, schedule, and assignments for ECON 306 — Microeconomic Analysis, held during Spring 2021 at Hood College.
By the end of this course, you will:
apply the models of microeconomics (constrained optimization and equilibrium) towards explaining real world behavior of individuals, firms, & governments
explore the effects of economic and political processes on market performance (competition, market prices, profits and losses, property rights, entrepreneurship, market power, market failures, public policy, government failures)
apply the economic way of thinking to real world issues in writing
Use quantitative tools and techniques in the preparation, interpretation, analysis and presentation of data and information for problem solving and decision making […]
Apply economic reasoning and models to understand and analyze problems of public policy […]
Demonstrate effective oral and written communications skills for personal and professional success[…]


--- layout: default title: Line Intersection ---
Find the intersection between two different line segments.
// YOU CAN CHOOSE RESPONSE FORMAT // Two lines that cross each other var line0 = [ {x:0,y:0}, {x:100,y:100} ] ; var line1 = [ {x:100,y:0}, {x:0,y:100} ] ; // inter = [50,50] var inter = GeomUtil.intersect( line0[0].x,line0[0].y,line0[1].x,line0[1].y, //First line line1[0].x,line1[0].y,line1[1].x,line1[1].y //Second line );


a responsive website is a website which changes its layout/size based on the size of the screen. The reason for this is to keep the iewers experience of the website enjoyable across the board. Due to tablets and spartphones, along with laptops and desktops having differend sized sreens, websites need to be able to alter their layout to accomadate for the change, otherwise you would need to make a whole new website just for the different platforms.
Due to the fact that smartphones are becoming ever more popular, users are spening more time on their phones looking at websites, rather than their laptop/desktop. As mentioned in the previous question, designers would make two differend websites to accomodate for both desktop/laptop and smartphone, as sites became more complex, the two site wouled become harder and harder to keep up to date, so now thanks to HTML guidlines evoving, you can now make a website which accomodates both smartphone and laptop/desktop, which alters its layout according to the size of the screen.
Frameworks are sets of pre-build stylesheets, which assist developers in reating a new website, they save alot of time as you dont have to write the code manually, but in doing this you may find that you dont know how things work, due to the framework doing it automatically.
wireframes are like the blueprints of a website, which you creat prior to designing. thhey can be made using software on a computer or can be drawn up by hand. in my case i drew them by hand.
it is a good way to wrap your head around how the site will look when it is finished, and also to remind you of what you you wanted from your website.


UIUC CS498 Data Visualization: Final Project
Suk Min Hwang (shwang53)
1. Number of developers' Job Openings
2. Average Salaries
3. Average Cost of Living


About GPGUI
GPGUI is a program wrapping the most fundamental PGP functionality provided via the
Bouncy Castle API in a GUI.
Functionality such as create/list/delete/import key, encrypt/decrypt
message and file is exposed by the program.
The program tries to access and used the key ring files defined by GnuPG. Having GnuPG installed
is optional. GPGUI i.e this program is maintaining its own public and secret key ring files so GPGUI can operate on its own without having GnuPG installed.
List Keys
Lists either public or secret keys in GnuPG and/or in GPGUI key ring files.
The Key Ring attribute tells what key ring file the key belongs to i.e. GnuPG or GPGUI.
By double clicking on a key you will be expand, delete or delete the key.
Create Keys
Dialog for creating and asymmetric key inclusive an encryption subkey. The algorithms available are RSA or DSA/ELGAM.
The key can be save in GnuPG key ring files, if being available or in the GPGUI key ring files.
Import Key
Armored key can be imported to the GnuPG key ring files, if being available or in the GPGUI key ring files.
Encrypt Message/File
Encrypts a text or a file choosing a receiver public key and an encryption algorithm.
If selecting any of the added on algorithms (see below) i.e. SnowFlake, AESx2, AESx4 or AESx8 the message can only be
decrypted using the GPGUI program otherwise GnuPG or PGP can be used to decrypt the message.
Decrypt Message/File
Encrypts an armored text or a file. Trying to find the secret key for decryption in GnuPG or GPGUI key ring files.
Setting
The setting dialog allows the locations of the GnuPG and GPGUI key ring files to be configured.
In addition it is possible for how long time secret key password should be cached.
Encrypt/Decrypt Extension
Besides the standard encryption GnuPG algorithms GPGUI adds two additional ones, extended AES and SnowFlake.
Extended AES allows larger keys sizes to be used and SnowFlake is a proprietary developed algorithm.
Extend AES
GPGUI adds three additional flavors of AES using different key sizes 512, 1024 or 2048 bits.
When the larger key sizes than the standard 256 bits, the encryption is serialized from the multiple instances of
the AES algorithm.If using a key size of 2048 bits, eighth instances are interlinked. Each instance will be initiated with with
an eighth of the the key i.e. 2048 / 8 = 256. AESx2 use 512 bit, AESx4 use 1024 bits and AESx8 use 2048 bits.
SnowFlake
SnowFlake is proprietary exprimental algorithm. It uses a 1024 bit key.
The algorithm is a substitute algorithm using a 16x16x16 int table for substitution.
The substitution table is constructed dynamically and randomly using the key as seed.
The key is rotated randomly 0-64 bits after each substitution, depending on the data used in the substitution table.
The word used for substitution is updated (xor) with a random word after being used.
A input word is substituted by being xor with the selected word in the substitution table and the lowest 4 bytes
in the key for the time being.
The SnowFlake code can be found below.
import org.bouncycastle.crypto.BlockCipher;
import org.bouncycastle.crypto.CipherParameters;
import org.bouncycastle.crypto.params.KeyParameter;
import com.hoddmimes.pgpgui.SecureRandomSHA256;
/**
* This is a simple substitution encryption algorithm (written just for fun). The algorithm use a 1024 bit key.
* The input is being XOR with a substitution (32 bit) word random selected and the 4 lowest bytes in the key for the time being.
* The substitution word randomly selected is depending on the lowest byte in the key for the time being.
* The key is rotated randomly 0-64 bits after each substitution, depending on the substitution word being used.
* The word selected in the substitution table is updated (xor) after each substitution with a random word.
*
* @author bertilsson
*
*/
public class SnowFlakeEngine implements BlockCipher {
private static int ROUNDS = 16;
private static int BOX_SIZE = 16;
private static int BLOCK_SIZE = 16;
private byte[] mInKey; //1024 bites 128 bytes
private byte[] mWorkingKey;
private boolean mForEncryption;
private SecureRandomSHA256 mRandom;
private int[][][] mBoxes; // substitution box
public SnowFlakeEngine() {
mWorkingKey = new byte[128]; // allocate space for working key
mInKey = new byte[128]; // Allocate space for encryption / decryption key
}
@Override
public void init(boolean pForEncryption, CipherParameters pCipherParam) throws IllegalArgumentException {
KeyParameter tKeyParam = (KeyParameter) pCipherParam;
mInKey = tKeyParam.getKey();
mForEncryption = pForEncryption;
if (mInKey.length != 128) { // 1024 bits
throw new IllegalArgumentException("Invalid key length, must be 1024 bits (" + String.valueOf((mWorkingKey.length * 8)) + ")");
}
reset();
}
private void transform( byte[] pSrc, int pSrcOffset, byte[] pDst, int pDstOffet) {
int tXorKey =17;
for (int i = 0; i


{{error}}
Enter the playlist link or ID to calculate it's length:
Playback speed:
1x
1.25x
1.5x
1.75x
2x
Calculate length!
{{final}}
{{final2}}


Ocean [ap09], ocean, in The Outer Sea ------------------------------------------------------------------------ Routes leaving Ocean: North, to Ocean [ao09], 6 days East, to Ocean [ap10], 6 days South, to Ocean [aq09], 6 days West, to Ocean [ap08], 6 days


Table plugin
Basic usage
This plugin allows you to add and manage a table.
Read table plugin documentationAdd a table to the editor
Below is an example of a simple table with a header row.
| Project & Pitch | Status | Technologies | Stars | Downloads | URL |
|---|---|---|---|---|---|
| Trumbowyg Lightweight WYSIWYG Editor |
Active | JavaScript | ~4 000 ★ | 70 000 / month |
Landing GitHub |
| Monitoror Unified monitoring wallboard |
Maintenance | Go Vue |
~4 000 ★ | 100 000 + |
Landing GitHub |
| Cookies EU Banner 1kb vanilla JS for cookie banner |
Maintenance | JavaScript | ~420 ★ | 4 000 / month |
Landing GitHub |
| Colllect Bookmark Manager for Creatives |
Paused | Symfony Vue |
~340 ★ |
Landing GitHub |
|
| Check Disk Space Multi-platform disk space checker for Node.js |
Maintenance | TypeScript | ~78 ★ | 2 000 000 / month | GitHub |
| Column View Multi-columns page viewer |
Maintenance | TypeScript Snabbdom |
~7 ★ |
Landing GitHub |
Tables with merged cells
Example of a pricing table.
| Feature | Free | Premium | Business | Enterprise |
|---|---|---|---|---|
| Price | Free | 5,99€ / user | 12,99€ / user | 22,99€ / user |
| Users | 1 | Unlimited | 20 users minimum | |
| Items | 100 | Unlimited | ||
| Bandwidth | 5 Mbps | On your charge |
Another tab with different merged cells:
| Those plugins allow you to merge cells | And also unmerge | Two cells merged | |
| You can see some examples on this page | Two horizontally merged too | Simple cell | |
| Upload image | Pick, upload, and inserts an image | Next is empty |
The code
$('#editor')
.trumbowyg({
btns: [['table'], ['tableCellBackgroundColor', 'tableBorderColor']]
});
Setup
In head tag
At the end of body
<!-- Import jQuery -->
<script src="//ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="js/vendor/jquery-3.3.1.min.js"><\/script>')</script>


** Important Notice **
We are currently redesigning and rebuilding the Open Targets Platform with new features.
For a preview of the new Platform interface, please see the new profile page for {{displayName}}
Withdrawn class: {{withdrawnClass.join(', ')}}
Withdrawn reason: {{withdrawnReason.join(', ')}}
Year first withdrawn: {{withdrawnYear}}
Withdrawn in: {{withdrawnCountry.join(', ')}}
| Mechanism of action | Target | Target synonyms | References |
|---|---|---|---|
| {{mec.description}} | {{mec.target_name}} | {{synonym.approved_symbol}}{{$last ? '' : ', '}}{{synonym.approved_symbol}}{{$last ? '' : ', '}} | {{ref.source}}{{ref.source}}{{$last ? '' : ', '}} |
A list of post-marketing adverse events submitted by healthcare professionals to the FDA Adverse Event Reporting System (FAERS).
The list only contains adverse events with a log likelihood ratio above a critical value (CV) threshold
- see our adverse event report documentation page for more information.
No adverse events data for {{displayName}}


Serving mainly French and Belgian farmhouse styles with Pacific Northwest ingredients. This industrial style brewery located in the Magnolia neighborhood also rotates its beers regularly which guarantees they are utilizing fresh ingredients as well as complex yeast strains. Urban Family is a small craft brewery that also serves East Coast style IPA’s.
Not satisfied with your current choice?


{{cve}}
Common Vulnerabilities and Exposures (CVE) Entry
Vulnerability Details
{{cve_detail["summary"]}}
Published
{{cve_detail["published"]}}
Last Modified
{{cve_detail["last_modified"]}}
CVSS Base Metrics
NIST CVSS Base Score
{{cve_detail["CVSS Metrics"]["score"]}}
Access Vector
{{cve_detail["CVSS Metrics"]["access_vector"]}}
Access Complexity
{{cve_detail["CVSS Metrics"]["access_complexity"]}}
Authentication Required
{{cve_detail["CVSS Metrics"]["authentication"]}}
Confidentiality Impact
{{cve_detail["CVSS Metrics"]["confidentiality_impact"]}}
Integrity Impact
{{cve_detail["CVSS Metrics"]["integrity_impact"]}}
Availability Impact
{{cve_detail["CVSS Metrics"]["availability_impact"]}}
Source
{{cve_detail["CVSS Metrics"]["source"]}}
External References
NVD Database Entry
{% for reference in cve_detail["References"] %}
{{reference}}
(new window)
{% endfor %}
Affected Packages
{% for package in cve_detail["Vulnerable packages"] %}Cpe
{{package}}
{% endfor %}


Hurricane-Like Wind Rips Off Billboard in Russia's Far East - Video
The cyclone causing the strong gusts of wind came from China, according to regional portal DVhab.ru. The air mass brought heavy precipitation that exceeded monthly levels in just a couple of days.
A powerful squall has torn off a billboard near a mall in the Russian city of Khabarovsk, news portal DVhab.ru reported.
The portal posted a video showing the consequences of the storm in which the billboard is seen on the ground in a snow-covered lawn near the pavement.
The wind also reportedly blew away a bus stop and caused a power outage in several local neighbourhoods.


tumbler
`Prev `__
T
`Next `__
--------------
**tumbler**: n.
1. [Originally from the Xanadu hypertext project] A tumbler is a `*magic
cookie* <../M/magic-cookie.html>`__ generated as part of a record or
message to give it a unique identity. Usually a tumbler includes an
encoded form of its creation date, but if a software system has more
than one concurrent process that could generate tumblers it must also
include an encoding of the process ID. If tumblers will be shared across
multiple network hosts, they must also include the host name or network
address. Tumblers often include a hash of the rest of the message or
record content so that it is possible to verify the correctness of the
data the tumbler is attached to.
2. Variant text added to spam instances (often in the Subject line) to
make them unique. This kind of tumbler is used to defeat schemes that
check an exact hash of an incoming message against known spam
signatures; it also compromises some kinds of statistical spam
recognition.
--------------
+------------------------------+----------------------------+-----------------------------+
| `Prev `__ | `Up <../T.html>`__ | `Next `__ |
+------------------------------+----------------------------+-----------------------------+
| tube time | `Home <../index.html>`__ | tunafish |
+------------------------------+----------------------------+-----------------------------+


Toggle navigation
HOMELINK
Dashboard
Statistics
Charts
History
Settings
User&Device
Logout
×
Close
WARNING!
You have not bind any device,
click here
to bind.


“Polymer-in-ceramic” electrolyte “Ceramic-in-polymer” electrolyte Sandwich-type electrolyte
Anode shell (5-um LLZTO) (200-nm LLZTO) (hierarchical LLZTO)
aa EE Polymer electrolyte
Ceramic electrolyte
= Polymer electrolyte Cathode aaa 2 High mechanical strength \/ Good interfacial contact High mechanical strength ewe: = Cathode shell Good dendrite suppression \/ Good Li* migration we Good dendrite suppression ¥ Poor interfacial contact 5¢ Poor dendrite suppression >¢ Good interfacial contact Vv © cathode materials Aluminum foil @ Carbon i SPEs
@ LLZO nanoparticle [J ICEs [)) Li-metal anode
OX. SPE captured in separator
s_Abhl
Rough lithium surface
ea ¢ ~<f eer
Smooth lithium surface
CSE membrane with BPEG
PAN @LAGP PEGDA
9)
™® Cathode
m™ Lianode
mm PAN = v0
* Late


Tool Box
Charts
Scatter Plot
Area Chart
Line Chart
Bar Chart
Box Plot
Contour Plot
Histogram
Parallel Coordinates
Workspace


main article
main article
main article
main article
main article 5
main article
main article
main article
main article
main article 10
main article
main article
main article
main article
main article 15
main article
main article
main article
main article
main article 20
main article
main article
main article
main article
main article 25
main article
main article
main article
main article
main article 30
main article
main article
main article
main article
main article 5
main article
main article
main article
main article
main article 10
main article
main article
main article
main article
main article 15
main article
main article
main article
main article
main article 20
main article
main article
main article
main article
main article 25
main article
main article
main article
main article
main article 30