Press n or j to go to the next uncovered block, b, p or k for the previous block.
| File | Statements | Branches | Functions | Lines | |||||
|---|---|---|---|---|---|---|---|---|---|
| src | 54.08% | 53/98 | 50% | 15/30 | 36.59% | 15/41 | 51.65% | 47/91 | |
| src/components | 18.61% | 43/231 | 15.15% | 10/66 | 9.17% | 10/109 | 20.49% | 42/205 | |
| src/components/Article | 17.19% | 11/64 | 0% | 0/14 | 0% | 0/30 | 18.64% | 11/59 | |
| src/components/Home | 66% | 33/50 | 56.25% | 9/16 | 59.09% | 13/22 | 63.04% | 29/46 | |
| src/constants | 100% | 36/36 | 100% | 0/0 | 100% | 0/0 | 100% | 36/36 | |
| src/reducers | 39.13% | 27/69 | 25.66% | 29/113 | 72.73% | 8/11 | 39.13% | 27/69 |


Practice Makes Perfect: UK Man Struggles to Exit Newly Bought Sports Car
Paul, a Scottish man who recently purchased a new Aston Martin sports car, may have momentarily regretted his choice earlier this week after he found himself struggling to get out of his all-white luxury vehicle.
Footage filmed by daughter Ciara shows the car enthusiast repeatedly attempting to hop out of the car’s low-positioned driver seat before ultimately deciding to just slide his way onto the cement ground.
“Dad’s new car is probs going back,” reads the daughter’s post.
Only time will help good ol’ Paul get the hang of his exit strategy. Ciara told video licensor Storyful that her father “is going to keep [the car].”


Getting this off the ground, one character at a time.
Some copy maybe
Maybe a much longer blurb about what I've done and where I've been, what I've learned.


AudioStream
Establish WebSocket connection
Load audio file and play sound
Receive audio data and play


Mayank Sharan
Applied Scientist II, Microsoft Turing
Redmond, WA, USA
I am an Applied Scientist II in the Microsoft Turing team. I work at the cutting edge of applied AI with large language models, computer vision and much more.
Research: I have broad interests in machine learning and artificial intelligence. Currently, my work focuses on natural language processing, spatiotemporal machine learning, and reinforcement learning. In the past, I have worked with recommender systems, causal inference, and computer vision.
Previously: I completed my Masters with Thesis in Computer Science and Engineering at UCSD under Prof. Rose Yu. Before that, I worked as a Senior Data Scientist at Bidgely. I obtained my Bachelor’s in Computer Science and Engineering, from Indian Institute of Technology, Delhi where I worked with Prof. Mausam and Prof. Rahul Garg.
Updates
| Jun 26, 2023 | Started work as Applied Scientist II at Microsoft Turing, Redmond |
|---|---|
| Mar 25, 2023 | Completed Master of Science (Thesis Track) in CSE from UCSD |
| Mar 8, 2023 | Successfully Defended Master’s Thesis: Taming the Long Tail of Deep Probabilistic Forecasting |
| Feb 23, 2022 | Accepted at ISUW ‘22: Short Term Load Forecasting for Dynamic Clusters using Deep Learning |
| Oct 19, 2020 | Invited Talk: Short-Term Load Forecasting using Deep Learning |


Hello friend
My name is Rui Quelhas, I'm a software engineer from Portugal working in the MySQL connectors team at Oracle.
Interests:
- Bitcoin
- Node.js
- Databases
- Cryptography
- P2P
- Open source
Links:
WOT:
- ruiquelhas at protonmail
- C9A5 F911 8F67 CEB3 5887 1EDB CA99 39BC 16B2 95EA (full)
- 1Lj6Kd45wEg6WRQ3g78g1hxtFZMUZP7oYQ


Ordering food with ReCubed works like with any other takeaway platform, but without the guilt. ReCubed is developing a fully green, circular delivery service that includes environmentally friendly pickup and delivery as well as the use of ReCubed's durable, sturdy, and reusable food containers.
Pick your favourite restaurant and order for delivery or pickup.
Your food is delivered to your doorstep with our ReCubed Box which is reusable.
Return the ReCubed Boxes to any partnered restaurants or return your boxes to our delivery person on your next order.
The high amount of takeaway food consumed every year naturally entails a high production of disposable packaging.
Through our platform, services, and containers, restaurants and customers can make ordering takeaway guilt-free, green, and sustainable.
OUR
CLOCK
IS TICKING


{% extends "layout.html" %} {% block page_title %} How many children do you have? {% endblock %} {% block content %} Back How many children do you have? Number of children {% endblock %}


--- layout: post title: ExchangeLink - AutoDiscover and impersonation troubleshooting categories: [] tags: emaillink status: publish type: post published: true meta: structured_content: '{"oembed":{},"overlay":true}' ---
In which I stumble across an unhelpful HPRM ExchangeLink error message and then look at how to use EWS Editor to tell me what is actually happening.


Mihir Gadgil (मिहिर गाडगीळ)
I am a Data Scientist / Data Engineer and I have worked on (big) data pipelines in the AWS cloud. I have three years of experience working at DISH Network on the 5G Wireless Network and UE data; where the focus was building resilient data pipelines and analytics solutions with the data.
I earned a Master's degree in Data Science from the George Washington University in Washington DC and a BSMS Dual Degree in Physics from Indian Institute of Science Education and Research Bhopal in Bhopal, India.
I worked as a Graduate Teaching Assistant for the Machine Learning I course in the Data Science department in GWU.


Visualizing Polynomial Regression
Knobs and dials to tweak!
Current Learning Rate:
Select degree of polynomial
Degree 1
Degree 2
Degree 3
Adam
SGD
Start
Fly!
Reset


