Because of this, most mainstream journalism and media is produced in English before it is produced in any other language. Although some larger journalism corporations, like The New York Times, offer Spanish translations of articles, not every story is translated. Even if the story is translated, when a story is written with the intent of being read in English, there are certain ideas, words and phrases that do not translate to another language.
At Ohio University, there are not many opportunities for students to explore multilingual journalism. There is little multilingual journalism produced from student media or in journalism classrooms. While OU has an array of student publications, including magazines, newspapers, radio stations and more, writing and publishing in English is the only option available to multilingual readers and student journalists learning the craft.
“The world opens up to you when you speak another language.” —Valeria Fernández, an investigative bilingual journalist
Joaquín Vigo, a sophomore majoring in linguistics, feels more could be done in the realm of promoting bilingual journalism. Originally from San Juan, Puerto Rico, Vigo speaks Spanish as his first language. Since moving to the U.S., he has consumed journalism in both Spanish and English but gives preference to one under certain circumstances.
“I like to keep a good balance of both,” Vigo said. “Generally, there’s more high-quality media in English … I enjoy being able to keep up on events in Spanish, especially when news in Spanish speaking places might not necessarily be covered.”
Vigo has never seen any sort of media in Spanish in Athens or from the university while attending OU.
“I don’t think I’ve ever found any OU resource or announcement or news that’s in a language that is not English,” Vigo said. “I don't think they (OU) have done a good job of that. I don’t know if it's necessarily their fault because, to be fair, most people here only speak English.”
Lenny Massiel Cauich Maldonado, a doctoral student studying mass communication, agrees with Vigo in that there are not many bilingual resources at OU. Originally from Mexico, Cauich Maldonado has two master’s degrees, one from West Virginia University in Spanish, and the other from OU in Latin American Studies. She is currently a teaching assistant for an introductory journalism class at OU.
“To promote bilingual journalism, I believe there should be a bilingual journalism class offered: a Spanish for journalists,” Cauich Maldonado said. “I also believe there should be a collaboration with the Department of Modern Languages. They are the only ones who work in Spanish at the university.”
Although the promotion of bilingual journalism is important at the university level, it is also vital at the professional level. The journalism field continues to see a demand for journalists who can report in one, two or even more languages. According to TechRepublic, bilingual remote jobs have spiked 30% since the start of the pandemic.
La Prensa is a weekly newspaper that serves the Latino communities in Ohio and Michigan. The oldest bilingual publication in the region, La Prensa covers all different types of issues, including news, the arts, immigration, Hispanic culture and, most notably, stories that concern the Spanish speaking community. The publication reports around 30% to 40% of its content in Spanish and 60% to 70% of its content in English.
Rico Neller is the founder of La Prensa, as well as the editor. The newspaper is based in Toledo, Ohio. Neller realized the community did not have any bilingual publications and was inspired to start one. Although he does not have a degree in journalism, Neller had dabbled in the field previously through working at his college’s newspaper. Additionally, Neller spent a large part of his adolescence in South America and Mexico, where he became fluent in the language and developed a passion for covering the Spanish speaking community.
Neller said the hardest part of running a bilingual newspaper is finding reporters and writers who can report and write in Spanish. It’s especially difficult to find reporters who can write quality stories in both languages, especially adhering to AP Style, he said.
Adrianne Chasteen, the general manager at La Prensa, said when it comes to choosing what is written in Spanish, it depends on the relevancy to the readers.
“If we have something geared toward immigration or about the culture, of course, we probably would have it in Spanish,” Chasteen said.
For Chasteen, a benefit of bilingual journalism is that it can serve as a way to be able to tell a full story.
“There's more than one side to a story,” Chasteen said. “First and foremost … you can say something in English, and you can translate it in Spanish and it’s not going to say the same thing. I think that in itself is also very important because if you’re targeting an audience that speaks Spanish then … you want them to trust you.”
La Prensa has also helped to change the landscape of local journalism in the Midwest since it was started.
“I would like to think that we’re considered a voice,” Chasteen continued. “When Rico started the publication in ‘89, people didn’t even know what the word ‘Hispanic’ meant … Wherever our newspaper is, we care about what the Hispanic community in the area is going through, what issues they have, what needs to be brought out to the community.”
Chasteen said the most rewarding part of working in bilingual media is being able to connect with the community. She said her work at La Prensa has given her the ability to understand the Hispanic culture in a more intimate way.
“I think in any kind of community, if there’s a certain amount of culture (and) different language, then I think it should always be embraced,” Chasteen said.
OU and La Prensa are both based out of the Midwest, where the Hispanic and language landscapes vary differently than other parts of the U.S. The nation’s largest Spanish speaking populations are concentrated in the Southwest, most notably in California, Texas and Arizona. Bilingualism is more prevalent, and the demand for Spanish news coverage is higher.
Valeria Fernández is an investigative, bilingual journalist based out of Arizona who focuses on amplifying the voices of immigrants. Originally from Uruguay, Fernández had the opportunity to enter into the journalism industry because she spoke Spanish and English. Her first journalist job was at La Voz, a publication written mainly for the immigrant population in Arizona.
Fernández said she was in the minority in terms of writers who spoke English, putting her in a unique position.
“The challenge at the time was that most of the reporters, including the editors of the publication, only spoke Spanish,” Fernández said. “Access to a number of stories and sources, especially in government, was limited … I came in and my skills in English and Spanish helped me immensely.”
Now, Fernández is the managing editor for palabra., an online publication founded in 2019 where National Association of Hispanic Journalists journalists cover Latino communities in the U.S. and abroad. As managing editor, Fernández recruits journalists and supervises the entire publishing process of each story, among other duties. palabra. also publishes in Spanish and English, and Fernández said it was founded to support independent freelance journalists.
Fernández looks at journalism as a lifestyle rather than a profession. She said the most rewarding part of journalism is the people.
 “You continue to be in touch for many years to come. To be there, to witness life happening, events happening, some of them very hard, some of them really beautiful … For me, journalism is a way of living.”
Journalism is a privilege because it has the ability to impact so many people, Fernández said. She said her ability to speak Spanish has given her the ability to build stronger relationships with her sources.
 “You continue to be in touch for many years to come. To be there, to witness life happening, events happening, some of them very hard, some of them really beautiful … For me, journalism is a way of living.” —Valeria Fernández, an investigative, bilingual journalist
A specific story that shaped Fernández’s life and career was one she worked on about two brothers pulled over by Border Patrol on their way back from a soccer game. The boys were deported to Mexico because they did not have Social Security numbers despite having come to the U.S. at one and four years old. Fernández began digging in and spoke to the boys’ mother as well as Border Patrol Officials.
“Before I could write the article that they were deported, … these kids were brought back from Mexico,” Fernández said. “Border Patrol went, got them and brought them back because they had made a mistake. Never in history have I heard of someone being ‘undeported,’ and that happened because I got involved.”
Fernández said it is important to her to keep in mind the audience she is writing for. She says being bilingual is not just available to people who grew up speaking another language, but rather for anyone who has the passion to communicate with other cultures.
“The world opens up to you when you speak another language,” Fernández said. “It allows you to understand other cultures too.”
The ability to forge trust and connections with sources and readers is much easier when both parties can speak the same language.
“People that are bilingual journalists are bridges between communities,” Fernández said. “They have this wonderful gift of bringing new understanding in a time where there is so much dissonance and we’re not hearing each other. It’s like having the ability to tell a story in the right way for a certain audience.”
Correction: A previous version of this article misrepresented Lenny Massiel Cauich Maldonado’s name as just “Maldonado,” misrepresented Cauich Maldonado’s thoughts on the journalism school’s offerings of bilingual classes, and incorrectly listed that she published graphic novels in English and Spanish.


Instructions:
Drag & drop the names to move them around. Note that the names can not be
dropped in the list for the wrong gender. This is achieved with the dnd-type and
dnd-allowed-types attributes.
This demo also shows the use of the dnd-disable-if attribute, which is used here
to limit the number of names per list, as well as fix Alex' position.
You can combine these functions with
nested lists
to build very powerful UIs.