FUT Champions Cup glory for Raseck as world champions falter
by FIFA.com- 'NR7' becomes the second German to win the trophy after 'DullenMike'
- Last two World Cup winners out in the quarters
- Overview of the second FUT Champions Cup of the season
Group stage
2018 world champion 'Msdossary' from Saudi Arabia and Italy’s 'Crazy' were unbeaten on the opening day and strolled into the knock-out stage.
'Yago' and 'Lyricz' meanwhile underlined their fine form from the opening FUT Champions Cup of the season, emerging from the group stage with a 4-1 record. Brazil’s 'LucasRep98' and 'SpiderKong' on the other hand were not able to repeat their exploits from the opening event of the season and went out at the first hurdle.
Last 16
The Round of 16 saw three of Germany’s four Xbox players crash out, namely 'Sakul', 'MegaBit' and 'DullenMike'. 'Fifilza', who was runner-up at the first FUT Champions Cup of the season, had already gone out in the first round and he was followed by 'Yago', who was unable to repeat his good opening-day performance and was knocked out by 'Tuga810'.
Quarter-finals
The 2018 World Cup winner and 2019 runner-up 'Msdossary' was sent home by 'NR7', while 'Lyricz' was not able to take revenge for his defeat in the FUT Champions Cup at the hands of 'Tekkz'. 'Vini' and 'Gabrielpn' made it a Brazilian double, taking the last two Xbox semi-final berths.
'Crazy' continued where he had left off in the earlier rounds, putting an end to the hopes of last year’s Grand Finalist 'Maestro', while reigning world champion 'MoAuba' was beaten by 'Paulo Neto'. 'Damie' and 'Harry' completed the PlayStation final four line-up.
Semi-finals
PlayStation:
'Crazy' 4-1 'Harry'
The Italian was well and truly on a roll by this point, sending Englishman 'Harry‘ home after a 4-1 defeat. The first leg was a tight affair and ended all square at 1-1, but the second saw 'Crazy' cruise to a 3-0 win which put him into the console final.
'Paulo Neto' 2-0 'Damie'
'Paulo Neto' was one of three Brazilians in the semi-finals and he duly saw off 'Damie' to reach the decider. New AS Roma recruit 'SpiderKong' had already gone out earlier in the tournament, and it was the end of the line for his team-mate 'Damie' here in the semis.
Xbox:
'NR7' 6-2 'Tekkz'
The winner of the most recent FUT Champions Cup was looking to defend his title but came up short against 'NR7', who made it into the final courtesy of a performance that had the fans in raptures.
'Vini' 1-0 'Gabrielpn'
The Brazilian derby saw 'Vini' from Nethoes E-Sports just get the better of his fellow countryman. Brazil therefore had two of the four finalists across the consoles.
Console finals
'NR7' 2-1 'Vini'
The German just squeezed past his Brazilian opponent to earn a spot in the Grand Final of the second FUT Champions Cup of the season.
'Crazy' 1-0 'Paulo Neto'
Things went from bad to worse for Brazil, as 'Paulo Neto' also had to give best to his opponent, with 'Crazy' continuing the form he had shown throughout the tournament to make it into the Grand Final.
Grand Final
'NR7' 2-0 'Crazy'
'Crazy' had arguably been the form player of the tournaments thus far, while 'NR7' had seen off the seemingly unstoppable forces that are 'Msdossary' and 'Tekkz'. The German has been one of the most consistent players of the past few years and it was only fitting that he should win his first international title here.
Despite 'Crazy' managing an average of 1.7 goals per game – compared with 1.3 for 'NR7' – the Italian had to give best over the two legs, going down 2-0. And so it was that Niklas Raseck ('NR7‘) became the fifth player overall and the second German to hoist the FUT Champions Cup trophy aloft.


As I might have written before I like printf-style string-formating. It’s imho the most convenient way to format strings and it can be really powerful if needed. However something that can be a bit tedious is output:ing “composite” values such as a vec3 or quaternion as there will be quite a bunch of repetition.
printf("{ %.2f, %.2f, %.2f }", vec.x, vec.x, vec.z);
Doing this for multiple values really get verbose and its easy to make simple copy-paste-errors ( see above! ).
I have read/looked at a whole bunch of string-formating libs and “tostr()” implementations, usually in c++, returning an std::string
and/or overloading operator<<
for writing to std::ostream
etc and not really liking any of them ( forcing dynamic allocation for known sized outputs for example, yuck! ).
But complaining is easy, time to be constructive and get to some suggestions on how this can be done instead.
BYTES2STR()
I have found that most of these problems can be solved with a small trick, introducing a struct with the storage for the string. I will start introducing this with a simple macro to turn a size_t
to a string in the format "234 bytes"
, "2.9 kB"
or "234 GB"
.
enum
{
BYTES_PER_KB = 1024,
BYTES_PER_MB = 1024 * BYTES_PER_KB,
BYTES_PER_GB = 1024 * BYTES_PER_MB
};
struct _bytes_to_human
{
char str[64];
_bytes_to_human( size_t bytes )
{
if ( bytes > BYTES_PER_GB ) snprintf( str, sizeof(str), "%.02f GB", (double)bytes * ( 1.0f / (double)BYTES_PER_GB ) );
else if( bytes > BYTES_PER_MB ) snprintf( str, sizeof(str), "%.02f MB", (double)bytes * ( 1.0f / (double)BYTES_PER_MB ) );
else if( bytes > BYTES_PER_KB ) snprintf( str, sizeof(str), "%.02f kB", (double)bytes * ( 1.0f / (double)BYTES_PER_KB ) );
else snprintf( str, sizeof(str), "%zu bytes", bytes );
};
};
#define BYTES2STR( bytes ) _bytes_to_human( bytes ).str
This can now be used simply as follows
printf("you have allocated %s", BYTES2STR(allocated_bytes));
What we did here is to introduce a helper-struct containing the storage for the generated string and a macro to hide a bit of ugliness. Simple and easy to read and work with and I feel fairly confident when I say that the compiler will handle this will, NICE :)
Extending to a more general TOSTR()
But can this be extended to be a general and extensible solution? Would I write this article if I didn’t believe that it was? Of course it is and with a really small amount of code as well :)
Our goal here is to be able to have one macro, TOSTR(obj)
, that take an object that has an implementation defined with TOSTR_DEFINE_TYPE_FUNCTION
that defines how to convert the type to string and reserve space for that string on the stack.
If you just want the code or think it is easier to read the code directly here is a link to a github repo.
https://github.com/wc-duck/tostring.
Onto the code/implementation then!
So lets say that we have a vec3-struct that we want to add TOSTR() support to. That is as simple as using the macro TOSTR_DEFINE_TYPE_FUNCTION
as follows.
struct vec3
{
float x;
float y;
float z;
};
// declare with type to implement for and the amount of bytes that
// is needed in the output-string.
TOSTR_DEFINE_TYPE_FUNCTION(vec3, 64)
{
// the end of the macro-expansion expects you to declare how
// to write the output value.
//
// you will get passed an output-buffer as 'out' ( with space
// for the requested 64-chars ) and a reference to the value
// to print as 'value'.
//
// 'out' has one member-function called 'put' that has a
// printf-like format. ( yes, that makes it out.put :) )
out.put("{ %.2f, %.2f, %.2f }", value.x, value.y, value.z);
}
The macro will declare a static constant for the declared type with the size like this, but for a few different cases ( vec3
, const vec3
, vec3&
and const vec3&
)
template<> struct _TOSTR_type_size<vec3> { enum { STRING_SIZE = 64 }; };
And it also declare a function with this signature ( using the code in {} after the macro as its body )
inline void _TOSTR_type_impl( _TOSTR_builder& out, const vec3& value );
Finally we have the TOSTR(obj)
-macro that will create a temporary buffer on the stack, fetching its size from _TOSTR_type_size<decltype(obj)>::STRING_SIZE
and pass that to the _TOSTR_type_impl
that will use overloading to select the correct implementation.
What we can simply do now is just use TOSTR() as expected with vec3.
printf("player: pos = %s, velocity = %s", TOSTR(player_pos), TOSTR(player_vel));
// ... or ...
printf("player: pos = %s, velocity = %s", TOSTR(player.pos()), TOSTR(player.vel()));
that would output something like: "player: pos = { 11.0, 12.99, 13.37 }, velocity = { 0.14, 2.35, 3.71 }"
( depending on the actual position and velocity of the player hopefully ;) )
btw, they also “stack” quite well such as:
struct aabb
{
vec3 min;
vec3 max;
};
TOSTR_DEFINE_TYPE_FUNCTION(aabb, 128)
{
out.put("{ %s, %s }", TOSTR(value.min), TOSTR(value.max));
}
Any negatives?
The biggest draw-back in my opinion is the fact that the lifetime of the generated string is only during the current expression, i.e. you can’t “save” your string to use later. I.e. this is valid code but undefined behavior.
const char* vec_str = TOSTR(my_vec);
printf("%s", vec_str);
This since the macro defines a temporary variable to hold the value.
Also the fact that overflow might happen and you will get truncated output. I think this is a smaller problem as in many cases ( as the ones above and many more ) you actually know in advance the string-length that you will be generating.
If you find the overflow issue as a big issues it would be quite easy to add an “dynamic-alloc on overflow” to the system.
I also know that some has problems with printf and friends all together as it is not “typesafe” etc. Imho that is mostly a solved problem by modern compilers that do type-checks in compile-time for you on these. But that is my opinion :)
Finally there might be some objections to the template-usage in the implementation but I think it is at a reasonable level, but I guess that it can be solved in other ways if you think this is a problem.
Conclusion
This might not be anything new but it is a small trick that I haven’t seen that much in the wild and that has made my own code “better” imho. It might not be to everybodys taste but hopefully someone has got a new tool to their toolbox!
As usual, don’t be afraid to reach out to me at twitter, github any other channel that you might know of!


Science and society
by Anna Armstrong, Rosamund Daw, Claire Hansell, Juliane Mossinger, Nonia Pariente, Sadaf Shadan, Clare Thomas & Ursula WeissAs illustrated by the 17 UN Sustainable Development Goals, the challenges facing us are multifaceted and broad. The solutions will not lie in any one sector—all of society must engage. But science undoubtedly has a part to play in tackling pieces of the overarching puzzle of how to live in an equitable and healthy way that accords with the constraints of our planet and leaves no one behind.
In this collection of Reviews and Perspectives drawn together to celebrate 150 years of Nature, we take a look at a snapshot of areas in which science might help ease the transition to a healthy, sustainable and inclusive future.
In no way exhaustive, topics covered include the reuse and recycling of batteries from electric vehicles, the design and manufacture of more sustainable structural alloys, the capture and utilization of carbon in products, the resilience of harvestable ecosystems, the engineering of climate-resilient crops, progress and challenges in global vaccination, and epidemic prevention and response. Emphasised throughout is the need for a whole-of-society response if effective solutions are to emerge.
Science will serve us best if it accords with the principles of inclusivity, transparency and openness. In this vein, we end this Insight with a piece that shows how attending to one quite glaring blind spot in the scientific method—the overlooking of sex and gender—can open up new lines of enquiry and render research findings applicable to all.
There can be no division between science and society—even thepurest and most abstracted lines of enquiry emanate from a social fabric and time, with its characteristic attitudes, limitations, blind spots and needs. Registering those restrictions and needs, and working to address them in a constructive and collaborative way, will help to keep the vision of a more humane and environmentally sound future, as laid out by the UN Sustainable Development Goals, alive.
Nature 575, 63 (2019)
doi: 10.1038/d41586-019-03365-y


{% extends "base.html" %}
{% load dc_forms %}
{% load i18n %}
{% block page_title %}Find your polling station{% endblock page_title %}
{% block content %}
{% block extra_content %}{% endblock extra_content %}
This doesn't appear to be a valid postcode.Sorry, we can't find {{ postcode }}
{% trans "Find your polling station" %}
Polling stations are open from 7am to 10pm {{ poll_date }}.
You don't need your poll card to vote.
You must vote at your assigned polling station.
If you are registered to vote, but you don't have your poll card, you can go to the polling station and give them your name and address.
In England, Wales and Scotland, you don't need any form of ID. In Northern Ireland, you must bring photo ID.


PropertyPro
Dashboard
New Ads
My Favourite
Update Profile
Admin
Ads Types/Deals
Manage Ads
Manage Users
Reported Issues
Sign Out
Edit Your Profile
Let's get some information to make your profile stand out
* = required field
update your profile photo
Go Back


Records stored in the Recno access method are accessed by logical record number. By default, these record numbers are not mutable. What that means is if you delete record number 5, record number 6 is not automatically renumbered to be record number 5 and 7 renumbered to be record number 6 and so on. For the same reason, new records cannot be inserted inbetween already existing records.
It is possible to make the logical record numbers mutable by specifying the DB_RENUMBER flag in the DB_INFO structure during the db_open call to open the database. This means that the record numbers may change change as records are added to and deleted from the database.
For example, the deletion of record number 4 causes records numbered 5 and greater to be renumbered downward by 1. If a cursor was positioned to record number 4 before the deletion, it will suddenly reference the new record number 4, if any such record exists, after the deletion. If a cursor was positioned after record number 4 before the deletion, it will be shifted downward 1 logical record, continuing to reference the same record as it did before.
Similarly, if a created record is not at the end of the database, all records following the new record will be automatically renumbered upward by 1. For example, the creation of a new record numbered 8 causes records numbered 8 and greater to be renumbered upward by 1. If a cursor was positioned to record number 8 or greater before the insertion, it will be shifted upward 1 logical record, continuing to reference the same record as it did before.
For these reasons, concurrent access to a Recno database with the DB_RENUMBER flag specified may be largely meaningless, although it is supported.
In the case of Recno databases where record numbers are not mutable, any attempt to retrieve deleted records will result in a special error return, DB_KEYEMPTY.
When using both mutable and immutable record numbers, creating new records will cause the creation of multiple records if the record number is more than one greater than the largest record currently in the database. For example, creating record number 28, when record 25 was previously the last record in the database, will create records 26 and 27 as well as 28.
First, last, next and previous cursor operations will automatically skip over implicitly created records. For example, if record number 5 is the only record the application has created, implicitly creating records 1 through 4, the DBcursor->c_get interface with the DB_FIRST flag will return record number 5, not record number 1. Attempts to explicitly retrieve records that were created in this manner will result in a special error return, DB_KEYEMPTY.


I suppose people are entitled to their opinions, no matter how strong they may be. Myself, I dont mind that, unless it is forced onto others, or adversely affects others.
With that being said, I find it a bit ironic that somebody publically criticizes a project for allegedly running some sort of organised slander complain on another, in turn, doing exactly what they are complaining about?
I agree with grewal, if there are problems, bring them to light in a constructive manner, present potential solutions and be open to discussion.
1


“The purpose of life is not to be happy. It is to be compassionate, to have it make some difference that you have lived and lived well.”
Hello there! I'm Abhinav Gyan.
I believe that if any of my deeds is making the condition of anyone even a little better then it is worth doing.
I am a junior year student pursuing B. Tech. in Civil and Environmental Engineering.
Being workaholic has helped me achieve a lot in the recent time. It's beacuse of my dedication and will power that I have been able to contribute to the various domains inside the college as well as outside it too.
The journey has beem bittersweet and I hope to continue my good deeds for this institute which is now my home!
Being the General Seretary I established SAAR in college as a interface between the alumni and the administration and the students. Now that we are in touch with a fair share of passouts, we have also started recieving donations to ease the load on the admin. Due to my team's efforts SAAR is now a semi self sufficient body and as the leader of this team I feel proud of everyone who is associated with SAAR.
This was my second tenure in the Gymkhana. Using my experience and my vision and as the student representative of my year, I have put forward the agendas and issues of my batchmates before the admininstration and have tried to get a permanent solution to them.
We all know that the 3 days of Anwesha are the most cherished days in the college. Being the Events Coordinator was a huge task on my shoulders as not only I had to work for events but also I had decided to call the Miss India myself this time. The best part of this all is as a person I learnt to lead my team admist the chaos.
During my second year I was the elected representative of my hall that comprised of B.Tech. 2nd years and M. Tech. seniors. My vision and my will power helped me to take up the issues of my hall in the general gymkhana meetings and my dedicated efforts and regular follow ups facilitated the eradication of some major problems.
I am a self motivated person. This quality helped me during my second year when I myself desgined and developed the ACE's website. To do so I had to learn the various tools of web development and due to my commitment to deliver my promise ACE was able to get its first website.
Anwesha, the 3 day extravaganza is enjoyed by everyone in this college. Being the subcoordinator my work was to manage the cultural aspects of the fest. But my hunger to work more motivated me to not do a lot more. Including conducting the multicity audition at IIT BHU and also going to various other colleges in Patna.
This famous quote by Mahatma Gandhi, who was one true leader, is my motivation to take part in so many different clubs and activities in the college. I have always been enthusiastic to make this place a better place. I want to see IIT Patna standing at par with the older IITs. I know that it will take a lot to transform this dream into reality but I am ready to shed my sweat, blood and tears for my institute. And with your help we can together make this vision come to reality.


ServerlessComputer
This is a 16-bit ALU's running in the cloud. Each logic gate is implemented as an Azure Function
Set the 16-bit inputs X
and Y
below and submit your operations so they can be on the serverless ALU.
Output: {{ output }}
Help
- X
- The X 16-bit input
- Y
- The Y 16-bit input
- Flags
- The ALU takes the following flags
- zx
- zero the x input
- nx
- negate the x input
- zy
- zero the y input
- ny
- negate the y input
- op
- function code: 1 for
X + Y
, 0 for X & Y
- no
- negate output


The company office is at 1062 Rajagopalnagar Main Road Peenya 2 Stage Peenya 2nd Stage Near Rajagopalanagar Police, Bangalore – 560 058, India.
The company is committed to provide Structural steel Heavy fabrication and erection work through well qualified and experienced personnel validated quality management systems.
GK Steel Industries has been always aim entitled concern High Level of customer satisfaction, result to getting works on repeat, project basic from various consultants with some of the Engineers, GK Steel Industries Well source associated for more than dedicate for executers of their Projects. Quality has always, been the mark GK Steel Industries form the initial stage and GK Steel Industries concern adheres to firm inflexible. Quality standards at every stage and GK Steel Industries. Adheres to firm inflexible quality standards at every stage of its activities in the construction fabrication. Plan to achieve for specific objectives within specified period to provide customised services, to its client’s GK Steel Industries has developed a comprehensive engineering infrastructure geared to achieving its goal. Enables GK Steel Industries to respond, Quickly and effectively to maintain its lead, in the fabrication


{{induction.ticket?.ticket_code}}
Date:{{induction.date | date: 'shortDate'}}
Time:{{induction.date | date: 'shortTime'}}
Name:{{induction.location?.name}}
Activity:{{induction.activity}}
Attendants: {{Item.firstname}}{{Item.lastname}},
Team lead:{{induction.team_lead?.username}}
Safety officer:{{induction.safety_officer?.username}}