--- layout: archive title: Zulip Chat Archive permalink: /stream/113488-general/topic/PhD.20Positions.20on.20Lean.20Forward.html ---
Hi everyone! Jasmin Blanchette has asked me to spread this message to the crowd here.
Lean Forward (https://lean-forward.github.io) is an ambitious research project that aims at formally proving theorems in research mathematics and to address the main usability issues hampering the adoption of proof assistants in mathematical circles, by collaborating with number theorists. The project is funded by an NWO Vidi grant from January 2019 to December 2023 and is hosted by the Vrije Universiteit Amsterdam.
As part of this project, we will develop formal libraries of fundamental number theory in Lean and explore how to automate proof search in these. Moreover, we will develop techniques and tools that help mathematicians perform accurate computations and reasoning using proof assistants, integrating procedures from computer algebra systems in a foundational, verified fashion. The ultimate aim is to contribute to the development of a proof assistant that actually helps mathematicians by making them more productive and more confident in their results.
We are looking for outstanding candidates for several fully funded, four-year PhD positions, due to start in 2019 or early 2020. Candidates should ideally have some experience with (automatic or interactive) theorem proving or mathematics and be at ease with both theory and engineering. Please contact me for more information.
His contact info is on the Lean Forward website. Johannes and I can also answer questions.
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC


--- title: Get & Process All American data from Wikipedia keywords: fastai sidebar: home_sidebar nb_path: "j_notebooks/AllAmericanNotebook.ipynb" ---
all_players = []
for y in years:
url = 'https://en.wikipedia.org/wiki/{}_College_Football_All-America_Team'.format(y)
r = requests.get(url, headers=headers)
aaSoup = BeautifulSoup(r.text, 'lxml')
for x in aaSoup.find_all("li", class_=""):
player = []
if ((",") in x.text and ("(") in x.text and (")") in x.text and ("{") not in x.text \
and ("Archived") not in x.text and ("Gridiron") not in x.text and ("edited") not in x.text \
and ("all-purpose") not in x.text and ("Football") not in x.text):
playerInfo = x.text.split(",", 1)
#year
player.append(y)
#Name
player.append(playerInfo[0])
playerInfo[1] = playerInfo[1].replace("(Fla.)", "FL")
playerLocationAwards = playerInfo[1].split("(",1)
#School
if ("CONSENSUS" in x.text):
playerLocationAwards[0] = playerLocationAwards[0].replace("-- CONSENSUS --", "")
player.append(playerLocationAwards[0])
elif ("UNANIMOUS" in x.text):
playerLocationAwards[0] = playerLocationAwards[0].replace("-- UNANIMOUS --", "")
player.append(playerLocationAwards[0])
else:
player.append(playerLocationAwards[0].strip())
#Awards String
awardString = playerLocationAwards[1]
#coaches (AFCA)
if ("AFCA" in awardString):
player.append("1")
else:
player.append("0")
#associated press (AP)
if ("AP" in awardString):
player.append("1")
else:
player.append("0")
#writers (FWAA)
if ("FWAA" in awardString):
player.append("1")
else:
player.append("0")
#sporting news (TSN)
if ("TSN" in awardString):
player.append("1")
else:
player.append("0")
#walter camp (WCFF)
if ("WCFF" in awardString):
player.append("1")
else:
player.append("0")
all_players.append(player)
print(all_players)
time.sleep(5)
print(all_players)
final_aaSelections = []
aa_keys = ['year', 'player', 'school', 'afca', 'ap', 'fwaa', 'tsn', 'wcff']
for list in all_players:
newdict = {aa_keys[i]: list[i] for i in range(len(aa_keys))}
final_aaSelections.append(newdict)
newdict = {}
print(final_aaSelections)
with open("..//scraped_json//aaSelections.json", "w") as write_file:
json.dump(final_aaSelections, write_file)


This topic provides instructions to manually create the Visual Update 1 application and where to put the application files. You might be creating an application to use the default visual styling that comes with Visual Update 1 or you might be creating an application to point to customizations you have made to the visual update files.
In this Visual Update example we use Connections Customizer to apply the new design specification to Connections, simply by overriding CSS. Ensure you have Component Pack and Customizer configured before going forward. Read Configuring the Customizer component for more information.
Connections must be set to use one of these default themes: "Verse Theme (Default)" or "Hikari".
We recommend creating a fork and then clone that fork to your local file system. You can clone files using GitHub Desktop or a terminal window.
Once you have the files locally you are set to go. Make note of the local path for the next step.
Follow the instructions to Manage Connections Customizer apps in the product documentation. In summary you will...
Important: Refer to HCL Connections Customizer documentation as you complete this step.
"include-repo": { "name":"cnx-custom-theme" }
As an administrator, go to the Apps Manager to register the application. Follow the instructions to Manage Connections Customizer apps in the product documentation.
An administrator can add a Customizer application as an Organization Extension. The Customizer application is defined in a .json file which identifies the extensions that need to be targeted and the actions that need to be performed.
Refer to HCL Connections Customizer documentation for more information.
This application is being updated all the time, to fix issues and include support for more apps and pages. Periodically pull updates from hclcnx/cnx-custom-theme.


Next: An example tree, Previous: Recursion and cycles, Up: Terms [Contents][Index]
In this document, unless otherwise stated,
For brevity, in contexts where the meaning is clear, we refer to a tree node simply as a node. A node is a pair:
When looked at from the point of view of its labels, a node is often called an instance. In the following list of definitions and assertions, let
nd = < < sym, start, end >, children >
be a tree node.
sym
is the symbol of nd
.
nd
is an
instance of the symbol with ID sym
starting at start
and ending at end
.
We often write this as
sym
@start
-end
.
nd
is an
instance of the symbol with ID sym
at location end
.
nd
is the
difference between its start and end,
that is end-start
.
nd
is zero iff
start
is the same as end
.
Put another way,
the length of nd
is zero iff
start = end
.
children
are the
children
of nd
.
children
is a
child
of nd
.
sym
is
at
end
.
We note that this means we consider the location of a symbol
to be where it ends.
nd
is a
leaf node iff children
is the empty list.

A terminal node is also called a
token node.
nd
is a
nulled node
iff nd
is a leaf node
and sym
is not a terminal.
A nulled node is also called a
nulling node.
nd
is a
BNF node
iff
nd
is not a terminal node
and sym
is the LHS of a BNF rule.
nd
is a
sequence node
iff
nd
is not a terminal node
and sym
is the LHS of a sequence rule.
nd
is a rule node, its
LHS is sym
.
nd
is a rule node, its
RHS is the concatenation,
from first to last,
of the symbols of the nodes in children
.
nd
is an instance of
sym
starting at start
and ending
at end
.
We also say that nd
is an instance of
sym
at end
or, simply,
that nd
is an instance of sym
.
nd
,
and whose RHS is equal to the RHS of nd
.
If nd
is a BNF rule node,
there must be such a rule.
In that case,
we say that nd
is an instance of
r starting at start
and ending
at end
.
We often write this as
r
@start
-end
.
We also say that nd
is an instance of
r at end
or, simply,
that nd
is an instance of r.
nd
.
If nd
is a sequence rule node,
there must be such a rule.
In that case,
we say that nd
is an instance of
r starting at start
and ending
at end
.
We often write this as
r
@start
-end
.
We also say that nd
is an instance of
r at end
or, simply,
that nd
is an instance of r.
nd
is a nulled instance,
we say that sym
is
nulled at location end
or, simply,
that the symbol sym
is nulled.
We can write this as
nulled
@end
-end
.
Let nd1 and nd2 be two nodes. If nd2 is a child of nd1, then nd1 is the parent of nd2.
We define ancestor recursively such that nd1 is the ancestor of a node nd2 iff one of the following are true:
Simlarly, we define descendant recursively such that nd1 is the descendant of a node nd2 iff one of the following are true:
A tree is its own root node. That implies that, in fact, tree and node are just two different terms for the same thing. We usually speak of trees when we are thinking of the nodes/trees as a collection of nodes, and we speak of nodes when we are more focused on the individual nodes.
We sometimes call a root node, a start node. We do this especially in contexts where a tree is “top-level”, that is, not the child of any other tree under discussion.
If t1
and t2
are trees,
and t2
(considered as a node) is a descendant
of t1
,
then we say t2
is a
subtree
of t1
.
By this definition, every tree is a subtree
of itself.
A parse forest is a set of one or more parse trees.
We use “parse” as a noun in several senses. Depending on context a parse may be
When the meaning of “parse” is not clear in context, we will be explicit about which sense is intended.
Next: An example tree, Previous: Recursion and cycles, Up: Terms [Contents][Index]


Hang on one sec.
My treasure box is holding on to this note.
It looks like I have not seen the note yet.
Change Note
Here is a spot where you can write me a little note.
Unfortunately that note is a little too long, can you make it a little shorter?
Save Note Nevermind


Parts of this file are generated dynamically.
This is done via the HTTPDynamicFileResponse class.
It uses a replacement dictionary to automatically replace
tagged strings in the included Web/index.html file.
Computer name: %%COMPUTER_NAME%%
The current time is: %%TIME%%
Tell me a story: %%STORY%%
The first letter of the english alphabet: %%ALPHABET%%
The sound a duck makes: %%QUACK%%
Thank you. Come again.


Your browser doesn't support the features required by impress.js, so you are presented with a simplified version of this presentation.
For the best experience please use the latest Chrome, Safari or Firefox browser.
# Free as in freedom and as in beer podcasting
[@jmikedupontcell](https://twitter.com/jmikedupontcell)
I will present tools and methods 4 creating your own podcast using free software and free hosting for Penny Pinchers like myself
![BALKAN FlOSSTIVAL 2020](https://api.eventyay.com/static/media/temp/images/32c360b2-f52f-4a62-9398-86c2cffb2389/M25PWXBkSV/ed3be152-b2e8-4661-963b-8631a7a4a08c.jpeg)
* What is podcasting?
* Why podcasting? Walkcasting?
* How podcasting?
-----
# Details
* View the [Session Details](https://eventyay.com/e/cf877702/session/6501) on flosstival site.
* Listen to the stream on Sunday at 10:25 EST in the [Second room (recorded)](https://join.balkanflosstival.cc/call/bor-ajv-tkt-sii).
* View the [source](https://github.com/jmikedupont2/jmikedupont2.github.io) of this presentation.
* View the website of this presentation [website](https://jmikedupont2.github.io/#/markdown).
-----
# What is podcasting
## Elements of podcasting
* Recording of audio
* Hosting, Distribution and streaming of audio
* Hosting, Distribution and Indexing and Finding and subscribing to Podcast metadata (Rss)
* Other things that are technically not quite podcasting...
-----
# How big is podcasting?
## Numbers
* 1.5 million podcasts
* Over [50 million episodes](https://podcastindex.social/@dave/105328489484900956)
* 68 million daily listeners in USA
## Big podcasts
* [Top 20](http://analytics.podtrac.com/podcast-rankings/)
* [Top 100](https://www.podcastinsights.com/top-us-podcasts/)
-----
## History
* 2004 The Beginning with Adam Curry and David Winer
* 2005 Steve Jobs launches the itunes index with data from Curry
[TimeLine](https://internationalpodcastday.com/podcasting-history/) [TimeLine2](https://www.onefineplay.com/latest/2019/8/2/a-brief-history-of-podcasting)
[Wikipedia](https://en.wikipedia.org/wiki/History_of_podcasting) Article
You can listen to the [Interview With Adam Curry](https://blubrry.com/podcastinsider/68326802/podcasting-history-and-future-with-adam-curry-pci-211/).
-----
# Why Podcasting for beginners
* [Things that matter for people who care](https://www.chasejarvis.com/blog/seth-godin-how-to-do-work-that-matters-for-people-who-care/)
* Documentation of dialect and local local languages
* Local and Topical Networks
* Confidence through practice
* Socialization and Exchange of value during Covid
* Sharing Stories with marginal social groups
* Geek Therapy
* Independence and Liberty
* Authentic and Raw
* Direct Peer2Peer Sharing possible. (Archive.org supports torrents)
-----
# What to watch out for?
* OpSec
* Doxing
* Illegal Activity
* Censorship
* Outrage
-----
# Why Walkcasting?
* Feeling Happy
* Walking in Nature
* Collecting GPS tracks and
* Documenting POI for interest groups
* Taking pictures for wikimedia
* Sharing local information
-----
# Free as in Freedom
* Tracking of Listeners
* Tracking of Behavior
* Advertising Influence( Brand safe)
* Permanent archive?
* Contingent [Precarat](https://en.wikipedia.org/wiki/Precarity) You can be shut down any time and lose everything
-----
# Censorship of Content
* Companies control of what you see
* Surveillance and Censorship of Big Tech
* Marginal Content
* Community Standards
* Tyranny of the Algo
* Bias of Deep Learning
* No recourse
-----
# Accessibility to the developing world
* Prohibitive cost for Balkans?
Albania has a media per capita income of [$1902 per year](https://worldpopulationreview.com/country-rankings/median-income-by-country) (USA $15k)
* Access to Credit cards, paypal?
In 2016 only %3 of transactions were [non cash in Albania](https://www.bankofalbania.org/rc/doc/Jose_Antonio_Garcia_Developments_in_the_Albanian_Retail_Payments_Market_12344.pdf)
In 2011 only between %4-14 used a [credit card](https://datatopics.worldbank.org/financialinclusion/country/albania), in 2014 it was still at at %3.5.
In 2017 only %40 of Albanians had a [bank account](https://www.bankofalbania.org/rc/doc/raporti_i_Perfshirjes_finaciare_12072_13686.pdf)
-----
# Audio Quality
* Microphones
* Background Noise
* Wind and Cars
* Audio Levels
* Speaker at different levels
* Editing
* Audacity
* [audiorecorder](https://f-droid.org/en/packages/com.github.axet.audiorecorder/)
* [ringtone.maker.mp3.cutter.audio](https://play.google.com/store/apps/details?id=ringtone.maker.mp3.cutter.audio&hl=en_US&gl=US) non free
* [New Pipe](https://github.com/TeamNewPipe/NewPipe)
-----
# Hosting
* Providers
* Bandwidth
* Limit on uploads
* Limit on downloads
* Donations
* Ease of Use
* Mobile App
* Help Posting on social media
* Distribution to platforms
* Website hosting
-----
# Privacy
Analytics and Tracking
* Users
* Listens
* Rewinds and behavior
* Sharing
* Donations
* IP addresses
* Long term Cookies
* Cross platform tracking
-----
# Monetization
* Advertising
There are some interesting rates [here](https://www.advertisecast.com/podcast-advertising-rates) starting at $210 a month for 10k listeners for a 30 second advert.
That is $21k for 1 million listeners.
It is said that Joe Rogan has [100 million listeners](https://jackheald.com/does-joe-rogan-really-have/).
He did a $100 million [deal](https://www.msn.com/en-us/tv/news/joe-rogan-signs-exclusive-100-million-podcast-deal-with-spotify/ar-BB14jDHC)
* Pateron [Alternatives](https://alternativeto.net/software/patreon/?license=opensource)
* Earning money by sharing valuable information (blockchain networks)
* Providing transcription services
* Providing music services
* Providing hosting services
-----
# Lightning
The pod-father Adam curry recommends you do not monetize your podcast via advertising so that you remain free of influence.
He is working on a bitcoin based payment system as well as the [value for value model](https://propodcastsolutions.com/005-2/)
* Podcasting 2.0 [lightning network](https://u.today/father-of-podcasting-integrates-bitcoin-lightning-into-his-app)
-----
# Pod-catchers
* [Antennapod](https://antennapod.org/)
* [Gpodder](https://gpodder.github.io/)
Many on [Github](https://github.com/search?q=podcast+player&type=repositories)
-----
# Free full service podcasting
* [Hacker Public Radio](http://hackerpublicradio.org/)
* [anchor.fm](https://anchor.fm/) has a mobile app that is very easy to get started with
* [redcircle](https://redcircle.com/)
-----
# Free Hosting providers for media
There is an overview of hosting from [blubrry](https://blubrry.com/manual/internet-media-hosting/).
They recommend against using archive.org for hosting your podcast even though I think it works.
* [archive.org](archive.org)
Read [this article](https://turbofuture.com/internet/How-to-Host-Podcast-Audio-on-Archiveorg)
* wikimedia commons [Audio Podcasts](https://commons.wikimedia.org/wiki/Category:Audio_podcasts)
-----
# Free hosting for RSS feeds
* [Freedom Controller](http://freedomcontroller.com.s3-website-us-east-1.amazonaws.com/)
* Hosting on GitHub
* [wiobyrne](https://wiobyrne.github.io/infusing-computing-pod/podcast.html)
* [preservethispodcast](https://github.com/mnylc/preservethispodcast)
[preservethispodcast Github](https://github.com/mnylc/preservethispodcast)
* [wordpress.com](https://wordpress.com/) allows you to just insert links to media files.
* [Blogger](https://www.blogger.com/) allows for [enclosures](https://makeuseofsoft.blogspot.com/2014/02/what-are-enclosure-links-in-blogger-and.html)
-----
# Podcast Indexes and Directories
* [itunes](https://podcasts.apple.com/us/genre/podcasts/id26?mt=2)
* [podcastindex.org](https://podcastindex.org/)
* [Google Podcast](https://www.thepodcasthost.com/websites-hosting/how-to-get-your-podcast-into-google-podcasts/)
* [Spotify](https://www.thepodcasthost.com/publishing/how-to-get-your-podcast-on-spotify/)
* [gpodder](https://gpodder.net) is dead
see more [here](https://www.thepodcasthost.com/promotion/best-podcast-directories-where-to-list/)
-----
# Clips
Here you can host clips of your podcast for promotion
* [Listennotes](https://www.listennotes.com/) will allow you to clip your podcast and share the clip.
* [TikTok](https://www.tiktok.com/) will host 15-60 second clips.
* [Instagram](https://www.instagram.com/)
* [Facebook](https://www.facebook.com/)
* [Twitter](https://twitter.com/)
Etc.
-----
# Bandwidth Bytes for self hosting.
Here is a [calculator for your bytes](http://www.podtopia.net/bcalc.shtml) and [another one](https://radio.co/internet-radio-bandwidth-calculator).
If your podcast episode is 200MB and you produce every day then you will have a bandwidth of
6.2 GB per listener per month! So that is the upload size as well.
We will round this up to 10GB per month.
Lets say you run this for one year, you will have 120 GB of data.
And lets say you have 10 daily listeners, that is 100GB of transfer.
-----
# S3
Now using the [s3 calculator](https://calculator.aws/#/createCalculator)
* 120 GB x 0.0230000000 USD = 2.76 USD per month
See this similar calculation [here](https://podnews.net/article/podcast-hosted-on-amazon-aws).
-----
# Free not so much podcasting
* [Soundcloud](https://soundcloud.com/) (Limited)
* [Youtube](https://www.youtube.com/)
* [bitchute](bitchute.com)[alts](https://alternativeto.net/software/bitchute/?license=opensource)
* [bittube.video](http://bittube.video/)
* [MediaGoblin](https://wiki.mediagoblin.org/Live_instances) open source video hosting platform
-----
## P2P
* [BitTorrent Content Distribution for Podcasts](https://github.com/astro/prittorrent)
* [Converts youtube channels into podcasts that are distributed over ipfs](https://github.com/macbury/DPodcast)
* [Peertube](https://joinpeertube.org/)
* [lbry](https://lbry.com/)[alts](https://alternativeto.net/software/lbry/?license=opensource) blockchain based protocol for sharing content
* [dtube] (https://d.tube/) p2p based on steemit blockchain
* Archive.org supports [torrents for individual items](https://help.archive.org/hc/en-us/articles/360004715251-Archive-BitTorrents)
* [WebTorrent](https://webtorrent.io/) lets your stream the torrent and watch them directly
* Read more about [Broadcatching](https://en.wikipedia.org/wiki/Broadcatching)
-----
# Podcast Music
For musicians podcasts can be interesting as well.
* [Podcast Music](https://www.podcastmusic.com/)
* [ninichimusic](https://ninichimusic.com/podcast-jingles-intros)
* [Fiverr](https://www.fiverr.com/davemusic/make-a-sweet-and-catchy-jingle-for-advert-and-intro)
Read [more](https://www.podcast.co/create/podcast-music-license)
-----
# Future
* [erdfa](https://github.com/Escaped-RDFa/namespace)
* [Deep Speech](https://github.com/mozilla/DeepSpeech)ma
* [Voice Commands](https://mycroft.ai/)
* [Podcast-Archiver](https://github.com/janw/Podcast-Archiver)
* Distribution to other platforms
* Value Networks and Local Exchanges
## To research
[archipel](https://arso.xyz/archipel) p2p file sharing
[zeronet](https://zeronet.io/) Uncensored websites using torrents
-----
Some of my Favorites Podcasts
* [No Agenda Show](https://www.noagendashow.net/)
![NA](http://ih1.redbubble.net/image.145598036.6203/flat,800x800,075,f.jpg)
* [Hacker Public Radio](http://hackerpublicradio.org/)
Podcasts about Open source
* [List] (https://opensource.com/life/16/3/open-source-podcasts)
* [List2](https://player.fm/featured/open-source)
* [AwsomeList](https://github.com/rShetty/awesome-podcasts)
-----
# Takedowns on archive.org
* The EU was bombarding the archive.org with [takedown requests](https://www.theverge.com/2019/4/11/18305968/eu-internet-terrorist-content-takedown-mistakes-internet-archive-org)
* Some terrorist videos do get [taken down](https://archive.org/post/1070675/why-does-some-censorship-exist)
* Factchecking has [started on archive.org](https://www.rt.com/op-ed/505437-internet-archive-censorship-slippery-slope/)
-----
# Limited free hosting
Here are some providers that provided limited or trail free hosting.
* [Buzzsprout](https://www.buzzsprout.com/)
* [Spreaker](https://www.spreaker.com/)
* [PodBean](https://www.podbean.com/)
* [Spoonacast](https://www.spooncast.net/live)


About the Problem
Year after year, the number of people choosing organic food is growing. However, a multitude of colorful labels and
ambiguous terms make it difficult for consumers to keep track.
The current nutrition report of the German government shows that many buyers are still guided by the broad
advertising on the packaging. These suggest an ideal, healthy world with blooming meadows and happy animals, but
also tempt consumers not to find out more about the product. This is often referred to as
Greenwashing 1
During my time, studying the subject I came across this quote that inspired this website:
"As a consequence,
ecological education is a crucial tool of communication and information
and its goal should be to achieve a situation in which the consumer is
consciously able to interpret
eco-labels
and on their basis make the right product choices. If this pre-condition is not satisfied, information overload
from advertisements and marketing campaigns will lead to target group members misinterpreting messages from
broadcasters."
2
That is why I started this website: To make it easier for consumers to make informed decisions. That means, being
able to distinguish between those Ecolabels that are actually doing something good for the environment and
greenwashed products that just "pretend" they do.
The Test is meant to help you streamline the process of finding a label that you can always rely on if there are too
many confusing
labels or you lack information about their standards and the quality of their products. You just select the criteria
that are important for you and your budget and I will try to show you the label that fit to most of your standards.
So, Greenwashing you say?
Greenwashing refers to a company's attempt to achieve a "green image" through marketing and PR measures, but without
implementing corresponding measures as part of the value creation process. In this way, consumers are led to believe
that the company is environmentally friendly and responsible even when the company uses this measure to disguise
opposing activities that are harmful to the environment.
In 2007, in an effort to describe, understand and quantify the growth of greenwashing, TerraChoice,
developed and launched a study of environmental claims made on products carried on category-leading big box store
shelves. Based on the results of the original study and subsequent studies, the Seven Sins of Greenwashing were
developed to help consumers identify products that made misleading environmental claims:
3
- Sin of the hidden trade-off
A claim suggesting that a product is green based on a narrow set of attributes without attention to other
important environmental issues. Paper, for example, is not necessarily environmentally preferable because it
comes from a sustainably harvested forest. Other important environmental issues in the paper-making process,
such as greenhouse gas emissions or chlorine use in bleaching, may be equally important.
- Sin of no proof
An environmental claim not substantiated by easily accessible supporting information or by a reliable
third-party certification. Common examples are facial tissues or toilet tissue products that claim various
percentages of post-consumer recycled content without providing evidence.
- Sin of vagueness
A claim that is so poorly defined or broad that its real meaning is likely to be misunderstood by the
consumer. All-natural is an example. Arsenic, uranium, mercury, and formaldehyde are all naturally
occurring, and poisonous. All natural isn’t necessarily green.
- Sin of worshiping false labels
A product that, through either words or images, gives the impression of third-party endorsement where no
such endorsement exists; fake labels, in other words.
- Sin of irrelevance
An environmental claim that may be truthful but is unimportant or unhelpful for consumers seeking
environmentally preferable products. CFC-free is a common example, since it is a frequent claim despite the
fact that CFCs (chlorofluorocarbons) are banned under the Montreal Protocol.
- Sin of lesser of two evils
A claim that may be true within the product category but that risks distracting the consumer from the
greater environmental impacts of the category as a whole. Organic cigarettes or fuel-efficient sport-utility
vehicles could be examples of this sin.
- Sin of fibbing
Environmental claims that are simply false. The most common examples are products falsely claiming to be
ENERGY STAR® certified or registered.
{% endblock %}


Preparation time
less than 30 mins
Cooking time
10 to 30 mins
Serves
Serves 2
This recipe combines sweet honeyed duck breast with fragrant wild garlic gnocchi - impossible to resist!
For the gnocchi, preheat the oven to 180C/350F/Gas 4. Place the potatoes on a baking tray and bake for an hour, or until the flesh is fluffy.
Cut the potatoes in half, scoop out the flesh and discard the skins.
Pass the potato flesh through a ricer, or sieve, into a large bowl.
Heat a saucepan and add the wild garlic with a knob of butter and fry gently, while stirring, for around 30 seconds until the leaves are wilted. Season with salt and freshly ground black pepper, then remove from the heat and tip out onto kitchen paper, to soak up any excess liquid from the wild garlic.
Add the egg yolk and flour, a little at a time, to the potato. Mix together with the cooked wild garlic until you have a light dough.
Cut the dough into six pieces. Use your hands to roll each piece into a long (about 45cm/18in) sausage shape then cut each one into 2cm/¾in pieces.
Bring a large saucepan of salted water to the boil. Add the gnocchi and boil for 2-3 minutes, until the gnocchi rise to the surface.
Remove from the heat, drain the gnocchi well.
When ready to serve, return the gnocchi to a non-stick frying pan with a knob of butter and toss over a high heat for 3 minutes until golden.
Season with crushed sea salt and plenty of freshly ground black pepper.
Cook for a further minute to heat through and serve immediately.
For the sauce, peel half of the zest off the orange and lime. Segment the orange, set the segments aside and then squeeze out any remaining juice from the orange. Squeeze the juice from the lime. Reserve the juice from both fruit.
Put the zest in a hot pan and sprinkle over the sugar, keep the heat high, stirring occasionally, until the sugar turns to a golden caramel. Then add the citrus juice and continue to cook, so the caramel dissolves, and liquid is reduced by half.
Add the wine and stock then simmer until the sauce is thick enough to coat the back of a spoon. Strain the sauce through a sieve, discard the zest, and set the sauce aside until needed.
Just before serving, warm the sauce and drop in the shelled broad beans and orange segments and whisk in a knob of butter.

Heat a medium non-stick pan, score and season the duck breasts and cook skin side down with no oil on a medium heat, to render the fat of the duck.

Place the duck breasts skin side down again, and transfer the pan to the oven, and roast for six minutes.
Remove the duck breasts from the oven, and again drain off any excess fat, and put the pan back on hob.
Mix the honey and five spice together and coat the duck breasts in the hot pan. Remove from the heat, and transfer onto a plate, and set aside to rest.
To serve, carve the duck into thick slices and arrange with gnocchi on the plates. Spoon and drizzle the sauce over and around. Finally, finish with a scatter of picked watercress leaves and the reserved wild garlic flowers and a drizzle of extra virgin olive oil.


--- layout: post title: The Academy Relaunches Website date: 2008-10-24 00:23:00.000000000 -07:00 type: post published: true status: publish categories: [] tags: [] meta: _publicize_pending: '1' author: login: phoneboy email<EMAIL_ADDRESS>display_name: Dameon Welch first_name: '' last_name: '' ---
Several current and former Nokia colleagues are involved in a project called The Academy where a number of videos are posted related to configuring security appliactions. The website has been relaunched and it's shaping up to be a great resource for the security geeks out there. Now, where's some videos on Sourcefire, Peter? :)


{{ content | safe }}
{% if recommendedWork %}
{% endif %}
{% extends "layouts/base.html" %} {% set pageHeaderTitle = title %} {# Grab other work that isn’t this one for the 'more work' feed #} {% set recommendedWork = helpers.getSiblingContent(collections.work, page) %} {# Render post date and any tags that this post has been filed under #} {% set pageHeaderSummary %} {% if tags %}
Tags that this post has been filed under.


NS
Home
Portfolio
Food
Nature
People
Client
About
Contact
Name
Phone Number
Email
Event date
Good Days/Times for Consultations
Event Type
Wedding
Engagement
Portraits
Landscape/Wall Art
Elopement
Other
Venue / City, State (enter "unknown" if you don't know yet)
Do you wish to schedule a consultation?
Yes
No
N/A (or not sure yet)
Details, please! What do you have planned, and what's important to you?
Submit


Wrote a program in C++ that uses natural language processing and machine learning techniques to automatically identify the subject of posts from students on Piazza, a forum where students and instructors can interact.
An aspiring Computer Scientist with a passion for Mathematics, and Statistics.
I am a rising sophomore at University of Michigan in Ann Arbor.
I am pursuing Bachelor of Science degrees in Computer Science
and Mathematics. I love to tackle problems involving critical thinking. In my free time I can be found playing around with code, or writing mathematical proofs.
I am originally from Lahore, Pakistan. Apart from academics, I am fond of sprinting, photography, and travelling.
Wrote a program in C++ that uses natural language processing and machine learning techniques to automatically identify the subject of posts from students on Piazza, a forum where students and instructors can interact.
Successfully coded a simulator for Euchre in C++ that can be played by a human, a computer player that follows a strategy, or a mix of the two. Devised different strategies the computer player can follow to make the game more competitive, difficult, and interesting.
Designed and implemented the two games in using Arduino UNO with one other student. Assembled working interactive arcade game using potentiometers, LCD display and the Arduino board, and refined the code by 25% to increase the efficiency of the game.
Programmed and developed a version of the Ohh1 puzzle game using C++. Consisted of levels from 3x3 to 8x8 boards satisfying all the rules of the official Ohh1 game.
1st place among all the candidates in the world in O Levels Mathematics exam held by the Cambridge International Education.
One of the 29 students to make it to the college's Hall of Fame in the 30 year history. Criteria based on academic and extra cirricular excellence.
Judged based on problem solving and proofing abillities.


Ellie Arroway is a radio astronomer that's taken the professionally dangerous specialisation of searching for extraterrestrial life. She's been interested in radio since learning about her father's ham radio as a child. Her old teacher David Drumlin (Tom Skerritt), as gruff as he is, thinks she should change to a more respectable field within radio astronomy. When she refuses, he manages to get the funding for her project pulled.
She manages to find funding from the enigmatic mega-rich recluse S.R. Hadden (John Hurt) and continues the search. Later, she's given notice that this search is to be cancelled, but not before she finds a signal from an extra-terrestrial civilisation. The U.S. Government, in the guise of Micheal Kitz (James Woods) moves right in and tries to limit the information leaking out to the public.
Despite all the interference, they discover that there's a television signal in the transmission and there are coded plans that seem to be for some sort of machine. Should they build it? It clearly shows that there's a seat for someone inside. Of course it's built, but what will it do when activated?
I haven't revealed any more than the trailer or television commercials but I think they even have gone a bit far. I don't even know where to begin this review because there's so much I want to say.
Firstly the story. It's a faithful rendering of Carl Sagan's 1985 best-selling novel Contact. Of course, books change in their translation to the screen and this one is no exception. I think that the story is very strong and can easily hold the interested viewer for the two-and-a-half hour length of this film. The shares the qualities of the best science fiction. That is, the story is about people rather than effects or gadgets, and it always makes you re-examine things that you normally accept without thought. The film pays off in spades in both of these departments.
Jodie Foster has to have been the perfect choice to play Ellie. She's a very strong character, but has weaknesses that Foster made the audience believe. Every film I've seen Foster in has increased my respect for her work and Contact has probably best displayed her flexibility as an actress to date. The film was so much about Ellie, that very few other characters had major roles. Notably though, most other characters without bit-parts were given opportunities to show some development or different sides. I rarely got the impression that they were one-dimensional cutouts.
The effects were excellent, but as I mentioned earlier, they serve only to support the story. If you're expecting Independence Day, you'll get the same quality effects, but they are attached to a very different type of film. Particularly notable were the effects during the first test of the machine. I distinctly recall that the whole theatre was completely silent.
And that wasn't the only time that the film had the crowd completely in its thrall. But make no mistake, this isn't a film for everyone. If you're looking for entertainment to be handed to you pre-digested, you're in the wrong theatre. This is a film that requires you to think and pay attention. Like any good piece of art, the onus is as much on the viewer as it is on the artist and every viewer will take something different away from it. I suspect that it shares that quality with 2001: A Space Odyssey but it's not nearly as abstract. It's not an ID4 type of film and for that reason, I very much doubt that it will be a runaway success. People seem not to want to give anything to be entertained, despite the rewards. But because of that, this film will be remembered for a very long time after ID4 is forgotten.
I understand that Sagan was intimately involved with the film in an effort to keep it true to the spirit of his work and to make sure that the science was right. There he has succeeded brilliantly. No where will you find that the filmmaker has bent the laws of physics for the purposes of the story. How refreshing. And indeed that should never be necessary if it's taken into account right from the start. Contact is one of the few examples of hard SF that's ever made it to the screen intact. And that attention to detail must've been contagious because it appears everywhere in the film. The effect is so convincingly complete, that it's easy to forget you're watching a completely fictional film.
Sadly, Sagan died during the production and never got to see the finished product. He's given a touching tribute at the end with all the love and respect he so richly deserved. I thought to myself that dedication was a nice offering to his memory, but realised the whole film is largely a gift from him to us. And what a gift.
Contact is easily the best science fiction film in a decade but it transcends what Hollywood means when it says science fiction. It's a story about humanity, not aliens. Don't under any circumstances miss this one.
*****
Review ©1997 Rick Pali
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


| AttributeMap |
AttributeMap inherits from NamedNodeMapImpl and extends it to deal with the
specifics of storing attributes.
|
| AttrImpl |
Attribute represents an XML-style attribute of an
Element.
|
| AttrNSImpl |
AttrNSImpl inherits from AttrImpl and adds namespace support.
|
| CDATASectionImpl |
XML provides the CDATA markup to allow a region of text in which
most of the XML delimiter recognition does not take place.
|
| CharacterDataImpl |
CharacterData is an abstract Node that can carry character data as its
Value.
|
| ChildNode |
ChildNode inherits from NodeImpl and adds the capability of being a child by
having references to its previous and next siblings.
|
| CommentImpl |
Represents an XML (or HTML) comment.
|
| CoreDocumentImpl |
The Document interface represents the entire HTML or XML document.
|
| CoreDOMImplementationImpl |
The DOMImplementation class is description of a particular
implementation of the Document Object Model.
|
| DeepNodeListImpl |
This class implements the DOM's NodeList behavior for
Element.getElementsByTagName()
|
| DeferredAttrImpl |
Attribute represents an XML-style attribute of an
Element.
|
| DeferredAttrNSImpl |
DeferredAttrNSImpl is to AttrNSImpl, what DeferredAttrImpl is to
AttrImpl.
|
| DeferredCDATASectionImpl |
XML provides the CDATA markup to allow a region of text in which
most of the XML delimiter recognition does not take place.
|
| DeferredCommentImpl |
Represents an XML (or HTML) comment.
|
| DeferredDocumentImpl |
The Document interface represents the entire HTML or XML document.
|
| DeferredDocumentTypeImpl |
This class represents a Document Type declaraction in
the document itself, not a Document Type Definition (DTD).
|
| DeferredDOMImplementationImpl |
This DOMImplementation class is description of a particular
implementation of the Document Object Model.
|
| DeferredElementDefinitionImpl |
NON-DOM CLASS: Describe one of the Elements (and its associated
Attributes) defined in this Document Type.
|
| DeferredElementImpl |
Elements represent most of the "markup" and structure of the
document.
|
| DeferredElementNSImpl |
DeferredElementNSImpl is to ElementNSImpl, what DeferredElementImpl is to
ElementImpl.
|
| DeferredEntityImpl |
Entity nodes hold the reference data for an XML Entity -- either
parsed or unparsed.
|
| DeferredEntityReferenceImpl |
EntityReference models the XML &entityname; syntax, when used for
entities defined by the DOM.
|
| DeferredNotationImpl |
Notations are how the Document Type Description (DTD) records hints
about the format of an XML "unparsed entity" -- in other words,
non-XML data bound to this document type, which some applications
may wish to consult when manipulating the document.
|
| DeferredProcessingInstructionImpl |
Processing Instructions (PIs) permit documents to carry
processor-specific information alongside their actual content.
|
| DeferredTextImpl |
Text nodes hold the non-markup, non-Entity content of
an Element or Attribute.
|
| DocumentFragmentImpl |
DocumentFragment is a "lightweight" or "minimal" Document
object.
|
| DocumentImpl |
The Document interface represents the entire HTML or XML document.
|
| DocumentTypeImpl |
This class represents a Document Type declaraction in
the document itself, not a Document Type Definition (DTD).
|
| DOMConfigurationImpl |
Xerces implementation of DOMConfiguration that maintains a table of recognized parameters.
|
| DOMErrorImpl |
DOMErrorImpl is an implementation that describes an error.
|
| DOMImplementationImpl |
The DOMImplementation class is description of a particular
implementation of the Document Object Model.
|
| DOMImplementationListImpl |
This class implements the DOM Level 3 Core interface DOMImplementationList.
|
| DOMImplementationSourceImpl |
Supply one the right implementation, based upon requested features.
|
| DOMInputImpl |
This Class DOMInputImpl represents a single input source for an XML entity.
|
| DOMLocatorImpl |
DOMLocatorImpl is an implementaion that describes a location (e.g.
|
| DOMMessageFormatter |
Used to format DOM error messages, using the system locale.
|
| DOMNormalizer |
This class adds implementation for normalizeDocument method.
|
| DOMOutputImpl |
This class represents an output destination for data.
|
| DOMStringListImpl |
DOM Level 3
This class implements the DOM Level 3 Core interface DOMStringList.
|
| DOMXSImplementationSourceImpl |
Allows to retrieve XSImplementation , DOM Level 3 Core and LS implementations
and PSVI implementation.
|
| ElementDefinitionImpl |
NON-DOM CLASS: Describe one of the Elements (and its associated
Attributes) defined in this Document Type.
|
| ElementImpl |
Elements represent most of the "markup" and structure of the
document.
|
| ElementNSImpl |
ElementNSImpl inherits from ElementImpl and adds namespace support.
|
| EntityImpl |
Entity nodes hold the reference data for an XML Entity -- either
parsed or unparsed.
|
| EntityReferenceImpl |
EntityReference models the XML &entityname; syntax, when used for
entities defined by the DOM.
|
| NamedNodeMapImpl |
NamedNodeMaps represent collections of Nodes that can be accessed
by name.
|
| NodeImpl |
NodeImpl provides the basic structure of a DOM tree.
|
| NodeIteratorImpl |
DefaultNodeIterator implements a NodeIterator, which iterates a
DOM tree in the expected depth first way.
|
| NotationImpl |
Notations are how the Document Type Description (DTD) records hints
about the format of an XML "unparsed entity" -- in other words,
non-XML data bound to this document type, which some applications
may wish to consult when manipulating the document.
|
| ParentNode |
ParentNode inherits from ChildNode and adds the capability of having child
nodes.
|
| ProcessingInstructionImpl |
Processing Instructions (PIs) permit documents to carry
processor-specific information alongside their actual content.
|
| PSVIAttrNSImpl |
Attribute namespace implementation; stores PSVI attribute items.
|
| PSVIDocumentImpl |
Our own document implementation, which knows how to create an element
with PSVI information.
|
| PSVIDOMImplementationImpl |
The DOMImplementation class is description of a particular
implementation of the Document Object Model.
|
| PSVIElementNSImpl |
Element namespace implementation; stores PSVI element items.
|
| RangeImpl |
The RangeImpl class implements the org.w3c.dom.range.Range interface.
|
| TextImpl |
Text nodes hold the non-markup, non-Entity content of
an Element or Attribute.
|
| TreeWalkerImpl |
This class implements the TreeWalker interface.
|


Learn the story of EngineRoom
EngineRoom is a demonstration social media application made for the purposes of learning React and Redux. It allows users to add their cars, find friends, make posts, and make comments. It was designed in Figma and uses the following technologies:
Hand-crafted with ❤ in Glastonbury, Connecticut.


A minimalistic css approach
Welcome to the Pinchx Library by Ankush Sharma
We often rely on heavy and hefty css frameworks when often prototyping our apps for web.
But, we rarely need all that heavy code and it can often seem daunting and confusing!
So in such a pinch, we long for a brief, flexible and highly customizable css structure
But, we shouldn't have to write all that css ourselves! always!
So why not use "PinchX", that lifts your load and lets you work on your design!
Take a look at the all the elements that PinchX has to offer! For a complete documentation, visit - Official Github Repo
I am often troubled by using grids when creating any markup. The 15 way grid allows for maximum flexibility whenever we need to rapidly build anything! Use your known nametags such as col- to create a compelling new grid
Cards
The basic card is a good option to display Important info and links!
The Fluid card takes the width of any container it is placed in!
The Product card is a highly specialized card to showcase your data more engagingly!
Navbar
With PinchX making a nav-bar is simply easy!
Navbar Dracula - For those on the Dark Side
Navbar Angel - For those Fighting the Dark!
New Typography
Welcome clean, futuristic text
Extra Large Text Display
Large Text Display
Medium Text Display
Small Text Display
Extra Small Text Display


Agreement Management System for Culture and Art Complex in the United States. The program provides signature tools, customer relationship management system, and printing service via wifi.
Connecting CRM program with an external application using Cordova
A full- Linux based project – reconstruction of a location-based service from the scratch using Java engine.
A full stack project of developing a POS system for a client using VB.NET, Java, PL/SQL
An on-going project of developing payment services from Metaps Payment
An on-going project of planning and designing a payment & management system for a real estate company and tenants


This is the one good prank on the internet
by Morgan SungI regret to inform you that there is, in fact, One Good Prank on Instagram.
Look, we can all agree that among the petfluencer momagers and the vloggers who manufacture drama for views, prank accounts are Instagram's most insufferable group. They're notorious for objectifying women, shouting a lot, and possibly gaslighting their romantic partners for the sake of a good prank.
But viral prankster Goubran Bahou may have actually pulled off a good one — his latest video posted to Instagram and TikTok is a perfect summary of the human condition.
In the video, Bahou sprints away from some unknown force to an aria from the Italian opera Pagliacci. Puzzled bystanders watch him speed around the corner, frantically pumping his arms as if he's running for his life. Then as the music swells, someone in a wearable dinosaur puppet rounds the corner as well, terrifying bystanders.
Some manage to turn and run. Others just hit the ground. Caught in glorious slow motion, they all share the same expression of pure terror.
This may just be Bahou's greatest work yet.


520
Total Sales
256
Total Sales
112
Total Sales
| Product | Qty |
|---|---|
| Floor Lamp | 2 |
| Coffee Mug | 4 |
| Television | 1 |
| Red Carpet | 6 |
| Laptop | 3 |


Second page for testing persistence of user choice to enable/disable Read-it-to-Me
Eldon Tyrell
Milk and cookies kept you awake, eh, Sebastian?
Back to main example page


When I was a small boy, my father told me never to recommend a church or a woman to anyone. And I have found it wise to never recommend a restraunt either. Something always goes wrong with the cheese souffle.
There is something profoundly satisfying about sharing a meal. Eating together , breaking bread together is on of the oldest and most fundamentally unifying of human experiences.
There is something profoundly satisfying about sharing a meal. Eating together, breaking bread together,is one of the oldest and most fundamentally unifying of human experiences.


POL40300: Computational Methods
Lecture 5 by Nikolai Gad
München, 13. November 2019
Today's lecture
- Practicals
- Introduction to automated text analysis
- An example of automated text analysis in PolSci
- Introduction to text analysis in R (Quanteda)
Introduction to automated text analysis
Grimmer, J., & Stewart, B. M. (2013). Text as Data: The Promise and Pitfalls of Automatic Content Analysis Methods for Political Texts. Political Analysis, 21(3), 267–297.
Steps in automated text analysis.
- Collect text data (we will cover this later).
- Pre-processing data (quantifying text).
- Analysing text data.
Pre-processing text data.
Goal is to quantify text so we can do calculations on it.
This necessarily involves reducing complexity.
Some terminology:
- Document/text: Usually the unit of analysis.
- Corpus: Our sample of units to analyse.
- Features/tokens: The entity we use to quantify our texts (most often words.)
Bag of words (unigrams)
We discard the word order in each text completely and only look at which words are used and how often in each text.
We also call this tokenising.
Improve unigrams by using bigrams, trigrams, or n-grams.
More advanced text analysis methods exist, but we will not cover that in this class.
The result of this is a
Document-term matrix.
Also known as a document-feature-matrix
Additional preprossing:
- Stemming (or more advanced lematisation)
- Removing stop words, punctuation, and rare words.
- Remove capitalisation.
Analysing text data.
|
Scale |
|
Categorical |
Continuous (scaling) |
| Supervised |
Classification (known categories) |
Clustering (unkown categories) |
| Unsupervised |
Scaling (known scale) |
Exploring dimensions (unknown scale) |
Classifying documents into known categories
Goal: Either categorise individual documents or assess overall distribution of documents in each category.
- Dictionary methods
- Supervised ML
Validation, relatively straight forward.
Discovering categories and topics
Clustering data - unsupervised methods
- FAC (fully automated clustering)
- CAC (computer assisted clustering)
Challenge to choose number of clusters.
And challenge to validate clusters:
- Semantic validation
- Predictive validation
- Convergent validation
Scaling political actors
Continuous (nummeric) response variable.
Goal should be to score actors (or objects) on a political dimension that is useful to our analysis.
So the goal is not to prefectly model the text.
- Supervised scaling: fx. Wordscores.
- Unsupervised scaling: fx. wordfish.
General challenge is an asssumption about ideological dominance.
Possibilities with computational text analysis
Four principles of automated text analysis:
- All quantitative models of language are wrong - but some are useful.
- Quantitative models for text amplify resources and augment humans.
- There is no globally best method for automated text analysis.
- Validate, validate, validate!
Do you agree with these principles?
An example of a dictionay study in Political Science
Maerz, S. F. (2019). Simulating pluralism: The language of democracy in hegemonic authoritarianism. Political Research Exchange, 1(1)
Hypotheses
- The leaders of hegemonic regimes use a democratic style of language in their official speeches.
- Closed regimes hardly refer to a democratic style of language in their official communication.
- The leaders of competitive regimes use less democratic terms than those of hegemonic regimes.
Autocratic, hegemonic, and democratic regimes
Conceptualisation
Closed autocracy - Hegemonic regimes - Competitive regimes - Democracy
In final analysis "backsliding democracies" are added.
- Closed autocracies: No elected legislatures or single-party regime.
- Hegemonic regimes: Hold elections, but does not allow "real electoral competition" (p.6)
- Competitive regimes: Allow "...at least a minimum amoun of real competition in multiparty elections." (p. 6)
Operationalisation
Two indicators from "Database of Political Institutions (DPI):
- Legislative electoral competitiveness
- Executive electoral competitiveness
The DPI is constructed by the World Bank and thouroughly documented on their website.
Operationalisation
| Closed |
Hegemonic |
competitive |
| Both indices have scores of ≤ 4: no legislature, unelected legislature, or only one elected candidate or party. |
1. One or both scores of > 4 and < 7: multiple parties allowed, but one gets all or 75 percent of available seats.
2. Legislative index scores 7, executive < 7: satellite parties to simulate competition while regime has full control. |
Executive index or both indices have scores of 7: competitive elections for executive, largest party got less than 75 percent of available seats in legislative elections. |
Data sample
- Website with officially translated English speeches.
- At least 10 translated speeches.
- Random selection of democratic states included for reference.
Data sample
Democratic/autocratic language
Conceptualisation
Distinction between procedural and ideological orientations.
Operationalisation
Styles of language calculated as word frequencies from dictionary.
Dictionary construction
- Partly based on previously used dictionaries.
- But mainly from a "qualitative assessment of a stratified sample of speeches" + literature:
- Most recent speech from each case sampled.
- This sample used as "pool of keywords".
- Keywords assigned to categories based on theory.
Good way to construct dictionary? Potential problems?
Operationalisation
Validation of dictionary
- Qualitative check of codings in sample of 110 speeches.
- Random sample of 5% of speeches from each case, excluding those already used to construct dictionary.
- Keywords-in-context search.
- Frequent negations and ambigiuous terms excluded.
Can you think of other ways to validate dictionary?
Final dictionary available from link in paper.
Findings
String manipulation in R
Tomorrow's exercise will introduce the stringR package
Help us with very basic string manipulation.
Standardised functions for a lot of the procedures talked about today.
But...
Good to know basics:
- Better understanding of what is going on.
- Enable you to do things exactly the way you want to.
- It might be part of your exam.


On 15 September 2015, WHO received a notification from the IHR National Focal Point of Iraq of laboratory-confirmation of cholera in at least five governorates.
As of 23 September 2015, a total of 120 stool samples have been tested positive at the Central Public Health Laboratory of Baghdad for Vibrio cholerae 01 Inaba. Laboratory-confirmed cases have so far been reported from at-least five Governorates of the country- Baghdad Babylon, Najaf, Qadisiyyah, and Muthanna. The preliminary investigation revealed contaminated water source as the cause of this current outbreak.
The Ministry of Health (MoH) has stepped up its response to contain the current situation and prevent further spread of cholera in close collaboration with WHO.
WHO does not recommend any travel or trade restrictions on any country affected by cholera outbreak.


Data Mining Overview (Cont.)¶
As we discussed earlier, there are two broad categories of data mining methods: supervised and unsupervised.
In a supervised problem, the goal is to predict an outcome variable. It is labeled as supervised because there is a target that can supervise the learning and it is used to train the algorithm.
In an unsupervised learning problem, there is no outcome variable to guide the learning. In this case, the algorithm must extract meaningful information from the dataset without an output specified beforehand.
We will again use the dataset about Gies students as an example with column variables being major, year, and the type of internship they got.
Suppose your goal is to find “similar” students by finding patterns in the data. If you do not have a particular outcome variable in your dataset that you are aiming to predict, this would be considered unsupervised learning.
Now suppose you are given a dataset of students that are currently enrolled in or have been enrolled in BADM 211. You want to use information about who dropped the course in previous semesters to predict who is at risk of dropping the course this semester. In this case, we have a particular outcome that we are trying to predict.
At least for some of the data, we have information about the outcome. The remaining variables (the variables other than the one that indicates if a student dropped the course) are the predictors, or the independent variables, in the model. In this example, because we have a specific target we’re interested in predicting, it is a supervised learning problem.
In data mining, there are many synonyms for common terms. For example, the outcome variable is the one that we would like to predict in a supervised learning problem. The outcome variable can be referred to as the response, predicted, target, label, or dependent variable.
For a supervised learning problem, we usually have a regression or a classification problem.
In a regression problem, the outcome variable is continuous. For example, if you want to predict how much a customer will spend, that is a regression problem. It should be noted that regression problems are also called prediction problems, but we will stick to using the term regression.
On the other hand, for a classification problem, the outcome variable is a categorical variable. For example, predicting whether or not a customer will spend more than $500 is a classification problem.
Fig. 1 - Summary of Supervised vs. Unsupervised Learning |
For unsupervised learning problems, we may want to use methods like association rules, clustering, and data reduction and exploration.
Association rules allow us to determine if different variables go together. Amazon uses association rules to suggest items to you when you are making a purchase.
Data reduction is an unsupervised method that allows us to reduce the complexity of our data sets.
Clustering is useful for grouping like records. For example, we might use clusters to develop customer segments. In a healthcare setting, we could use this to group patients based on genetic signatures, allowing for more targeted treatments.
Now that we know the different types of data mining models, we must determine how to evaluate and select these models. For now, we will focus on supervised models, where there is a specific outcome variable we are trying to predict.
Overfitting is a fundamental concept in data science. When we want to learn from a given dataset, our goal is to glean enough information to make accurate predictions on new data, while ensuring that we do not learn the idiosyncrasies of the data (which are not generalizable to new data). If we learn these idiosyncrasies, then we are overfitting.
Fig. 2 |
Suppose we have a graph of two types of dots, blue and red. We want to use this data to learn where the boundary between the red and blue dots should be. In the figure, we see two models: the green line and the black lines.
Think about which fits the sample better and which generalizes all of the data better.
The green model suggests that the two new dots on the right should be red and the new dot on the left should be blue. However, we must determine if this is reasonable.
Both of the supposedly red dots (as predicted by the green line model) are mostly surrounded by blue dots and the supposedly blue dot is mostly surrounded by red dots.
With the green model, we’ve ended up with a model that’s really complex and the line isn’t smooth at all. This is an example of overfitting because the model learned too much from the underlying data and attempts to capture every minor fluctuation.Though we may think we’re fitting a better model, we’re learning that the noise in the model won’t be generalizable, meaning if the data is changed, the green model will likely not be favorable.
Addressing Overfitting:
We’ve learned that overfitting is a problem because it means our model won’t generalize to new data. We will simulate what will happen when we have to apply our model to real-world data by splitting our dataset into two or three parts.
The first partition is called the training partition. We take a subset of our original dataset and use it to train - or develop - the model. From the remaining records, we create a second partition which we call the validation partition.
Remember, we trained our models using the training partition; we then apply each of those models to the data in the validation partition.
In particular, for each model, we make predictions about the outcome variable for the validation set. We can then compare those predictions to what we know to be the actual outcomes. Doing so allows us to assess predictive performances for each of our models.
Fig. 3 - Data Partitioning Summary |
If there is enough data or if many models are being tested, we will have a third partition: the test partition.
This can be useful if we are comparing thousands of models. In this case, it is likely that a bad model will randomly perform well on the validation partition. Testing the final model on a third partition allows us to avoid this scenario. Data scientists use the terms validation partition and test partition interchangeably.
Fig. 4 - Sweet Spot of Model Complexity |
Partitioning allows us to find the sweet spot of model complexity. In this figure, the blue line represents how well a model performs on a training dataset and the green line represents how well it generalizes: how well it performs on the validation and test sets.
We see that if our model isn’t complex enough, we will likely underfit our data. As the model increases in complexity, our model’s accuracy will improve both for the training data and for test sets.
Eventually, we’ll hit a sweet spot where the model is pretty accurate for both the training data and the test data.
If we continue tweaking the model beyond this point, it will become too fitted to the training data and may not fit the test data as accurately. Partitioning helps us avoid this.
A couple of notes: 1) The terminology here can get confusing: we sometimes refer to the validation set as a test set or, as we used in the header, a holdout set. 2) We’ll be taking about a more sophisticated version of this called cross-validation. But let’s start here to get our bearings.
Below, randomly sample 60% of the dataset into a training dataset, where train_X holds the predictors and train_y holds the outcome variable. The remaining 40% serve as a validation set, where test_X holds the predictors and test_y holds the outcome variable.
from sklearn.model_selection import train_test_split
train_X, test_X, train_y, test_y = train_test_split(X, y, test_size=0.40, random_state=12)
print('Training: ', train_X.shape)
print('Validation: ', test_X.shape)
Notice that we also set the random_state equal to 12. This ensures that we are not randomly selecting a new training and test set every time we run that cell. If we didn’t specify the random_state, we’d never be able to replicate our work.
Another method, aside from partitions, is what’s called K-Fold cross validation. Cross validation is more stable and works with less data than partition requires. In this method, we create a k number of subsets of the data.
We fit each model k times: each time we set aside one of the k folds as a test set and we use the remaining folds as the training set. We then end up with k measures of accuracy. We can combine these by taking the average to assess a given model’s accuracy.
Let’s look at an example of this with k=5.
Fig. 5 - Train-Test Split with k = 5 |
We’ve split up our dataset so 20% is in the test set and the remaining 80% is in the training set. We will first fit the model on this training set, test it in the test set, and then evaluate accuracy.
Now, we’ll set aside 20% to use as a test set and then use the remaining 80% as our training set. Again, we’ll fit the model on this new training set and assess the accuracy on the new set.
We’ll do this 3 more times, having in total fit the model 5 times with 5 different accuracy scores. We can combine these to understand how accurate the model will be on average. If we use this method on multiple models, we can compare those average accuracies to pick the best fitting model.
Next, we will look at an example of how to measure the accuracy of your model.
We can then take the model which was trained using the training set and use it to make predictions on this holdout set, a final estimate of the accuracy of the model. Those predictions are in the greyed out column.
The actual outcome will be known as y and the predicted outcome will be known as y-hat.
Fig. 6 - Actual vs. Predicted Outcomes |
We can use the difference between the actual and predicted outcomes to calculate the error for each record. We can then combine the errors across all of the records in the test set to determine the predictive accuracy.
There are five common ways we can combine the errors.
Fig. 7 - Types of Errors |
The simplest way to combine errors is to take the average. This is called the average (or mean) error. The benefit is that it is easy to understand, though the downside is that errors may cancel out. For example, let’s assume that half of my records had an error and half had an error of -100. The mean error would be zero even though none of the records were perfectly predicted. Therefore, a small mean error does NOT indicate good performance. However, this can potentially tell us whether the model consistently overestimates or underestimates the outcome.
If you wanted to instead look at the magnitude of the error, we can take the square or the absolute value of the error term.
The root mean squared error (RMSE) sums the squared error terms then takes the average and the square root. RMSE is more sensitive to large errors because errors are squared before being averaged. Use this measure if large errors are undesirable.
The mean absolute error (MAE) averages the absolute value of the error.
Both the root mean squared error and mean absolute error give us a sense of the absolute error, and both are used to assess performance of predictive models.
To make sense of the relative error, we can use either the mean percentage error (MPE) or the mean absolute percentage error (MAPE). This will not work if any of our actual outcome values are equal to 0, since we divide by y.
MPE and MAPE give us a sense of the relative error because the prediction is divided by the actual value. Again, this won’t work on your data if you have any data points equal to 0.
We will now summarize and share some of the key-takeaways.
First, before going into data mining algorithms, it is important to take necessary steps to prepare before the model stage by exploring and pre-processing the data.
Second, data mining consists of two classes of methods: supervised (Classification & Prediction) and unsupervised (Association Rules, Data Reduction, Data Exploration & Visualization). In supervised data mining we have an outcome variable we are trying to predict while in unsupervised data mining we do not.
We use partitioning to evaluate how well our model performs and to avoid overfitting to our sample.
With partitioning, we fit the model to the training partition and assess the accuracy on the validation and test partitions.
Data mining methods are usually applied to a sample from a large database and then the best model is used to score the entire database.
(introduce Python Packages/modules)
Name |
Description |
|---|---|
NumPy |
Numerical computation with python using arrays and matrices |
SciPy |
Scientific computation with python for optimization and stats |
Matplotlib |
Creates comprehensive visualizations |
Seaborn |
Creates comprehensive visualizations with improved graphics |
Pandas |
Data manipulation and analysis |
Scikit_learn |
Machine learning tools |
Glossary:¶
Supervised Learning:
Unsupervised Learning:
Regression:
Classification:
Association Rules:
Data Reduction:
Clustering:
Overfitting:
Partitioning:
K-fold Cross Validation:
Mean Error:
Root Mean Squared Error (RMSE):
Mean Absolute Error (MAE):
Mean Percentage Error (MPE):
Mean Absolute Percentage Error (MAPE):


Perceived Performance
The only kind that really matters.
Since there's no recording of this talk, press 'S' for speaker notes!
Hi, I'm Eli.
I make weird stuff on the internet
Today I'll be shrieking about
Why focusing on perceived performance is smart
How humans perceive time
Techniques to manage passive waiting time
Predictive design
Why Perceived
Performance Matters
Web Performance
is a matter of time.
Time is a funny thing.
Objective time
vs.
Subjective time
We optimize for objective time
but that isn't very efficient.
Just Noticeable Difference.
Time differences of
20%
or less are imperceptible.
Steve Seow, Microsoft
Shoot for
30%
speedup.
We don't live inside of a web performance blog post.
Focus on the subjective.
Better
💥
for
🤑
.
How Humans
Sense Time
Active phase
vs.
Passive phase
Humans tend to overestimate passive waits by
36%
.
Richard Larson, MIT
🚗💨
vs.
🚐🚗🚐
🤔
vs.
🕐🌮🕑🌮🕒
Let's do something about it
Make passive phase less painful
Make active phase a greater proportion
of the total time
Un-Suck Waiting Time
What we can do
Respond to users immediately
Give users a sense of certainty
Occupy users' attention
Render minimum viable layout
Immediate
Response
Takes
~1 second
for
flow to be disrupted.
Jakob Nielsen,
Neilsen Norman Group
Let's pack as much loading into that 1 second as possible.
Mousedown event
vs.
Click event
Mousedown gives you a
100-150ms
head start.
Stay
:active,
kids!
Animation duration sweet spot is 150-200ms.
Give Users
Certainty
Uncertain waits feel longer.
David Maister
P
rogr
ess
ba
...
.
.
rs!

Chris Harrison, Carnegie Mellon
Bars with accelerating
bands feel
12%
faster.
Chris Harrison, Carnegie Mellon
Don't overdo it
< 1s? Don't bother.
~ 1-3s? Stick to the basics.
~ 3-10s? Time to get fancy.
But
what
about
spinners?
Meh.
Occupy Users'
Attention
Reticulating splines.
If this feels like cheating,
that's because it is.

Minimum
Viable Layout
Rather than hasten passive phase, increase active phase's share.
Identify what your users
interact with first.
Render that first.
Lazyload everything else.
Not as simple as "above the fold".
Predictive
Design
🏃🏃🏃🏃🏃
We can do something similar.
Users aren't snowflakes.
Behavior follows patterns.
If we can predict what users will do, why not preload their next action before they take it?
Doesn't have to be crazy complicated.
RESET
RESET
RESET
RESET
Predictive design is a very powerful tool.
Use it
wisely.
Mitigate risk with data.
TLDR;
At the end of the day, what matters is how it
feels.
Think about how you
want to use your resources.
Rely on data to
make sound decisions.
Focus on the user.
Thanks
y'all!
http://assets.eli.wtf/talks/perceived-perf-talk
http://eli.wtf/fun


John Smith
Successfully created dashboard "Application support"
- Created by: EdSmith on 3rd July.
- Open in new tab
Create a Widget
Select Dashboard
Create Widget
Create a Widget
Select Dashboard
Create Widget
2
Widget Saved to Dashboard
-
Daily
-
Weekly
-
Monthly
Widget Title
Add a title to identify your widget by.
Description
Describe your data.
Priority
Assign a priority to the widget.
High Priority
-
Last day
-
Last 1 week
-
Last year
Visualisation
Select a visualisation for your widget.
SVG Map
-
Last day
-
Last 1 week
-
Last year


Source information for the word list is available at the project github page and feedback can be submitted there too.


--- layout: post title: burroughs peter ross date: '2010-01-13T16:53:24+00:00' tags: [] tumblr_url: http://backlog.robbevan.com/post/332580199/burroughs-peter-ross ---
Burroughs : Peter Ross


The celtdwelt on his belt, keeping it firmly fastened around his waist for the long journey ahead. [G|D]
His heartfelt sentiment for his beloved kelt was strongly felt, yet the bond between them remained inextricably strong. [G|D]
Kneeling in reverence, he felt the cold wind pelt against his face as his icy tears melted into the ground. [G|D]
As he stepped into the sunbelt, his senses were overwhelmed by the sweet smell of smelt in the air, and a small welt rose on his arm from the heat. [G|D]


The 2DMatrix is created by Titanium.UI.create2DMatrix. The 2D Matrix is an object for holding values for an affine transformation matrix. A 2D matrix is used to rotate, scale, translate, or skew the objects in a two-dimensional space. A 2D matrix is represented by a 3 by 3 matrix. Because the third column is always (0,0,1), the data structure contains values for only the first two columns.
| Name | Description |
|---|---|
| addEventListener.html | add an event listener for the instance to receive view triggered events |
| fireEvent.html | fire a synthesized event to the views listener |
| invert.html | Returns a matrix constructed by inverting an existing matrix |
| multiply.html | Returns a matrix constructed by combining two existing matrix. |
| removeEventListener.html | remove a previously added event listener |
| rotate.html | Returns a matrix constructed by rotating an existing matrix |
| scale.html | Returns a matrix constructed by scaling an existing matrix |
| translate.html | Returns a matrix constructed by translating an existing matrix |
| Name | Type | Description |
|---|---|---|
| a | float | The entry at position [1,1] in the matrix. |
| b | float | The entry at position [1,2] in the matrix. |
| c | float | The entry at position [2,1] in the matrix. |
| d | float | The entry at position [2,2] in the matrix. |
| tx | float | The entry at position [3,1] in the matrix. |
| ty | float | The entry at position [3,2] in the matrix. |
You create an identity matrix by creating a 2D Matrix with an empty constructor.


I’ve had my ups and downs -
my fair share of bumpy roads and heavy winds.
That’s what made me what I am today.
Now I stand here before you.
What you see is a body crafted to perfection,
a pair of legs engineered to defy the laws of physics …
and a mind set to master the most epic of splits.
This test was set up to demonstrate the stability
and precision of Volvo Dynamic Steering.
It was carried out by professionals in a closed-off area


About this page...
This website is made of static web pages and assets with focus only on the front-end.
Update: Added Dynamic-ness. Thanks to Firebase & Cloud Firestore.
This site is built using the following languages, tools, frameworks, database and libraries.


Sunny Patel
Full-Stack Developer
Strong engineering professional with B.E in Information and Technology along with Master of Applied Computing. An enthusiastic learner with problem-Solving skills. Have good working skills in ReactJS, NodeJs, ExpressJs, MongoDB, and Java.
Looking to make this drive adventurous by adding more complex projects, skills, and industry experience to it.
• Collaborating with team members & organizing products to deliver excellent customer service in a
fast-paced environment
• Providing a top-notch guest experience that includes friendly interactions, fresh meals, and a
commitment to cleanliness
Jun 2020 - Present
• Implemented the fundamentals of Java programming and applied it to solve real-life problems
• Developed interactive and user-friendly UI using HTML, CSS3, JavaScript, Bootstrap4, and ReactJS
concepts
• Collaborated with dynamic teams to build secure products using Spring MVC and Hibernate frameworks
• Acquired knowledge in J2EE, NodeJS, MySQL & MongoDB to develop backend apps with Agile and Scrum
methodology
• Gained experience in developing web services using REST API protocols and JSON, XML data formats
Nov 2017 - Jun 2018
Master of Applied Computing(MAC)
Jan 2020 - Present
Information Technology
Jul 2015 - May 2019
Technologies: Bootstrap4, ReactJS, Redux, ExpressJS, NodeJS, MongoDB, Mongoose
• Developed a web app with interactive UI using React-Bootstrap components and deployed on AWS EC2 instanceTechnology: Java
• Built client-server java communication app using concepts like socket, file & data Input/Output streams, multi-threadingTechnologies: Bootstrap4, ReactJS
• Built app to fetch current weather data using an API call of openweatherapi.org and deployed on AWS amplify platformTechnologies: Java, JUnit 5
• Implemented trigonometry, power, and factorial functions and tested its functionality using JUnit 5 testing frameworkTechnology: Java
• Developed a Java-based search engine with different data structure and algorithm conceptsTechnologies: Java, JSP, Spring Boot, Bootstrap, Python, MySQL, Machine Learning
• Developed a web-based app to generate analyzed data from user’s feedback that ensure better product sales for a firm


Published on December 12, 2017 and updated on November 04, 2021.
What is an API? API stands for Application Programming Interface. APIs are channels for information exchange between systems. APIs provide or retrieve data that software developers can use inside their own applications, like information about movies. Although being similar concepts, there are differences between APIs and the called webhooks, which are event notifiers. While APIs are explicitly called by applications, webhooks notify external sources when events are triggered. Examples of webhooks are those used on payment gateways. When someone purchase a product, a payment notification is sent to the vendor, which then send the product. Calls to webhooks can even be done by APIs.
The inner workings of APIs
The two main employments for APIs are to integrate systems and automate processes. Integration is done by building a workflow from which two or more systems exchange data and automation is done by collecting, processing, storing and delivering data without human intervention. APIs reduce costs and increase the performance of teams. Web services usually use APIs.
APIs work with at least two actors: a client, which request information, and a server, which deliver the information being requested. These actors communicate through a protocol, which is a set os rules known by all parties. Since data is transferred over the internet, the protocol that is usually adopted is the HTTP. An HTTP request consists of four parts:
- URL: the address in which data is located;
- Method: the operation that is to be performed on the server. Can be GET, POST, PUT, PATCH and DELETE;
- Headers: additional information, or metadata, to be sent along the data;
- Body: data to be sent with the request.
And response have three parts:
- Status code: three digits number that inform the status of the current request, such as success or fail;
- Headers: additional information, or metadata, received along the data;
- Body: data to be received.
Data sent through APIs are mainly XML and JSON files.
XML is similar to HTML:
|
|
And JSON is similar to Javascript objects:
|
|
APIs are built over established technologies and are designed following a set of best practices. The most known API design patterns are SOAP and REST. While SOAP is a protocol, REST is an architectural style, or an arrangement of components used to establish communication between systems. The main differences between the two are:
- SOAP can use other protocols besides HTTP and use XML to transfer data;
- REST is based on HTTP and can use different file formats.
REST is commonly used to build APIs, since it is easier to learn and is generally faster than SOAP.
Authentication
Some APIs require users to authenticate in order to access their resources. Authentication can be done in following ways:
- With user and password;
- With access keys.
Access keys replace user and password credentials, and are created inside an application protected by credentials. The simpler way to retrieve a key is to login to a service that has APIs and create access keys. These keys may have specific usage permissions, depending on the API. Keys can grant read or write access to specific data or everything. Some keys have expiration dates.
Authentication methods vary with each API. Some methods are:
- Send credentials along with the requested URL as parameters;
- Send credentials along with the header Authentication;
- Send credentials along with the request body;
- Use authentication protocol OAuth.
OAuth
OAuth is abbreviation for Open Authentication. It is a protocol to authenticate systems whose specs are maintained by Internet Engineering Task Force, and by the time of this post is on version 2 (OAuth2). OAuth protocol is used to build authentication systems for APIs using established design patterns. Authentication steps under OAuth2 are as follow:
- Client send access request to the server;
- Client is redirected to authentication server to provide user and password;
- Once authenticated, an authorization code is sent to the requester;
- This authorization code is sent along with a client key to the server. This client key is created inside the application that house the data to be accessed;
- Once the combination of authorization code and client key is accepted, the requester receive an access token.
Tokens can be used to access data. Some applications may give expiration dates for tokens for security purposes. When a token expires, the authentication workflow is reset. Token can also grant specific permissions to the data through APIs.
Working with an API
APIs are accessed through endpoints, which are URLs that request, send, modify or delete data. For instance, accessing the hypothetical endpoint:
Could result in the following data being sent back to the requester:
|
|
The endpoint is called “data” and return information about customers. This example call used the GET method. Each HTTP request is done using one of several methods. The most common is GET, used to retrieve information from servers. Other HTTP methos that are used with APIs are:
- POST: send data to the server;
- PUT: update data stored in the server or insert it if not available;
- PATCH: update data stored in the server;
- DELETE: delete data from the server.
It is important to note that some APIs may deliver data only when using POST requests and not GET.
A POST request will probably have and endpoint similar to the one used for GET requests, and its body will carry the data that will be transferred to the server. One example of such request done using Google Apps Script can look like this:
|
|
The customer object store the data that will be sent on the body of the request. The method that was used is POST on the “method” key, indicating that this request will send data over the internet using the HTTP protocol.
APIs are very simple to use and provide a secure interface to access data. They work like a bridge that connect all sorts of services and make the internet richer by the day. Although they follow industry standard practices, each application will have its own specific business needs, which differentiate each API from all the others. This is why each API provider will also provide a documentation, an essential component to understand an API.
Further reading
Zapier developed a complete course on the basics of APIs, from concepts to implementation.
Let’s integrate and automate!


CLASSIFY See also Clustering: demoCluster - Clustering demo. demoGenData - Generate data drawn form a mixture of Gaussians. kmeans2 - Fast version of kmeans clustering. meanShift - meanShift clustering algorithm. meanShiftIm - Applies the meanShift algorithm to a joint spatial/range image. meanShiftImExplore - Visualization to help choose sigmas for meanShiftIm. Calculating distances efficiently: distMatrixShow - Useful visualization of a distance matrix of clustered points. pdist2 - Calculates the distance between sets of vectors. softMin - Calculates the softMin of a vector. Principal components analysis: pca - Principal components analysis (alternative to princomp). pcaApply - Companion function to pca. pcaRandVec - Generate random vectors in PCA subspace. pcaVisualize - Visualization of quality of approximation of X given principal comp. visualizeData - Project high dim. data unto principal components (PCA) for visualization. Confusion matrix display. confMatrix - Generates a confusion matrix according to true and predicted data labels. confMatrixShow - Used to display a confusion matrix. Radial Basis Functions (RBFs) rbfComputeBasis - Get locations and sizes of radial basis functions for use in rbf network. rbfComputeFtrs - Evaluate features of X given a set of radial basis functions. rbfDemo - Demonstration of rbf networks for regression. Fast random fern classification/regression code. fernsClfApply - Apply learned fern classifier. fernsClfTrain - Train random fern classifier. fernsInds - Compute indices for each input by each fern. fernsRegApply - Apply learned fern regressor. fernsRegTrain - Train boosted fern regressor.


import { Component } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { LoginService } from '../login/login.service';
/*
* We're loading this component asynchronously
* We are using some magic with es6-promise-loader that will wrap the module with a Promise
* see https://github.com/gdi2290/es6-promise-loader for more info
*/
@Component({
selector: 'account',
templateUrl: './account.component.html'
})
export class AccountComponent {
localState: any;
constructor(public loginService: LoginService, public route: ActivatedRoute) {}
ngOnInit() {
console.log('Spy: Hello from `Account`');
this.route
.data
.subscribe((data: any) => {
// your resolved data from route
this.localState = data.yourData;
});
// static data that is bundled
// var mockData = require('assets/mock-data/mock-data.json');
// console.log('mockData', mockData);
// if you're working with mock data you can also use http.get('assets/mock-data/mock-data.json')
this.asyncDataWithWebpack();
}
asyncDataWithWebpack() {
// you can also async load mock data with 'es6-promise-loader'
// you would do this if you don't want the mock-data bundled
// remember that 'es6-promise-loader' is a promise
setTimeout(() => {
System.import('../../assets/mock-data/mock-data.json')
.then(json => {
console.log('async mockData', json);
this.localState = json;
});
});
}
}
|