10. Dimensionality Reduction with PCA
- Introduction : Working directly with high-dimensional data comes with some difficulties
- It is hard to analyze,
- interpretation is difficult,
- visualization is nearly impossible,
- and storage of the data vectors can be expensive
- In this chapter, we derive PCA from first principles, drawing on our understanding of
- basis and basis change (Sections 2.6.1 and 2.7.2),
- projections (Section 3.8),
- eigenvalues (Section 4.2),
- Gaussian distributions (Section 6.5),
- and constrained optimization (Section 7.2)
10.1 Problem Setting
-
Objective : is to find projections $\hat{x_n}$ of data points $x_n$ that are as similar to the original data points as possible, but which have a significantly lower intrinsic dimensionality.
-
Dataset : we consider an i.i.d. dataset $X = [x_1 , . . . , x_N], x_n ∈ \mathbb{R}^D,$ with zero mean
-
possesses the data covariance matrix $S$ (6.42)
-
a low-dimensional compressesd representation $z_n$ with the projection matrix $B$
-
$$ S = \frac{1}{N} \sum{x_n}{x_n^⊤} $$
$$ z_n = B^⊤x_n ∈ \mathbb{R}^M $$
$$ B := [b_1,…,b_M] ∈ \mathbb{R}^{D×M} $$
-
Overview
-
We assume that the columns of $B$ are orthonormal (Definition 3.7) so that $b^⊤_i b_j =0 $ if and only if $i \neq j$ and $b^⊤_i b_i =1$.
-
We seek an M-dimensional subspace $U ⊆ \mathbb{R}^D,$ $dim(U)=M < D $ onto which we project the data.
-
We denote the projected data by $\hat{x}_n ∈ U,$ and their coordinates (with respect to the basis vectors $b_1,…,b_M$ of $U$ ) by $z_n. $
-
Our aim is to find projections $ \hat{x_n} ∈ \mathbb{R}^D $ (or equivalently the codes $z_n$ and the basis vectors $b_1, . . . , b_M $) so that they are as similar to the original data $x_n$ and minimize the loss due to compression.
-
10.2 Maximum Variance Perspective
- Introduction :
- We know that the variance is an indicator of the spread of the data, (Section 6.4.1),
- And we can derive PCA as a dimensionality reduction algorithm that maximizes the variance in the low-dimensional representation of the data to retain as much information as possible.
- Centered Data : the variance of the low-dimensional code does not depend on the mean of the data (eq 10.6) Therefore, we assume without loss of generality that the data has mean $0$.
10.2.1 Direction with Maximal Variance
-
(1) Objective : maximize the variance $V_1$ of dataset projected onto single vector $b_1$
-
(2) Variance $V_1$ : expectation of the squared deviation $z_{1n}$
-
$z_{1n}$ is coordinate of the orthogonal projection of $x_n$ onto the one-dim subspace spanned by $b_1$, $z_{1n}$ = $b_1^⊤ x_n$ (section 3.8)
$$ V_1=\frac{1}{N} \sum z_{1n}^2 = \frac{1}{N} \sum b^⊤_1 x_n x_n^⊤ b_1 = b^⊤_1 (\frac{1}{N} \sum x_nx_n^⊤)b_1 = b^⊤_1 S b_1 $$
-
-
(3) Maximize Variance : solve the constrained optimization problem (section 7.2)
- by setting the partial derivatives to 0, gives us the relations
$$ Sb_1 = λ_1 b_1 $$
-
(4) Eigenvalue of Covariance Matrix :
-
By comparing the above relations with the definition of an eigen-decomposition, we see that $b_1$ is an eigenvector of the data covmat $S$ and the Lagrange multiplier $\lambda_1$ plays the role of the corresponding eigenvalue
-
i.e., the variance ($V_1$) of the data projected onto a 1D subspace equals the eigenvalue
-
$$ V_1 = b^⊤_1 S b_1 = λ_1 b^⊤_1 b_1 = λ_1 $$
-
(5) Principal Component :
- Therefore, to maximize the variance, we should find the basis vector associated with the largest eigenvalue (Principal Components), and then project given data onto them.
10.2.2 M-dimensional Subspace with Maximal Variance
-
Extending to $M$dimensional subspace:
- The variance of the data, when projected onto an $M$ dimensional subspace, equals the sum of the eigenvalues that are associated with the corresponding eigenvectors of the data covariance matrix.
$$ V_m = b_m^⊤ S b_m = λ_m b_m^⊤ b_m = λ_m . $$
10.3 Projection Perspective
-
Introduction : Not something new, we will just derive PCA in another view point
-
In the previous section, we derived PCA by maximizing the variance in the projected space to retain as much information as possible.
-
In the following, we will look at the difference vectors between the original data $x_n$ and their projection $\tilde{x}_n$ and minimize this distance so that $x_n$ and $\tilde{x}_n$ are as close as possible.
-
10.3.1 Setting and Objective
- Objective : minimizing the average squared Euclidean distance between $x$ and $\tilde{x}_n$ (projection error)
$$ J_M := \frac{1}{N} \sum | x_n − \tilde{x}_n | ^2 $$
- Solution : To find the coordinates $z_n$ and the OrthoNormalBasis of the principal subspace, we follow a two-step approach
- (1) we optimize the coordinates $z_n$ for a given ONB (10.3.2)
- (2) second, we find the optimal ONB. (10.3.3)
10.3.2 Finding Optimal Coordinates
-
Introduction : Let us start by finding the optimal coordinates $z_{1n} , . . . , z_{Mn}$ of the projections $\tilde{x}_n$ for $n = 1,…,N$ that minimizes the distance between $\tilde{x} − x$.
-
Consequence :
- The optimal linear projection $\tilde{x}_n$ of $x_n$ is an orthogonal projection.
- The coordinates of $\tilde{x}_n$ with respect to the basis $(b_1,…,b_M) $ are the coordinates of the orthogonal projection of $x_n$ onto the principal subspace.
- An orthogonal projection is the best linear mapping given the objective.
-
Summary :
-
So far we have shown that for a given ONB we can find the optimal coordinates by an orthogonal projection onto the principal subspace.
-
In the following, we will determine what the best basis is.
-
10.3.3 Finding the Basis of the Principal Subspace
-
Consequence: after solving the equation from (10.35) to (10.43b), we finally get the consequences below.
- Minimizing the average squared reconstruction (projection) error is equivalent to minimizing the variance of the data when projected onto the subspace we ignore, i.e., the orthogonal complement of the principal subspace
- The basis of the principal subspace comprises the eigenvectors $b_1, … b_M$ that are associated with the largest M eigenvalues of the data covariance matrix.
10.4 Eigenvector Computation and Low-Rank Approximations
-
Introduction
-
In the previous sections, we obtained the basis of the principal subspace as the eigenvectors that are associated with the largest eigenvalues of the data covariance matrix
-
To get the eigenvalues (and the corresponding eigenvectors) of covmat
-
We perform an eigendecomposition (see Section 4.2) : and compute the eigenvalues and eigenvectors of $S$ directly
-
We use a singular value decomposition (see Section 4.5) : Since $S$ is symmetric and factorizes into $XX^T$, the eigenvalues of $S$ are the squared singular values of $X$
-
-
-
Results : The relationship between the eigenvalues of $S$ and the singular values of $X$ provides the connection between the maximum variance view (Section 10.2) and the singular value decomposition.
10.4.1. PCA using Low-Rank Matrix Approximations
-
Eckart-Young theorem: states that $\tilde{X}_M$, is given by truncating the SVD at the top-M singular value.
- Diagonal entries of diagonal matrix $\Sigma_m$ are the $M$ largest singular values of $X$
$$ \tilde{X}_M = U_M \Sigma_M V^T_M $$
10.4.2. Practical Aspects
-
Find eigenvalues and eigenvectors :
-
(1) Roots of the characteristic polynomial (section 4.2) : practically impossible for large matrix.
-
(2) eigendecomposition (or SVD) : we only require a few eigenvectors, so It would be wasteful to compute the full decomposition
-
(3) Iterative methods : If we are interested in only the first few eigenvectors, then iterative processes, which directly optimize these eigenvectors, are computationally efficient
- Power Iteration (Google PageRank) : is very efficient In the extreme case of only needing the first eigenvector.
-
10.5 PCA in High Dimensions
-
Introduction : In the following, we provide a solution to the problem for the case that we have substantially fewer data points than dimensions
- The number of data $N$ is smaller than the dimension of the data $D$.
- The rank of the covmat is $N$, Covmat $S$ has $D-N+1$ eigenvalues that are zero.
- We will turn the $D×D$ covariance matrix into an $N × N$ covariance matrix whose eigenvalues are all positive.
-
Consequences : we can compute the eigenvalues and eigenvectors much more efficiently than for the original $D \times D$ data covmat
10.6 Key Steps of PCA in Practice
- Introduction : In the following, we will go through the individual steps of PCA using a running example, which is summarized in Figure 10.11
- (1) Mean Subtraction : centering the data by computing the mean and subtracting it from every single data point => dataset has zero-mean
- (2) Standardization : Divide the datapoints by the standard deviation $σ_d$ of the dataset for every dimension.
- (3) Eigendecomposition of the covariance matrix : Compute the data covariance matrix and its eigenvalues and corresponding eigenvectors
- (4) Projection : We can project any data point $x_∗ ∈ R^D$ onto the principal subspace
10.7 Latent Variable Perspective
-
Introduction :
-
In the previous sections, we derived PCA without any notion of a probabilistic model
-
A probabilistic model would offer us more flexibility and useful insights. More specifically, a probabilistic model would
-
Come with a likelihood function, and we can explicitly deal with noisy observations ( which we did not even discuss earlier)
-
View PCA as a generative model, which allows us to simulate new data
-
Have the PCA we derived in earlier sections as a special case
-
-
-
Probabilistic PCA : By introducing a continuous-valued latent variable $z ∈ R^M$ it is possible to phrase PCA as a probabilistic latent-variable model (skip details)
Summary
-
In this chapter, we will discuss principal component analysis, an algorithm for linear dimensionality reduction
-
Section 10.1, Problem Setting
- Our objective is to find projections $\hat{x_n}$ of data points $x_n$ that are as similar to the original data points as possible, but which have a significantly lower intrinsic dimensionality.
-
Section 10.2, Perspective1) Maximum Variance Perspective
-
PCA as a way of dim-reduction that results in the largest variance after projection
-
the variance of projected vectors are same with the eigenvalue of covariance matrix
-
So we can find the best basis vector to project by choose the vector whose eigenvalue is the largest
-
-
-
Section 10.3, Perspective2) Projection Perspective
-
We looked at the difference vectors between the original data $x_n$ and their projection $\tilde{x}_n$ and minimize this distance so that $x_n$ and $\tilde{x}_n$ are as close as possible.
-
Objective : minimizing the average squared Euclidean distance between $x$ and $\tilde{x}_n$ (projection error)
-
An orthogonal projection is the best linear mapping given the objective.
-
-
-
Section 10.4, Eigenvector Computation and Low-Rank Approximations
- Computational efficient ways to find Eigenvector in practical aspect.
-
Section 10.5, PCA in high dimensions
- A solution to the problem for the case that we have substantially fewer data points than dimensions
-
Section 10.6, Key steps of PCA in practice
-
(1) Mean Subtraction
-
(2) Standardization
-
(3) Eigendecomposition of the covariance matrix
-
(4) Projection
-
-
section 10.7, Latent Variable Perspective
- PCA as probabilistic latent-variable model


Definition in file CList.h.
This graph shows which files directly or indirectly include this file:
Go to the source code of this file.


Kirklan:
Well...what brings you here?
Exchange Special Seed Product of Seed of Infinity or Collection reward.
Exchange Special Seed Product of Seed of Destruction or Collection reward.
Exchange Special Seed Product of Seed of Extermination or Collection reward.
Say you will continue your mission.


When a Java Application spends a lot of time either in Socket Read, Socket Write, File Read or File Write, then I/O or networking may be the bottleneck. To diagnose I/O issues in applications, take a look at Socket Read tab under the I/O group, as shown in Figure 4-5.
Figure 4-5 I/O Performance Issues - Socket Read Tab
Figure 4-5 shows that the application had 100 reads from the remote address <IP_ADDRESS>. The total number of bytes read is 356 bytes and the total time spent waiting is 1 min 57 s. Select By Event tab at the left top corner and look at each event to analyze the time spent and data read.
File or networking I/O issues are diagnosed in a similar fashion. Look at the files read to or written to the most, then see each file read/write and time spent on I/O.
All the tabs in I/O by default list events with a duration longer than 20 ms. When starting a flight recording, you can lower the File I/O Threshold or the Socket I/O Threshold to gather more data, potentially with a higher performance impact.


A website that allows a user to enter their birth year and gender and provides their Akan names.
Here are some of the Akan Names
Female
- Sunday: Akosua
- Monday: Adwoa
- Tuesday: Abenaa
- Wednesday: Akua
- Thursday: Yaa
- Friday: Afua
- Saturday: Ama
Male
- Sunday: Kwasi
- Monday: Kwadwo
- Tuesday: Kwabena
- Wednesday: Kwaku
- Thursday: Yaw
- Friday: Kofi
- Saturday: Kwame


[
next
] [
prev
] [
prev-tail
] [
tail
] [
up
]
2
Fourier series
2.1
Fourier series in terms of trigonometric functions
2.2
Fourier series in terms of basis functions
e
inπx∕L
2.3
Numerical computation of Fourier expansion coeﬃcient
[
next
] [
prev
] [
prev-tail
] [
front
] [
up
]


Create new device
Add ID and either manufacturer/device or EEP/description.
ID
Manufacturer
Devices
EEP
Description
Options
Devices
Serial port:
Timeout
Add device
Autodetect
ID
EEP
Manufacturer
Device
Description
Function


Hello, we are Coderize
A modern software company at your service!
Analysis
We dive deep into client’s business to make sure we build software that brings value.
Support
Our support is always at your disposal, even once we've finished developing your product.
Agile approach
Our working process relies on the Agile methodology that we slightly amend to satisfy you.
Mobile friendly
We design responsive interfaces with a great user-experience across all platforms.
Development
We are meticulous about the quality of our code and design usability.
Adaptive price
We adapt our prices for each client individually based on project complexity.


About
I'm a 23 year old geek, digital designer, urban/art toys fan, technology & web addict, and design lover from Switzerland.
Sometimes I make stuff for fun, or some shots of works I am working on. You can see some exclusive part of my works on dribbble.
http://dribbble.com/jdetraz
Let's talk! Contact me!
About
Work Experience
2011 - CFC
Multimedia Designer
2010 - ANTISTATIQUE
(internship) Multimedia Designer
2009 - CREATIVES SA
(internship) Graphic Designer Trainee


I am a senior at Valdosta State University working towards my B.S. in Computer Science. I strive to develop myself and increase my knowledge and abilities in every way. I enjoy working as a part of a team and can lead or follow depending on what suits the project and team best
Provide technical support for the Department of Computer Science faculty, staff, and students. Complete projects assigned by the department head and faulty. Manage and lead a team of student assistants who work in the open lab.
GPA: 3.71
I spend most of my spare time with my family but personal interests include building computers and playing video games. I have made a hobby out of building computers for people and treat it almost as another job. I also do enjoy frequenting parks and lakes and exploring nature.


A simple bookmarklet for timing the load, enhanement, and transition of a jQuery Mobile changePage() request. To use, bookmark the following link:
For platforms that don't allow bookmarking of javascript:
urls, you can copy/paste the following source for the bookmarklet directly into the browser's location bar then hit enter or hit the "go" button on your keypad:
NOTE: Some browsers like Chrome will strip off the javascript: prefix from the string above when you paste it into the location bar. Make sure what you pasted is prefixed by javascript: before attempting to load the bookmarklet.


about
INFOSHIFT is platform engineering company that specialises
in enterprise-grade platforms for all segments.
We build platform middleware products that are designed to
help speed up the innovation process and
to meet customer needs.
core
team
Rikki Vizcarra
General Manager
Jesse Panganiban
Chief Technology Officer
Lyle Kaiklian
Creative Director
core
platforms
ActiveVault
A wallet platform for storing
digital currencies (e.g. bitcoin,
loyalty points) that’s open for
3rd party integration.
-Deployable/Portable
-Low Maintenance
-Provides Opportunities for
Developers
ActiveGate
A lightweight PAaS
(Platform As a Service)
that enables companies
of different sizes to
have their own web-
based API portal.
7


Preparation time
less than 30 mins
Cooking time
30 mins to 1 hour
Serves
Serves 4-6
This is a really simple way of cooking pork and the addition of honey and ginger gives the meat a flavoursome kick!
Heat the olive oil in a lidded saucepan and fry the pancetta until golden-brown. Remove from the pan and set aside. Fry the pork in the same pan used to cook the pancetta for 4-5 minutes, or until browned all over.
Add the garlic, honey and ginger and continue to cook over a medium heat until caramelised.
Add the carrots, parsnips, shallots, rosemary, cooked pancetta, stock and black pepper, cover with a lid and cook on a medium to low heat for 30 minutes.
Check the vegetables are tender, remove them and set aside.
Continue to cook for another hour, or until the meat is tender and cooked through. Remove the pork from the pan and set aside to cool slightly. Carve into thick slices.
Return the vegetables and the pork slices to the pan to heat through before serving.


Stock Trading
Registeration
Register a new Member
{{form.csrf_token}}
Select Role
Admin
User
{{ error }}
Register
Already have an account?
Sign In


Master of Science
Department of Electronic Engineering,
 Tsinghua University, Beijing, China
Born in Shenyang, Liaoning, China.
Bachelor of Engineering, Excellent Graduate of Liaoning Province, 2017.
Electronic Engineering, Dalian University of Technology, Dalian, Liaoning, China.
Master of Science
Information and Communications Engineering, Tsinghua University, Beijing, China.


FadeOut Facebook
FadeIn Facebook
FadeToggle
Animate
Facebook is
great
.
Apple.
Microsoft.
Microsoft link.
Enter your name:


Sign up for our blog.
Your business needs results, you need Entasis.
+1  (844)  ENTASIS
en·ta·sis /'en(t)əsəs/: A modification of conv entional technology t o achie ve a desired outcome.
© 2018 Entasis Technology Consulting, LLC. All Rights Reserved.


Library Collaborative Project (JS)
Add New Book
Book Title:
Book Author:
Number of pages:
Have you read this book?
NEW BOOK


|
M_process
M_process module (Fortran)
|
Private Member Functions | |
| type(c_ptr) function | system_fgets (buf, siz, handle) |
fgets(3fp) - get character string from a file or stream by calling fgets(3c)
#include <stdio.h>
char *fgets(char *BUF, int N, FILE *FP);
Reads at most N-1 characters from FP until a newline is found. The characters including to the newline are stored in BUF. The buffer is terminated with a 0.
fgets(3c) returns the buffer passed to it, with the data filled in. If end of file occurs with some data already accumulated, the data is returned with no other indication. If no data are read, NULL is returned instead.
Note that fgets(3c) returns all of the data, including the newline.
|
private |


2019
# of NN in this election:,# of NN already on Mainnet,# of NN re-elected,New NN operator ?,In testnet ?,Uses mining rewards to grow KMD platform,what area and percent,Rewards the voters,what percent,Uses mining rewards for funding others,Is official KMD team member,Dona...


--- title: "Rethinking the logistic model" author: "Drew Tyre" date: '2019-02-25' output: html_document draft: no slug: rethink-logistic tags_include: - ecology - carrying capacity categories: Research ---
A few weeks ago I rambled on about carrying capacity as a concept. The day after I posted that, I stumbled across a paper by James Mallet in 2012 on why the r-K parameterization of the logistic model is all wrong. Mind Blown.
The essential point of the paper is that our typical form of logistic growth
\[ \frac{1}{N}\frac{dN}{dt} = r_{max}\left(1-\frac{N}{K}\right) \]
is a historical accident. Verhulst’s original form was
\[ \frac{1}{N}\frac{dN}{dt} = r_{max} - \alpha N \]
with an equilibrium population size given by \(N^* = r_{max} / \alpha\). This is brilliant, because now \(r_{max}\) represents growth in the absence of intraspecific competition, while \(\alpha\) is how much growth is reduced by intraspecific competition. Most importantly, these two parameters can vary independently. In contrast, \(r_{max}\) and \(K\) are linked at the hip.
To see this, consider the following diagram of per-capita birth and death rates changing with population size1.
A change in per capita death rates, say by increasing trapping by humans that is density independent, shifts the death rate curve upwards, parallel to the current line. This reduces \(r_{max}\), because the y-intercepts get closer, and reduces \(K\), because now the two curves cross closer to the origin. However, \(\alpha\), the sum of the slopes of the lines does not change.
This isn’t a trivial side bar. Trevor Hefley’s work on detecting transcritical bifurcations in real populations ran into issues because of this non-independence. Trevor fit an r-K model to population data on Bobwhite. He allowed both \(r_{max}\) and \(K\) to change over time. If \(r_{max}\) dips below 0 while \(K > 0\), then the population goes through a “transcritical bifurcation” – the equilibrium population size ceases to exist, and the population decays exponentially towards 0. However, if \(N>K\) when the bifurcation occurs, the r-K model predicts an increase towards \(\infty\).
library("tidyverse")
library("tidypop") # note: code below using the dev branch of this package use
# devtools::install_github("atyre2/tidypop@dev")
rKmod <- function(N0, r, K){
N1 <- N0 + N0*r*(1-N0/K)
return(N1)
}
inputs <- tibble(t = 1:20,
r = c(rep(0.5,10), rep(-0.1,10)),
K = c(rep(100,10), rep(90,10)))
outputs <- iterate(inputs, N0 = 20, rKmod)
ggplot(data = outputs,
mapping = aes(x = t, y = N)) +
geom_line() +
geom_step(data = inputs,
mapping = aes(y = K), linetype = 2)
Needless to say that isn’t the expected behavior for \(r_{max} < 0\)! If I switch to the \(r-\alpha\) form, I need to work out what \(\alpha\) should be to have \(N^* = 100\). I think it is \(r/N^* = 0.005\) in this case so
ramod <- function(N0, r, alpha){
N1 <- N0 + N0*r - alpha*N0^2
return(N1)
}
inputs <- tibble(t = 1:20,
r = c(rep(0.5,10), rep(-0.1,10)),
alpha = 0.005,
K = r / alpha)
outputs <- iterate(inputs, N0 = 20, rKmod)
ggplot(data = outputs,
mapping = aes(x = t, y = N)) +
geom_line() +
geom_step(data = inputs,
mapping = aes(y = K), linetype = 2) +
ylim(c(0,100))
That’s more like it! The per capita effect of intra-specific competition didn’t change – the perturbation just affected the population in a density independent way.
What is \(\alpha\)? I’ll start with discrete time exponential growth, and substitute straight line functions for the per capita birth and death rates.
\[ \begin{align} N_{t+1} & =N_t\left(1 + b - d\right) \\ & =N_t + N_tb - N_td \\ & =N_t + N_t(b_0 + b_1N_t) - N_t(d_0 + d_1N_t) \\ & =N_t + N_t(b_0 - d_0) + N_t^2(b_1 - d_1) \\ & =N_t + r_{max}N_t -\alpha N_t^2 \end{align} \]
So \(b_0-d_0\) is usually rewritten as \(r_{max}\). But also, \(-\alpha = b_1 - d_1\), which is … just beautiful. To write that equation with \(K\) requires so much more algebra.
It also expands easily to competition. \[ \begin{align} N_{1,t+1} & =N_{1,t} + r_{max}N_{1,t} -\alpha_{11} N_{1,t}^2 - \alpha_{21}N_{1,t}N_{2,t} \\ N_{2,t+1} & =N_{2,t} + r_{max}N_{2,t} -\alpha_{22} N_{2,t}^2 - \alpha_{12}N_{2,t}N_{1,t} \end{align} \]
and so on! Wow.
Now I’ve even more reason to rewrite my lecture notes and redo all the videos. How do I check to see if this change improves student learning?
Yes, that’s using base R plotting. I’m being lazy and recycling a figure from my lecture notes, which are not yet tidied.↩


angular version changelog
v2.0.0
- fix(dropdowns): dropup misplaced temp fix
- chore: update
@coreui/icons
to 0.3.0
- refactor(coreui-icons): move to
@coreui/icons v0.3.0
- update:
@angular/*
to 6.1.6
- update:
angular-devkit/build-angular
to 0.7.5
- update:
@angular/cli
to 6.1.5
- update:
rxjs
to 6.3.0
- update:
rxjs-compat
to 6.3.0
- update:
@types/node
to 10.9.4
- update:
jasmine-core
to 3.2.1
- update:
karma-coverage-istanbul-reporter
to 2.0.2
- update:
karma-jasmine-html-reporter
to 1.3.1
v2.0.0-rc.4
- fix(forms): validation classes example closes #95
- fix(forms): card-header-actions example
- fix(forms): autocomplete
- fix(login): form, autocomplete
- fix(register): form, autocomplete
- update:
@types/node
to 10.7.0
",`
- update:
codelyzer
to 4.4.4
- update:
karma-jasmine-html-reporter
to 1.3.0
- update:
typescript
to 2.9.2
v2.0.0-rc.3
- fix(carousels): move to
loremflickr
image placeholders
- refactor: code cleanup
- tests: fix minimal testing
- update:
@angular/*
to 6.1.2
- update:
@angular/cli
to 6.1.3
- update:
@angular-devkit/build-angular
to 0.7.3
- update:
ngx-perfect-scrollbar
to 6.3.0
- update:
rxjs
to 6.2.2
- update:
rxjs-compat
to 6.2.2
- update:
@types/node
to 10.5.8
- update:
codelyzer
to 4.4.3
- update:
jasmine-core
to 3.2.0
- update:
karma
to 3.0.0
- update:
protractor": "5.4.0
- update:
ts-node
to 7.0.1
- update:
tslint
to 5.11.0
v2.0.0-rc.2
- update: @angular/animations to 6.0.9
- update: @angular/common to 6.0.9
- update: @angular/compiler to 6.0.9
- update: @angular/core to 6.0.9
- update: @angular/forms to 6.0.9
- update: @angular/http to 6.0.9
- update: @angular/platform-browser to 6.0.9
- update: @angular/platform-browser-dynamic to 6.0.9
- update: @angular/router to 6.0.9
- update: @coreui/coreui to 2.0.4
- update: @coreui/icons to 0.3.0
- update: bootstrap to 4.1.2
- update: codelyzer to 4.4.2
- update: karma-jasmine-html-reporter to 1.2.0
v2.0.0-rc.1
- chore: dependencies update
v1.0.10
- update: ngx-bootstrap to
2.0.2
- update: dependencies
v1.0.9
- update: bootstrap to
v4.0.0
- update: dependencies
v1.0.8
- update: bootstrap to
4.0.0-beta.3
- update: ngx-bootstrap to
2.0.0-rc.0
- fix(forms): duplicate
select
ids, toggleCollapse
- fix(dashboard): btnRadio
- refactor:
input-group-addon
to new 4.0.0-beta.3
classes
- feature: some Bootstrap4 components added
- feat: mobile sidebar link click closes the sidebar
- update: dependencies


|
TexiScript
1.0.0
A tool that can generate textures using a simple scripting language.
|
Public Member Functions | |
| SeededPositionedRandom (double seed, double x, double y) | |
| double | r () |
| double | r (double max) |
| double | r (double min, double max) |
| int | i (int max) |
| int | i (int min, int max) |
| boolean | chance (double $chance) |
| int | sign () |
| int | sign (int num) |
| double | sign (double num) |
RandomGenerator implementation that generates values based on a seed and two coordinates
Definition at line 6 of file SeededPositionedRandom.java.
| cz.zdepav.school.texiscript.utils.SeededPositionedRandom.SeededPositionedRandom | ( | double | seed, |
| double | x, | ||
| double | y | ||
| ) |
Definition at line 17 of file SeededPositionedRandom.java.
| boolean cz.zdepav.school.texiscript.utils.SeededPositionedRandom.chance | ( | double | $chance | ) |
Returns true with the given probability.
| $chance | Probability to return true, between 0 and 1. |
Implements cz.zdepav.school.texiscript.utils.RandomGenerator.
Definition at line 58 of file SeededPositionedRandom.java.
| int cz.zdepav.school.texiscript.utils.SeededPositionedRandom.i | ( | int | max | ) |
Returns random integer value between 0 (inclusive) and max (exclusive).
| max | Max value (exclusive). |
Implements cz.zdepav.school.texiscript.utils.RandomGenerator.
Definition at line 46 of file SeededPositionedRandom.java.
| int cz.zdepav.school.texiscript.utils.SeededPositionedRandom.i | ( | int | min, |
| int | max | ||
| ) |
Returns random integer value between min (inclusive) and max (exclusive).
| min | Min value (inclusive). |
| max | Max value (exclusive). |
Implements cz.zdepav.school.texiscript.utils.RandomGenerator.
Definition at line 52 of file SeededPositionedRandom.java.
| double cz.zdepav.school.texiscript.utils.SeededPositionedRandom.r | ( | ) |
Returns random double value between 0 (inclusive) and 1 (exclusive).
Implements cz.zdepav.school.texiscript.utils.RandomGenerator.
Definition at line 25 of file SeededPositionedRandom.java.
| double cz.zdepav.school.texiscript.utils.SeededPositionedRandom.r | ( | double | max | ) |
Returns random double value between 0 (inclusive) and max (exclusive).
| max | Max value (exclusive). |
Implements cz.zdepav.school.texiscript.utils.RandomGenerator.
Definition at line 34 of file SeededPositionedRandom.java.
| double cz.zdepav.school.texiscript.utils.SeededPositionedRandom.r | ( | double | min, |
| double | max | ||
| ) |
Returns random double value between min (inclusive) and max (exclusive).
| min | Min value (inclusive). |
| max | Max value (exclusive). |
Implements cz.zdepav.school.texiscript.utils.RandomGenerator.
Definition at line 40 of file SeededPositionedRandom.java.
| int cz.zdepav.school.texiscript.utils.SeededPositionedRandom.sign | ( | ) |
Returns 1 or -1 with equal probability.
Implements cz.zdepav.school.texiscript.utils.RandomGenerator.
Definition at line 64 of file SeededPositionedRandom.java.
| double cz.zdepav.school.texiscript.utils.SeededPositionedRandom.sign | ( | double | num | ) |
Returns num or -num with equal probability.
Implements cz.zdepav.school.texiscript.utils.RandomGenerator.
Definition at line 76 of file SeededPositionedRandom.java.
| int cz.zdepav.school.texiscript.utils.SeededPositionedRandom.sign | ( | int | num | ) |
Returns num or -num with equal probability.
Implements cz.zdepav.school.texiscript.utils.RandomGenerator.
Definition at line 70 of file SeededPositionedRandom.java.


| Methods | ||
|---|---|---|
public
|
__construct(ViewEngine $engine, ViewExtractorInterface $extractor, string $view, FileItem $file, array $data)
|
# |
public
|
render(Closure $closure = null): string|array
|
# |
protected
|
renderContent(): string
|
# |
public
|
queue(string|array $keys, mixed $value = null): View
|
# |
public
|
error(MessageBag|array $message): View
|
# |
public
|
renderSections(): array
|
# |
protected
|
getDataFromExtractor(): string
|
# |
protected
|
collectData(): array
|
# |
public
|
name(): string
|
# |
public
|
data(): array
|
# |
public
|
file(): FileItem
|
# |
public
|
path(): string
|
# |
| Properties | |||
|---|---|---|---|
protected
|
ViewEngine
|
$engine
|
# |
protected
|
ViewExtractorInterface
|
$extractor
|
# |
protected
|
string
|
$view
|
# |
protected
|
FileItem
|
$file
|
# |
protected
|
array
|
$data
|
# |


This is a simple hero unit, a simple jumbotron style component for calling extra attention to featured content or information.
Scratch at owner, destroy all furniture, especially couch my water bowl is clean and freshly replenished, so i'll drink from the toilet dont wait for the storm to pass, dance in the rain and bird bird bird bird bird bird human why take bird out i could have eaten that. Proudly present butt to human. When in doubt, wash scream at teh bath, for ask to be pet then attack owners hand stuff and things but cough furball lick butt and make a weird face. Plays league of legends please stop looking at your phone and pet me for ask to be pet then attack owners hand for pooping rainbow while flying in a toasted bread costume in space for lick sellotape yet claws in your leg bite off human's toes.
Nya nya nyan have secret plans and poop on grasses but meow meow mama but purr like an angel stare out the window so leave fur on owners clothes. Go into a room to decide you didn't want to be in there anyway spot something, big eyes, big eyes, crouch, shake butt, prepare to pounce wake up human for food at 4am.
Open the door, let me out, let me out, let me-out, let me-aow, let meaow, meaow!

I will ruin the couch with my claws attempt to leap between furniture but woefully miscalibrate and bellyflop onto the floor; what's your problem?


Use this button for testing transparent themes
Your browser does not support the
audio
element.
Your browser does not support the
video
element.


Pat’s Salmon Cookies are a combining two signature Seattle icons.
Pat the owner has developed a recipe for a coffee-time.Salmon Cookies are the cookies for all.
We are located in seattle//Tokyo//Dubai//Paris//Lima.
Opening hour from (6:00 AM to 8:00 PM for all locations) to have
more information please contact with us .
These cookies made into the shape of a salmon that has just a hint of fishy goodness.


class: top, left, inverse, title-slide # Education & Globalization ## Session 09 ### Dr. Zhou Yisu 周憶粟 ### 2018/09/24 --- # Outsourcing ## Aim We have talked about knowledge workers and body workers. They represented diverging ways of how we as individual engage in occupational activities. However, regardless of the type of labor one choose to do, globalization also changes how we receive our jobs. This is today's topic: .red[outsourcing] 1. What is outsourcing? 2. How does globalization changed outsourcing? --- ## Outsourcing .violet[The transfer of activities once performed by an entity to a business or businesses in exchange for money] Complex phenomenon not only in economic sphere, e.g. health care, child care, military, etc: - [社會文化司司長譚俊榮解釋內地跨境養老方案](http://www.gsasc.gov.mo/show_news.aspx?lang=cn&newsid=523) - [America's private military service goes to China](https://www.washingtonpost.com/news/world/wp/2018/05/04/feature/a-warrior-goes-to-china-did-erik-prince-cross-a-line/) Not always global .orange[macro-level] in character (i.e. country to country), but regional or local as well. Outsourcing shapes the way we thinking about doing business, working, and how to lead a life: - .orange[meso-level]: Restaurants outsourcing the cooking to 3rd parties and simply reheat it - .orange[micro-level]: Ordinary people outsourcing the care of their young children or aged parents to institutions or live-in assists. --- ## Outsourcing can happen domestically ### Japan mode: Haken Employee 派遣員工 Most people are in permanent "temporary" status .red[1]: >The number of lifetime jobs has been declining for decades; according to government data, part-time positions now make up almost .violet[40 percent] of the workforce. These jobs also earn on average 38 percent less per hour than full-time positions. Temps and part-timers—who often work 40 hours a week—accounted for all of the nation’s job growth in the past five years; 60 percent of employment offers in March were for temporary positions. .footnote[ English Reference: https://www.bloomberg.com/news/articles/2014-05-29/japans-women-fight-wage-discrimination-in-part-time-economy Chinese reference: https://theinitium.com/article/20170112-international-JapanTrainee/] --- ## Outsourcing can happen between countries ### Offshore outsourcing 離岸外包 .violet[The transfer of activities to entities in other countries] - Typical cases are: Call centers in India & Philippines Offshore outsourcing not only happens in low-end service sector, but also increasingly in high-tech sector: - Information Technology (i.e. CTM) - Accounting (i.e. [The Apple's financial magic](https://www.nytimes.com/2018/08/06/opinion/apple-trillion-market-cap.html)) - Law firms with international branches .violet[In-sourcing] also needs to be considered, as out-sourcing from one country results in simultaneous in-sourcing in another country --- # A not so common example: ## Animation Production 動畫製作 --- ## Anime > Anime studios mobilize an elaborate and complex .violet[division of labor] in the production process. Some core divisions are hosted in-house (for example, director, character designer, producer), but many others are subcontracted to smaller studios specializing in specific processes (for example, background art, filming/digital composition) as well as to freelancers that make up the majority of animators and episode directors (that is, those who direct particular episodes in a television series). While the Japanese animation industry is clustered in western Tokyo, the two most labor intensive divisions, that is, .violet[in-betweening] and .violet[coloring], are now mostly outsourced to large-scale subcontractors in .green[China], .green[South Korea], and the .green[Philippines].(Kim Joon Yang, 2014) .footnote[ division of labor: 勞動分工 in-house: 公司內部 ] --- >Although the bulk of the anime will consist of in-between frames, the creative vision is set by the key frames. It is possible that for some titles nearly all of anime's frames, except for key frames, are not actually drawn in Japan. Consider that there are 24 frames per second. .red[A 30-minute show (about 20 minutes after cutting out opening and ending scenes and commercials) is 28,800 frames.] Fortunately, they don't usually make 24 frames for each second. 12 frames per second is common. Few of them are key frames. The foundation of animation is _frame_. In traditional animation, each frame is hand drawn. It obviously involves lots of manual work to realize the creative vision of the director. .footnote[ in-between frames: 填充幀 key frames: 關鍵幀 ] --- ### FPS = frame per second. Obviously more frames = smooth animation = higher quality .pull-left[ ![](https://i.pinimg.com/originals/96/c5/e8/96c5e8ccf4d95be0a9c2a49014f0feb5.gif) ] .pull-right[Source: http://bit.ly/2NrYIQ7 If you care to view an illustrated sample: https://youtu.be/npMreLeVD6o play the video at 0.25x speed of the original speed and you will see the difference] --- background-image: url(https://cdn.animenewsnetwork.com/images/cms/feature/99852/gurrenkadouga.gif) background-size: contain ### Above: jumpy animation with only key frames; Below: in-between frames filled --- ### Many frames involved to make the subject "live" ![:wscale 80%](https://cdn.animenewsnetwork.com/images/cms/feature/99852/layoutdouga.gif) --- background-image: url(https://cdn.animenewsnetwork.com/thumbnails/fit650x1000/cms/feature/100499/colorsekkei.jpg) background-size: contain background-position: bottom ### Color finishing: Also require human to fill in different color on each subject --- >“A third of the labor pool for Japanese animation is actually outside Japan,” says Jonathan Clements, an anime maven writing an industrial history of Japanese animation for the British Film Institute. “I can see that climbing ever higher, until a Japanese animation company is three men in a Tokyo apartment, outsourcing every other aspect of production overseas.” .red[1] In addition to the animation industry, video games are also being outsourced, to China: [The Universe Has Been Outsourced: The unseen labor behind the video game industry's biggest titles](https://theoutline.com/post/3087/outsourcing-blockbuster-video-games-made-in-china-horizon-zero-dawn?zd=1&zi=xvrz42bo) .footnote[[1] Source: https://variety.com/2012/digital/news/japanese-companies-outsourcing-anime-1118049388/] --- ## What is the spirit of this story? Most creative work involves (incredible) amount of manual work: knowledge work and body work can never be separate from one another Network and connections are key to understand how outsourcing takes place: - Why Japan choose South Korea, China, and Philippines as outsourcing destination? + Geographic proximity + Similar working ethics + Economic investment history: Japan invested in east Asian countries after it developed, therefore creating structures that other companies could use --- ## Motivation behind outsourcing .violet[Cost cutting]: outsourcing saves employers money .violet[Accelerating innovation and business efficiency]: - Agile - Lean - Speed - Streamlining - Flexbility & scalability: grow and shrink as required. .violet[Companies no longer need to develop everything in-house]: They can simply purchase essential services outside .brown[Concerns]: - Data sharing & security - Organizattional culture: does the outsourcing company fit our own working culture? - Coordination between senders and receiver of the jobs --- ### Other processes related to the spread of outsourcing .violet[Supply-chain] 供應鏈: a method of collaborating horizontally - among suppliers, retailers, and customers - to create value. - For any product or service, they were divided into small steps or units and distributed across the globe. .violet[Technological innovation] (especially telecommunication makes it possible for large scale real-time coordination among companies possible). What else? - Networks were activated (based on common history, cultural ties, language) - Structure were created and barriers tear down + Consultant + Financial circulation: I want to receive payment for the jobs I did --- ## Creative destruction Economist Joseph Schumpeter created this term: .orange[while much outsourcing is destructive, in the long run, it is constructive, good for the capitalist system] (i.e. generating new values, creating more jobs, etc). More on this: p.189 of Ritzer & Dean There are two things that are related: --- class: middle ## 1. The benefit and cost are distributed very unevenly - When a job is outsourced, some jobs are inevitably destroyed at the sending end - At the receiving end, more jobs are created. - It would be hard to move people around (particularly when jobs involved are low-end or low value-added) but much easier to move technology, money, even equipment around. --- class: middle ## 2. Is outsourcing keep the best interest of you? - As a consumer, yes definitely. Outsourcing making products cheaper, bring in more variety. - What about when you are working for one of the companies? + You might lose your original job + New jobs might be more demanding or pay significantly less --- ## From labor's point of view, these are major concerns from outsourcing/globalization - We no longer feel safe about our work - The idea of "career development" also seems questionable + outsourcing often involves deskilling, rendering labor less employable in the long run + empolyers are less willing to invest in workers because they can just purchse another service - "loyalty" becomes more and more rare --- ## How do you protect yourself? - citing Thomas Friedman .orange[Knowledge]: bring bottom of the basic skills to average. Not just basic literacy. Basic understanding of the industry/technology/people. .orange[Skills]: what you can do with what you know (i.e. the Google machine "knows everything") therefore you should develop skills that are not easily replacable. .orange[Motivation]: information technology has brought the cost of virtually everything down. Virtually all the tools you need to make something is out there. What matters is who is willing to put tools/info together in different ways to complete complex tasks? Who is willing to constantly learn and re-learn? .cyan[Everyone is being _forced_ to bring something extra to the table] .footnote[Source: https://youtu.be/Xww6-KEBPTE] --- ## Some advice from Thomas Friedman - .orange[Think like an immigrant and stay hungry]. - To be a paranoid optimist with more energy, vigor and greater persistence than anybody else. - .orange[Think like an artisan 職人/匠人 and take pride]. - Take pride on your work, bring much unique value-add to your work, bring much extra into your work in order to be proud marking your initials into your work. - .orange[Think like a Silicon Valley startup and always be in Beta status]. - Needs to be 'work-in-progress', and never think of yourself as 'finished'. It requires the ability to learn and relearn in a world of constant change. It's about your mindset that you are a 'work-in-progress' or beta. - .orange[PQ and CQ (Pick You + Seek You)] is always better than IQ. - In a hyper connected word, one with a high passion, high curiosity and high motivation is always better than a person with a high IQ of intelligence. - .orange[Think like a waitress and always be entrepreneurial]: Even with your tiny discretionary power, you can make difference. --- class: middle ## Sounds neoliberal? Because it is: Ritzer & Dean p.92-94 --- ## Resource - Rizter & Dean Chapter 7, p.187. - [The Universe Has Been Outsourced: The unseen labor behind the video game industry's biggest titles](https://theoutline.com/post/3087/outsourcing-blockbuster-video-games-made-in-china-horizon-zero-dawn?zd=1&zi=xvrz42bo) - Joon Yang Kim. (2014). South Korea and the Sub-Empire of Anime: Kinesthetics of Subcontracted Animation Production. _Mechademia, 9_, 90-103. doi:10.5749/mech.9.2014.0090 - .cyan[How is skilled labor managed internationally to serve an extremely volatile global IT market?]: Xiang, B. (2007). _Global "body shopping": an Indian labor system in the information technology industry._ Princeton University Press. + Chinese version: 全球"獵身":世界信息產業和印度的技術勞工， 項飚（著） - A four-part analysis describing how animes are made (not quite related to today's course but just in case you want to know) + [Part 1](https://www.animenewsnetwork.com/feature/2016-03-16/your-ultimate-guide-to-anime-ending-credits-part-i/.99852) + [Part 2](https://www.animenewsnetwork.com/feature/2016-03-31/your-ultimate-guide-to-anime-ending-credits-part-ii/.100499) + [Part 3](https://www.animenewsnetwork.com/feature/2016-06-03/your-ultimate-guide-to-anime-ending-credits-part-iii/.102826) + [Part 4](https://www.animenewsnetwork.com/feature/2016-08-17/your-ultimate-guide-to-anime-ending-credits-part-iv/.105472)


java.lang.AutoCloseable
, java.lang.Runnable
public class TcpServer
extends java.lang.Object
implements java.lang.AutoCloseable, java.lang.Runnable
| Modifier and Type | Class | Description |
|---|---|---|
class |
TcpServer.ClientConnection |
| Constructor | Description |
|---|---|
TcpServer(int port) |
|
TcpServer(int port,
int timeout) |
|
TcpServer(int port,
int timeout,
int backLog) |
|
TcpServer(int port,
int timeout,
int backLog,
boolean startImmediately) |
|
TcpServer(int port,
int timeout,
int backLog,
java.net.InetAddress bindAddr) |
|
TcpServer(int port,
int timeout,
int backLog,
java.net.InetAddress bindAddr,
boolean startImmediately) |
| Modifier and Type | Method | Description |
|---|---|---|
void |
addCommandListener(CommandListener listener) |
|
void |
addConnectionListener(ServerConnectionListener listener) |
|
void |
addMessageListener(MessageListener listener) |
|
void |
close() |
Attempts to gracefully-ish shutdown the server and disconnect all existing client connections
|
java.net.InetAddress |
getSocketAddress() |
|
void |
removeAllListeners() |
|
void |
removeCommandListener(CommandListener listener) |
|
void |
removeConnectionListener(ServerConnectionListener listener) |
|
void |
removeMessageListener(MessageListener listener) |
|
void |
run() |
|
void |
sendCommand(java.io.PrintWriter outgoing,
java.security.PublicKey key,
java.lang.String command,
java.lang.String arguments) |
Sends a command to the client
|
void |
sendText(java.io.PrintWriter outgoing,
java.security.PublicKey key,
java.lang.String data) |
Sends a simple message to the client containing
data |
java.util.concurrent.CompletableFuture<java.lang.Void> |
start() |
Starts up the server if it is not already running
|
public TcpServer(int port)
port
- port number that the server is to connect topublic TcpServer(int port, int timeout)
port
- port number that the server is to connect totimeout
- how many milliseconds of zero activity until a client is automatically disconnectedpublic TcpServer(int port, int timeout, int backLog)
port
- port number that the server is to connect totimeout
- how many milliseconds of zero activity until a client is automatically disconnectedbackLog
- how many connections are allowedpublic TcpServer(int port, int timeout, int backLog, java.net.InetAddress bindAddr)
port
- port number that the server is to connect totimeout
- how many milliseconds of zero activity until a client is automatically disconnectedbackLog
- how many connections are allowedbindAddr
- the local InetAddress the server will bind to. Leave null if you want to use "localhost"public TcpServer(int port, int timeout, int backLog, boolean startImmediately) throws ServerException
port
- port number that the server is to connect totimeout
- how many milliseconds of zero activity until a client is automatically disconnectedbackLog
- how many connections are allowedstartImmediately
- should the server immediately connect and startServerException
public TcpServer(int port, int timeout, int backLog, java.net.InetAddress bindAddr, boolean startImmediately) throws ServerException
port
- port number that the server is to connect totimeout
- how many milliseconds of zero activity until a client is automatically disconnectedbackLog
- how many connections are allowedstartImmediately
- should the server immediately connect and startbindAddr
- the local InetAddress the server will bind to. Leave null if you want to use "localhost"ServerException
public java.net.InetAddress getSocketAddress()
InetAddress
of the serverpublic java.util.concurrent.CompletableFuture<java.lang.Void> start() throws ServerException
CompletableFuture
when the server has finished starting upServerException
- if something goes wrong during startuppublic void addMessageListener(MessageListener listener)
public void removeMessageListener(MessageListener listener)
public void addCommandListener(CommandListener listener)
public void removeCommandListener(CommandListener listener)
public void addConnectionListener(ServerConnectionListener listener)
public void removeConnectionListener(ServerConnectionListener listener)
public void removeAllListeners()
public void run()
run
in interface java.lang.Runnable
public void sendText(java.io.PrintWriter outgoing, java.security.PublicKey key, java.lang.String data)
data
outgoing
- PrintWriter
used for sending messages to the clientkey
- PublicKey
of the client used to encrypt the datadata
- String
data to be sent to the clientpublic void sendCommand(java.io.PrintWriter outgoing, java.security.PublicKey key, java.lang.String command, java.lang.String arguments)
outgoing
- PrintWriter
used to communicate to the clientkey
- PublicKey
of the client used to encrypt the datacommand
- the command to be sentarguments
- the command argumentspublic void close()
close
in interface java.lang.AutoCloseable


Rubyist | Bughouse Enthusiast | Sustainability Software
Cold Brew Guy | Code Demystifier | Tennis Fan
I've been a professional software developer since 2009. My career has been mostly focused as a backend developer but I do it all:
- Backend
- Frontend
- Bash scripting
- Pair programming
- Agile development methodologies
- Continuous integration
- Chat ops
- Issue tracking
- Systems integration testing
- User acceptance testing
- Webpage optimization
- Business strategy
In 2009, I got a computer science degree from the University of Virginia School of Engineering. My thesis project was on local foodshed mapping - I used Google Maps overlays in KML to visualize how food moves from the producer to the consumer. Did you know that in the U.S., the average carrot travels 1800 miles from the farm to your dinner plate?
I built my first website in high school - it was devoted to probabilities in poker. I was very popular with the ladies.
Here’s what I’ve been up to lately:
Zappling, A Division of 2RW
2RW is a sustainable energy consulting company that works on LEED-certification and comprehensive green energy solutions. In English: we help buildings, campuses, and governments save money and tread lightly on the planet through efficient energy usage. Zappling is 2RW’s software division, and I’m the co-head of web development there.
I write software that tracks, monitors, and analyzes a compendium of data from affordable housing properties to make detailed engineering calculations related to energy use.
I’ve also developed API architecture that connects several related web apps through a common interface to reuse building information, streamline client web services, implement internal single sign-ons, and handle user roles across all apps.
A day in the life at Zappling for me includes issue tracking via GitHub Issues, training teammates to adopt new workflows, troubleshooting IT problems across all departments, testing, scheduling DB backups, and data syncing between environments. Frequently, I can also be found implementing Heroku CI/CD for Rails apps to keep downtime to a minimum and ensure new code has adequate test coverage.
Commonwealth Joe
In 2012, I co-founded a coffee roast retailer, Commonwealth Joe. In addition to the wearing-all-hats that happens in an early-stage startup, I served as the CTO. I oversaw the improvement and evolution of all technical parts of the business, including e-commerce integration with Shopify. I also envisioned and developed our entire cold brew line, which is now the fastest-growing part of CJoe.
Commonwealth Joe has been a huge success. We currently have two flagship stores, a roastery, and a brewery that provides nitro cold brew to offices up and down the east coast. To date we have raised over $2 million in venture funding. While my co-founder Robbie now runs the business full-time as CEO, I have stepped away but continue to serve in an advisory role.
Other Professional Work
The above describes my day job for the past seven years. Prior to that, I worked as an application services consultant at IBM. I oversaw code deployment and database updates for a $1 billion Department of Homeland Security project. I conducted System Integration Testing (SIT) and User Acceptance Testing (UAT) for development releases, and supported and trained the team in technical change management. I also developed metrics and analysis for team-wide financial data collection.
Projects
Utility Rate Scheduler
Custom Energy Utility Bill Calculator that models complex rate schedules across 47 states and can compute bill totals from end use.
Commonwealth Joe
Our company's flagship cafe that we designed from scratch with pour over bar and at least six nitro cold brew varietals on tap.
Inheritance
Funding
Set up testing infrastructure for new development, upgraded entire 3rd party custom wordpress theme and integrated all forms and pages with google adwords and analytics tracking.
Engineered Utility Allowances
Deployed Rails 4/PostgreSQL backed app that tracks, monitors and predicts building energy use and utility allowances for low income and/or tax credit properties.
Specific Technical Programming Language Skills
- Intermediate experience with C, Ocaml, and Lisp (Scheme)
- Advanced experience with Ruby, Ruby on Rails, Javascript, and Java
- Code Libraries and Frameworks: Ruby on Rails, jQuery/jQuery UI, Twitter Bootstrap, Wordpress, CakePHP
- Expertise in HTML, CSS, Bash, PHP, MySQL, PostgreSQL, Python, C#, C++
- Software Services/Tools: Heroku, Redis, Github, AWS, Slack, IBM Rational Suite, Eclipse, MS Visual Studio