Cillian Sharkey, CASE3, 50716197
There are essentially two kinds of setups for RRS:
useradm
for both database and account
administration.
rrs
cgi for database
administration and limited use of useradm for database only
administration.
Note that the web setup could also be used on the main setup, so that full use
of useradm
and the rrs
cgi would be available.
The installation requirements and steps below will indicate if they only pertain to one of the given setups ('main' or 'web') above, otherwise it can be assumed that they are required for both types of setup.
It is also worth noting that much of RRS is very specific to the RedBrick and DCU environment and so as such is not designed for widespread use on generic machines. The web setup mentioned above however, is not as specific in its requirements and is intended to be reasonably 'portable'.
RRS is designed primarily to run on a Unix platform however, it should be
possible to run the web interface part on a non-Unix platform although this has
not been tested. Note that root (superuser) access is required for performing
any account or filesystem operations with useradm
, everything else
can be performed using a user / unprivileged account (assuming it has access to
the user database).
PostgresSQL version 7.2 or higher must be installed. Details on doing this vary depending on the operating system and is outside the scope of this document however, full instructions can be found on the PostgresSQL website.
Python version 2.2 or higher must be installed. Details on doing this vary depending on the operating system and is outside the scope of this document however, full instructions can be found on the Python website.
The following Python modules are included in the standard Python release, but may need to be installed or configured to work:
The following additional 3rd party Python modules must be installed:
The account utilities useradd
, usermod
and
userdel
need to be installed. Typically, these are provided as
part of the native operating system and have been found to have a consistent
interface on Solaris, Linux and NetBSD.
The 3rd party utility setquota
must be installed for the
manipulation of disk quotas. There appear to be a number of implementations of
this command each with different command line syntax for different operating
systems. Tested with a setquota utility for Solaris written by David Mitchell
of Dept of Computer Science, Sheffield University.
RRS automatically subscribes (and unsubscribes) users to a variety of
RedBrick mailing lists, specifically the announce-redbrick,
redbrick-newsletter, comittee, rb-admins and admin-discuss lists. For this
reason the mailing list software Mailman
should be installed with the above mentioned lists created and working. It is
not entirely necessary however as "dummy" scripts can be used in place of the
add_members
and remove_members
mailman commands.
Any MTA that provides the generic sendmail
command line
interface will suffice, e.g. Exim, Postfix, Sendmail, etc.
A web server is required for the rrs
cgi. Web servers other
than Apache should work as the CGI standard is web server independant. Tested
against Apache 1.3.26.
The installation of RRS simply involves unpacking the
RRS distribution tarball in a filesystem location
of your choosing. Say you have downloaded the tarball to
/tmp/rrs.tar.gz
. Installation to the directory
/usr/local/rrs
is as follows:
# cd /usr/local # tar zxf /tmp/rrs.tar.gz
A database userdb
needs to be created with the postgres command
"createdb userdb
" run as the postgres user. For the account setup,
the root user will need access to the database. For the web setup, the user the
web server runs as will need access to the database. This is achieved by first
creating the users if they don't already exist with the postgres
createuser
command and making sure that postgres is setup to grant
access to the userdb
database for these users by appropriate
editing of the pg_hba.conf
and possibly pg_ident.conf
files.
This step sets up a new database from scratch.
Create the tables for the database:
main$ cat userdb_reserved.sql userdb_staff.sql userdb_students.sql \ userdb_usertypes.sql userdb_users.sql | psql userdb
Make sure that access to these tables is granted to all users who need it.
The above scripts include full access for root and SELECT (read only) access
for users www
and webgroup
as this is the default
used on the RedBrick system.
Then populate the student, staff and reserved tables by running each of the rebuild scripts, e.g:
main$ ./rebuild_userdb_reserved userdb/reserved: Purge. Populate. Done [45] main$ ./rebuild_userdb_students userdb/students: Search [19523]. Purge. Populate. Done [19436/19523]. main$ ./rebuild_userdb_staff userdb/staff: Search [1829]. Purge. Populate. Done [397/1829].
If the web setup is on a seperate machine to the main system machine, the database must be copied across. This can be achieved as follows:
main$ pg_dump -f userdb.dump userdb [copy file userdb.dump to the web machine] web$ psql userdb < userdb.dump
You will need to grant full access to the users table to the user the web
server runs as. The "GRANT ALL ON users TO username
" SQL command
achieves this when run as the owner of the userdb.
An empty rrs.log
file needs to be created before any actions
can be performed with the web interface. This can be achieved by:
[create rrs.log in directory that rrs is installed] web$ touch rrs.log [make sure web server user can write to file] web$ chown www rrs.log
Local configuration can be performed by editing the rbconfig.py file. The majority of this configuration file is for providing local account and filesystem location paths to the rbaccount module. The defaults provided are of course suited for the RedBrick system.
At this point, all necessary installation and configuration should be complete for use of RRS.


14 Mar 2014
One of the terrific advantages of building a SaaS company is that your clients
can be anywhere in the world. We now have customers in more than 15 different
countries distributed across South America, Europe, Africa, and, of course,
North America. We feel incredibly lucky to have so many international
customers trusting us with their search.
Language support is one of the key factors that enabled us to enter these
markets. Since the beginning, we wanted to support every language used on the
Internet. To back our vision with action, we developed a very good support of
Asian languages over time. As an example, we are able to automatically
retrieve results in Traditional Chinese when the query is in Simplified
Chinese (or vice-versa). You simply need to add objects in Chinese, Japanese
or Korean, and we handle the language processing for you.
Despite the fact that we could process Asian languages well, we didn't plan to
open an Asian datacenter so early, mainly because we thought the API as a
service market was less mature in Asia than in the US or Europe. But we were
surprised when an article on 36kr.com
gave us dozen of signups from China. We got more signups from China in the
past month than from Canada!
One of our core values is the speed of our search engine. To provide a
realtime search experience, we want the response times to be lower than 100ms,
including the round trip to search servers. In this context a low latency is
essential. Up to now we have been able to cover North America and Europe in
less than 100ms (search computation included) but our latency with Asia was
between 200ms and 300ms.
The first step of our on-boarding process is to select the datacenter where
your search engine is hosted (we offer multi-datacenter distribution only for
enterprise users). Interestingly, we discovered that we had no drop for
European & US users but it became significant for others. It was a difficult
choice for people outside of these two regions, or even between the two
datacenters. So we also now display the latency from your browser and pre-
select the "closest" datacenter.
To propose better latency and to reduce friction in the on-boarding process,
it was clear that we had to add a datacenter in Asia. We chose Singapore for
its central location. Unfortunately, the hosting market is very different in
Asia. It's much more expensive to rent servers, so we sadly had to add a
premium on plan prices when choosing this datacenter.
We are very happy to open this new datacenter in Asia with a latency that
reaches our quality standard. Now that Algolia provides realtime search in
Asia, we are even happier to be able to help multinational websites and apps
provide a great search experience to all their users across Europe, North
America & Asia in less than 100ms with our multi-datacenter support!*
Multi-datacenter support is currently only available for Enterprise
accounts.
10 Feb 2014
Most of our users are technical. They love writing code, and we love
providing API clients in the major programming languages to them (we are
currently supporting 10 platforms.
They are doers. They love prototyping. Just like us, they work for startups
which need to move fast, and get things done, keeping in mind that done is
better than perfect. It is very important that they don't want to waste
time. In this post, I will explain how one would have used our API up to
now, and how we introduced SQL and MongoDB connectors for easier onboarding,
integration and testing.
Before: The first steps with our API
Up until now, our onboarding process asked you to try the API by uploading
your data. We emphasized our documentation, and
we made sure our users would not need more than a few minutes to integrate our
REST API. Nevertheless, exporting your
application's data to a JSON or CSV file is often more complex than it
appears, especially when you have millions of rows - and especially because
developers are lazy :) No worries, that's totally
OK. It is something you may not be willing to do, especially
just to try a service, so we decided to try something else.
Initial import
90% of our users are using a SQL or MongoDB database. Exporting a table or a
collection to a JSON file can be easy if you're using a framework, for example
Ruby on Rails:
File.open("/tmp/export.json", "w") do |f|
f << MyActiveRecordModel.all.to_json
end
...or more annoying, for example when using PHP without any framework:
mysql_connect('localhost', 'mysql_user', 'mysql_password');
mysql_set_charset('utf8');
$results = array();
$q = mysql_query("SELECT * FROM YourTable");
if ($q) {
while (($row = mysql_fetch_assoc($q))) {
array_push($results, $row);
}
}
$fp = fopen('/tmp/export.json', 'w');
fwrite($fp, json_encode($results));
fclose($fp);
Anyway, in both cases it gets harder if you want to export millions of rows
without consuming hundreds GB of RAM. So you will need to use our API clients:
index = Algolia::Index.new "YourIndex"
MyActiveRecordModel.find_in_batches(1000) do |objects|
index.add_objects(objects)
end
# that's actually what `MyActiveRecordModel.reindex!` does
mysql_connect('localhost', 'mysql_user', 'mysql_password');
mysql_set_charset('utf8');
$limit = 1000;
$start = 0;
$index = $client->initIndex('YourIndexName');
while (true) {
$q = mysql_query("SELECT * FROM YourTable LIMIT " . $start . "," . $limit);
$n = 0;
if ($q) {
$objects = array();
while(($row = mysql_fetch_assoc($q))) {
array_push($objects, $row);
++$n;
}
$index->addObjects($objects);
}
if ($n != $limit) {
break;
}
$start += $n;
}
Incremental updates
Once imported, you will need to go further and keep your DB and our indexes
up-to-date. You can either:
- Clear your index and re-import all your records hourly/daily with the previous methods:
- non-intrusive,
- not real-time,
- not durable,
- need to import your data to a temporary index + replace the original one atomically once imported if you want to keep your service running while re-importing
Or
- Patch your application/website code to replicate every add/delete/update operations to our API:
- real-time,
- consistent & durable,
- a little intrusive to some people, even though it is only a few lines of code (see our documentation
After: Introducing connectors
Even if we did recommend you to modify your application code to replicate all
add/delete/update operations from your DB to our API, this should not be the
only option, especially to test Algolia. Users want to be convinced before
modifying anything in their production-ready application/website. This is why
we are really proud to release 2 open-source connectors: a non-intrusive and
efficient way to synchronize your current SQL or MongoDB database with our
servers.
SQL connector
Github project: algolia/jdbc-java-connector (MIT license, we love pull-requests :))
The connector starts by enumerating the table and push all matching rows to
our server. If you store the last modification date of a row in a field, you
can use it in order to send all detected updates every 10 seconds. Every 5
minutes, the connector synchronizes your database with the index by adding the
new rows and removing the deleted ones.
jdbc-connector.sh --source "jdbc:mysql://localhost/YourDB"
--username mysqlUser --password mysqlPassword
--selectQuery "SELECT * FROM YourTable" --primaryField id
--updateQuery "SELECT * FROM YourTable WHERE updated_at > _$"
--updatedAtField updated_at
--applicationId YourApplicationId --apiKey YourApiKey --index YourIndexName
If you don't have an updated_at field, you can use:
jdbc-connector.sh --source "jdbc:mysql://localhost/YourDB"
--username mysqlUser --password mysqlPassword
--selectQuery "SELECT * FROM YourTable" --primaryField id
--applicationId YourApplicationId --apiKey YourApiKey --index YourIndexName
The full list of features is available on Github (remember, we ♥ feature and pull-requests)!
MongoDB connector
Github
project: algolia/mongo-connector
This connector has been forked from 10gen-lab's official
connector and is based on
MongoDB's operation logs. This means you will need to start your mongod server specifying a
replica set.
Basically, you need to start your server with: mongod --replSet
REPLICASETIDENTIFIER. Once started, the connector will replicate each
addition/deletion/update to our server, sending a batch of operations every 10
seconds.
mongo-connector -m localhost:27017 -n myDb.myCollection
-d ./doc_managers/algolia_doc_manager.py
-t YourApplicationID:YourApiKey:YourIndex
The full features list is available on Github (we ♥ feature and pull-requests).
Conclusion: Easier Onboarding, Larger Audience!
Helping our users to onboard and try Algolia without writing a single line of
code is not only a way to attract more non-technical users; It is also a way
to save the time of our technical but overbooked users, allowing them to be
convinced without wasting their time before really implementing it.
Those connectors are open-source and we will continue to improve them based on
your feedback. Your feature requests are welcome!
29 Jan 2014
Today (Jan 29) at 9:30pm UTC, our service experienced an 8 minute partial
outage during which we have rejected many write operations sent to the
indexing API (exactly 2841 calls). We call it "partial" as all search queries
have been honored without any problem. For end-users, there was no visible
problem.
Transparency is in our DNA: this outage is visible on our status page
(status.algolia.com) but we also wanted to share
with you all the details of the outage and more importantly the details of our
response.
The alert
This morning I fixed a rare bug in indexing complex hierarchical objects. This
fix successfully passed all the tests after development. We have 6000+ unit
tests and asserts, and 200+ non regression tests. So I felt confident when I
entered the deploy password in our automatic deployment script.
A few seconds after, I started to receive a lot of text messages on my
cellphone.
We developed several embedded probes to detect all kinds of problems and alert
us using Twilio and Hipchat APIs. They detect for example:
- a process that restart
- an unusually long query
- a write failure
- a low memory warning
- a low disk-free warning
- etc.
In case embedded probes can't run, other external probes run once a minute
from an independent datacenter (Google App Engine). These also automatically
update our status page when a problem impacts the quality of service.
Our indexing processes were crash looping. I immediately decided to rollback
to the previous version.
The rollback
Until today, our standard rollback process was to revert the commit, launch
the recompile and finally deploy. This is long, very long when your know that
you have an outage in production. The rollback took about 5 minutes in total
out of the 8 minutes.
How we will avoid this situation in the future
Even if the outage was on a relatively small period of time, we still believe
it was too long. To make sure this will not happen again:
- We have added a very fast rollback process in the way of a simple press button like the one we use to deploy. An automatic deploy is nice, but an automatic rollback is actually more critical when needed!
- Starting now, we will deploy new versions of the service on clusters hosting community projects such as Hacker News Search or Twitter handle search, before pushing the update on clusters hosting paying customers. Having real traffic is key to detect some types of errors. Unit-tests & non-regression tests cannot catch everything.
- And of course we added non-regression tests for this specific error.
Conclusion
Having all these probes in our infrastructure was key to detect today's
problem and react quickly. In real conditions, it proved not to be enough. In
a few hours we have implemented a much better way to handle this kind of
situation. The quality of our service is our top priority. Thank you for your
support!
24 Jan 2014
We are Hacker News readers and probably just
like you, there is not a day that goes by we don't use it. It is a little like
checking the weather app of the tech world. Long story short, Hacker News is
awesome, and we wanted to add our two cents to make it even greater to use.
Indeed, here is our problem: how do we instantly access the old posts we wish
we had saved?
Powering a new Hacker News search engine
Up until now we've been using hnsearch.com,
maintained for years by the great folks at Octopart. I
hope we speak on behalf of the HN community here, we are all grateful for the
work they put in hnsearch.com and they inspired us to pursue their effort.
Back in September 2013, we created a "homemade Hacker News
crawler" and built a search
engine with the data we could get. It was not perfect but somehow, it did the
job fine.
Now part of the Ycombinator W14 batch, we have a direct access to the data
and it has allowed us to provide instant search for the entire content of
Hacker News, 1.2 million articles, 5.2 million comments as of today. See for
yourself right here: hn.algolia.com
Here is how we did it
Hacker News API access
- YC provides us a private API access to fetch batches of 1000 items (an item being a comment or a post). Every two minutes, we update our database with the latest 1000 items. Last 48,000 items are refreshed every hour to keep the number of votes and comments up to date.
# Yep, that's a Lisp API :)
EXPORT_REGEXP = %r{^((d+) (story|comment|poll|pollopt) "(.+)" (d+) (?:nil|"(.*)") (?:nil|"(.+)") (?:nil|"(.*)") (?:nil|-?(d+)) (?:nil|(([d ]+))) (?:nil|(d+)))$}
Thumbnails generation
- We use wkhtmltoimage to render the URLs and generate the associated thumbnails. Playing with connection timeouts and JavaScript infinite loops was a pleasure:
(timeout 60 xvfb-run --auto-servernum --server-args="-screen 0, 1024x768x24"
wkhtmltoimage-amd64 --height 768 --use-xserver--javascript-delay 30000 "$URL" "$FILE" ||
timeout 60 xvfb-run --auto-servernum --server-args="-screen 0, 1024x768x24"
wkhtmltoimage-amd64 --height 768 --use-xserver --disable-javascript "$URL" "$FILE") &&
convert "$FILE" -resize '100!x100' "$FILE"
Thumbnails storage
- Thumbnails are resized and stored on a S3 bucket.
AWS::S3::S3Object.store("#{id}.png", open(temp_file), 'hnsearch', access: :public_read)
Thumbnails distribution
- We configured a CloudFront instance targeting the S3 bucket to distribute thumbnails with low latency and high data transfer speed. We followed Amazon's associated developer guide.
Indexing
- We used the "algoliasearch-rails" gem and a standard (Ruby on Rails) MySQL-backed ActiveRecord setup. Indexing is performed automatically as soon as new items are added to the database, providing a near-realtime experience.
Configuration
class Item < ActiveRecord::Base
include AlgoliaSearch
algoliasearch per_environment: true do
# the list of attributes sent to Algolia's API
attribute :created_at, :title, :url, :author, :points, :story_text, :comment_text, :author, :num_comments, :story_id, :story_title, :story_url
attribute :created_at_i do
created_at.to_i
end
# The order of the attributes sets their respective importance.
# `title` is more important than `{story,comment}_text`, `{story,comment}_text` more than `url`, `url` more than `author`
# btw, do not take into account position to avoid first word match boost
attributesToIndex ['unordered(title)', 'unordered(story_text)', 'unordered(comment_text)', 'unordered(url)', 'author', 'created_at_i']
# add tags used for filtering
tags do
[item_type, "author_#{author}", "story_#{story_id}"]
end
# Custom ranking allows to automatically sort the results by a custom criteria
# in this case, a decreasing sort of the number of HN points and comments.
customRanking ['desc(points)', 'desc(num_comments)']
# controls the way results are sorted sorting on the following 4 criteria (one after another)
# I removed the 'exact' match critera (improve 1-words query relevance, doesn't fit HNSearch needs)
ranking ['typo', 'proximity', 'attribute', 'custom']
# google+, $1.5M raises, C#: we love you
separatorsToIndex '+#$'
end
def story_text
item_type_cd != Item.comment ? text : nil
end
def story_title
comment? && story ? story.title : nil
end
def story_url
comment? && story ? story.url : nil
end
def comment_text
comment? ? text : nil
end
def comment?
item_type_cd == Item.comment
end
def num_comments
item_type_cd == Item.story ? story_comments.count : nil
end
end
Search
- Queries are sent directly to our API via the javascript client, the javascript code uses a public API-Key that can only perform queries.
Seeking feedback from the community
There is still room for improvement and we would love to know how you are
searching for news on HN. What is important for you? Are you searching by
date, by upvote, by comment or by user? All together maybe?
We would love to have your feedback! Don't hesitate to checkout the code: We
open-sourced it.
Special thanks to the Octopart and
YC teams for making this experience possible!
Give it a try now: hn.algolia.com
18 Jan 2014
Search is important
An effective search engine should be a seamless and natural extension of the
user experience. With improved relevance, your users should be able to find
what they are looking for in no time.
Unfortunately, developers often consider search as a second-tier priority.
This is a mistake. Every day, consumers use Google, Amazon, and Youtube to
find what they want on the web quickly and easily. Users of web applications
and eCommerce websites will feel the gap in search experience. As their
expectations are not met, your conversion rate will plummet, your bounce rate
will skyrocket, and the damage to your brand may be irredeemable.
Search is tricky
The reason why many web applications and e-commerce websites suffer from bad
search is because finding a good solution is not easy. Few current search
technologies combine relevancy and business metrics in a way that sorts search
results optimally.
In most cases, they fail on the following items:
- long response times,
- no handling of mistakes,
- no search field auto-completion,
- unexplainable or even nonexistent results.
To improve your search experience, you first need to understand which areas
are problematic. That's exactly why we built Search Grader by Algolia.
Introducing Search Grader by Algolia
Search Grader by Algolia is a tool to help you
quickly find out what your search engine may be missing. We divided the search
user experience in 3 categories in order to get a maximum score of 100:
- User Experience: 30 points
- Speed: 20 points
- Relevance: 50 points
User Experience: 30/100
User experience is not just design, it's the key of a good user satisfaction.
If your users cannot find what they're searching for, they will just leave.
- Searchbox visibility (3 pts): It is easier for your users to find something if your search bar is clearly visible!
- Descriptive placeholder (2 pts) : A hint in your search bar is a good way to let your users know what kind of data they can dig into.
- Searchbox auto-completion (6 pts): Auto-completion guides your users more efficiently towards what they are looking for.
- Suggestions after the first keystroke (5 pts): Delight your users by providing relevant suggestions immediately after the first keystroke.
- Faceting (4 pts): Faceting enables users to browse results by filtering them on specific categories (e.g., author, tags, price).
- Highlight (6 pts): You need to explain why the displayed results are chosen, especially when you tolerate typos or misspelled queries.
- Pagination (2 pts): Providing relevant results on the first page is great. But to keep your users engaged, you need to give them an easy way to access other results.
- Picture (2 pts): Sometime images are the fastest way to display information. Users will go through results and find the right hits much faster if you show them images.
Speed: 20/100
If results show up in more than 200ms, you will lose part of your users. Time
is money, real-time is gold. Because your location is important to the speed
of the search we graded speed 3 times based on the location of the user:
- Response time from US East coast
- Response time from US West coast
- Response time from Europe
Relevance: 50/100
Relevance is when you give your users what they want in the top results.
Although it's not very fancy, it's probably the more critical aspect of a good
search engine.
- Typo-tolerance (10 pts): People make a lot of typos, especially on mobile devices. Tolerating misspelled queries provides a great value to both your users and the products you promote.
- Auto-completion shows results, not queries (10 pts): Suggesting queries is good. Suggesting results directly is a lot better as you spare your users one click and a lot of time.
- Ranking uses business metrics (10 pts): Considering customized criteria such as sales numbers or the popularities in the way you rank results makes a key difference. It is THE way to give relevant results with one single keystroke.
- Overall ranking (20 pts): Search must always return relevant results. We perform multiple queries to detect if your search is performing well.
Get Google, Amazon-like search for your website
These criteria were defined by our team of experts with over 30+ years of
experience in search.
We tested out some of the biggest names in tech:
As you could expect, Amazon and LinkedIn received an excellent score of
90/100. That's the kind of quality Algolia can help you achieve in your
application or e-commerce website, for as low as
$19/month.
Now, how about your search? How is it performing? To find out, use Search
Grader by Algolia.
If you want to share your ideas with us, please leave your comments!


# My Reflections - Sprint Two # Your Blog ### Describe what you did in this exercise. Did you understand the steps that you were making? Can you describe them in simple terms? Added an html placeholder (basic website structure) added the css index (where all of the styling is kept) and then linked the two together (so the styling is applied to the html) (I later on moved the index file to my pages directory) ### Did you achieve the learning competencies and keep within the timebox? I didn't keep within the timebox, but I achieved the learning competencies. # Learn HTML and CSS ### What resources did you use during this challenge? Why did you choose those ones? Google Stackoverflow Codepool Udacity I used these resources as I needed them a lot to understand things better. I put them into practice on my blog as I was learning them so they stuck in my mind a bit better. ### What obstacles did you come up against? How did you overcome them? Getting my CSS to work properly with my HTML was a mission. A lot of things just didn't work but sometimes it was because they were not linked properly with the html, or there was a typo in there somewhere. Also figuring out how I wanted my website to look and interact was a tough one. But just trying lots of different things and chipping away at it I ended up with a site I like a lot, but there is a lot of room for improvement. ### What are of you proud of from during this challenge? My index page is super pretty. I learned so much about CSS having never tried it before and seeing it in practice and how effective it can be (despite how hard it is) is really satisfying. ### Did you keep within the timebox suggestions? No not at all I went way overboard trying to fix little things. ### How much faster could you do it if you started from the beginning again, right now? I'd say quite a bit faster, but I might get caught up in trying out new things and go down another rabbit hole. # Add HTML and CSS to your Blog Challenge ### Write a small story about HTML and CSS and their relationship. You could personify elements or speak from your own personal experience. The story should capture insight about the nature of HTML and CSS. HTML TALKS THE TALK AND CSS WALKS THE WALK! Html is the content, CSS is the design and layout. You could maaybe think of our human dna as our basic HTML structure, and our individualism and core personality traits as our CSS! ### What obstacles did you come up against? How did you overcome them? When nothing worked on my website - see below for that nice solution When I couldn't position my image correctly - I googled it ### Any moments of surprise or joy? When I found the missing bracket that was breaking my whole website and fixed it. That made me pretty happy. ### If HTML and CSS were animals, which animals do you think they would be? Why? HTML could be a gorilla, because it's got a big body CSS could be a cat because it's pretty but it's hard to get it to do stuff


Control Panel
Select a Dataset:
Arms Dealing
Terrorist Activity
Employees Disappearance
Select Participant:
P1
P2
P3
P4
P5
P6
P7
P8
Control Pannel:
Provenance Clustering
Generate Reports
Think-aloud Segments
Number of Topics:
3
4
5
6
7
8
9
10
Time distance:
Topic distance:
User action distance:
Clustering Ratio:
Time Segments:
Segmentation Error:


Toggle navigation
GoBang!
New Round
Help
Game Session: {{room}}
{{name}}
Player 1
{{p1wins}} : {{p2wins}}
Player 2
X


Extended Object Tracking - Groundwork
Background
While I was working with the Object Detection and Tracking team for the Next-Generation Vehicle at Ford, I was really challenged by the problem of short- and medium-range radar in an automotive context. Coming from aerospace, where multiple detections from a single object were exceedingly rare, I was able to straightforwardly associate measurements with tracks. In the world of automotive radar, this was no longer the case. I got to thinking about many approaches of how to solve this problem, and none were all that great.
After leaving Ford, I had a different, but related, problem where I needed to track multiple extended objects. I had limited time to implement a solution, and there was insufficient signal processing done beforehand. I had to process a signal with a limited feature set for discerning objects-to-track vs. stationary objects, track those objects reliably, and create collision avoidance logic using the tracks. While doing research initially, I had found this paper that discussed different approaches for tracking extended objects. I had originally intended to implement one of the algorithms the authors had discussed, but I didn’t have sufficient time. The approach was a tough sell to management as it was quite high risk.
Now that I am no longer working on that project, I have decided to revisit the algorithm and see what I can make of it.
The Problem
It’s probably best to just demonstrate the problem via a video.
You can see that a grouping of points, varying in number at each time step, moves with a high degree of correlation over time. It seems that the points themselves have a spread that lies along the apparent direction of motion. Furthermore, it seems one could encapsulate the points within a convex shape, the size, orientation, and speed of which could be tracked via standard methods, i.e. a Kalman filter. Well, that’s what I’m building up to, so far I just have the simulated sensor model up and running, so I’ll talk about that.
The Code
The testbed used to make the video referenced above is Juce, a platform comparable to QT in terms of its capabilities. Though Juce is typically used for audio applications, its graphical front-end makes it very appealing for design and analysis of other embedded systems. One such application I have seen it used for is autonomous vehicles, so I thought it would work well here. I was able to obtain a personal license to explore Juce’s capabilities towards the problem at-hand.
Typically, sensors update via udp on a regular clock cycle. To simulate the sensor, I tied the update of the sensor telemetry to a timer thread. The sensor “listens” to the timer thread; upon completion of the timer’s run()
method, which includes a sleep
, the sensor’s telemetry is updated via a simple motion model coupled with a random sampling about the surface of an extended object. The sleep-update paradigm is a way of enforcing a timing constraint for testing signal processing algorithms in real-time, with a reliable clock rate.
The measurement model itself comes from the author’s original Matlab implementation and can be summarized as follows:
- The number of detections on each frame follows a Poisson distribution
- The object is assumed to be aligned along it’s direction of travel
- The detections from the object are normally-distributed about an ellipse
What’s Coming Next?
I intend to update my repo with an extended Kalman filter model implementing the algorithm discussed in the previously mentioned paper. I don’t have an ETC on this at the moment, so stay tuned. Cheers!


References
| summary | ||
| public |
Base context for the strategy pattern. |
|
| public |
Cron class for executing the scraper periodically. |
|
| public |
Class for Initiating the scraping process. |
|
| public |
E PopApi |
http
| summary | ||
| public abstract |
Class for making HTTP calls. |
|
| public |
Class for making HTTP calls with the got library. |
|
| public |
Interface to send HTTP requests. |
providers
| summary | ||
| public |
The abstract provider for the strategy pattern. |
|
| public |
Interface for scraping and content from various sources. |


Hello, my name is Dr. Steven Gundry, and if you are interested in greatly improving your health, and giving yourself the best possible chance at a long and happy life, I'd like to assure you: you are in the right place.
I founded Gundry MD with one mission: To allow you to benefit from a new scientific breakthrough that has allowed literally thousands of people to feel healthier and happier than they ever thought possible.
This includes many who considered themselves, "beyond hope"... or worried they suffered from a problem that could not be fixed.
Yet, despite the effectiveness of what you are about to discover today, you cannot learn about this in any medical textbook, on any other website. In fact, even most other doctors will readily admit that when it comes to what I'm about to share with you... they don't have a clue.
Dr. Steven Gundry – the medical mind behind Gundry MD's wellness products.
Dr. Gundry's expertise as a heart surgeon led him to new breakthroughs in full-body health treatment.
For over thirty years, I have been one of the world's pre-eminent experts in heart surgery. My experiences took me all over the world, and to new frontiers of medical science. I was a driving force behind major breakthroughs in medical technology and surgical procedures – breakthroughs that have revolutionized the way doctors save the lives of patients worldwide.
But back in 2001, I was asked to treat a chronically ill, overweight patient. This man was considered a hopeless case, someone who couldn't be helped even by surgery. But hopeless cases have been a specialty of mine over the years, and I was willing to take this man's challenge on when no one else would..
Yet, despite the effectiveness of what you are about to discover today, you cannot learn about this in any medical textbook, on any other website. In fact, even most other doctors will readily admit that when it comes to what I'm about to share with you... they don't have a clue.
The key to strong, sustainable health lives in all of us... in beneficial "good" microbes in our bodies that are in danger of dying out, thanks to dietary and environmental issues that overload our systems with threatening "bad" microbes. Once you begin taking care of your "good" microbes... or, as I like to call them, "your bugs"... you can be amazed by the changes you see.
And I know...because it also worked for me.
When I first met this "lost cause" patient, I was seriously overweight myself. I had high blood pressure, "bad" cholesterol, all the warning signs for oncoming diabetes and heart disease. I worked out regularly and tried to watch my diet, but I was still struggling with my weight. But following the principles of my new research, a study I am now calling, "Holobiotics"... I lost 70 pounds in just a year.
Dr. Gundry holds patents on several life-saving medical devices. His new research in the field of "Holobiotics" helps patients get healthy without surgery.
This is why, in 2002, I left my former position at California's Loma Linda University Medical Center, and founded The Center for Restorative Medicine, where I have spent the last 14 years studying the human microbiome – and developing the principles of Holobiotics that have now changed the lives of countless others.
My center, based in Palm Springs and Santa Barbara, is devoted to teaching our patients how to live healthier lives through diet and lifestyle choices that will help them avoid the kind of surgeries I performed for over three decades.
And the rest of the medical world is still catching up.
I created GundryMD.com to share with you these new discoveries that have taken me over 30 years of working with the toughest cases to figure out.
Because you see, while I'm able to serve a few hundred patients a year at my medical centers, I know my reach is limited. This is evident by the fact that I now have a 6 month waiting list for those who wish to see me.
Although I greatly enjoy seeing patients personally, I don't want you to have to wait 6 months, or even one week, to take advantage of these discoveries that for many of my patients have been literally life-changing.
Welcome to Gundry MD. I'm honored to have you here, and it is my pleasure to guide you towards your healthiest future.
Dr. Steven Gundry, M.D.
Yale University cum laude graduate, with special honors in Human Biological and Social Evolution
Served as a clinical associate at the National Institutes of Health
Alpha Omega Alpha graduate of the Medical College of Georgia School of Medicine
Fellowship at the Hospital for Sick Children, Great Ormond Street, London
Completed residencies in General Surgery and Thoracic Surgery at the University of Michigan
Former Professor and Chairman of Cardiothoracic Surgery, Loma Linda University Medical Center, Loma Linda, CA
Two successive terms as President of the Board of Directors, American Heart Association, Desert Division
Served on the Board of Directors, American Society of Artificial Internal Organs
Current medical director, International Heart & Lung Institute, Palm Springs, CA
Founding board member and treasurer, International Society of Minimally Invasive Cardiothoracic Surgery
Founder and current director, the Center for Restorative Medicine, Palm Springs and Santa Barbara, CA
— Joined his colleague, Leonard Bailey, to perform more infant and pediatric heart transplants than anyone else in the world
— Has operated in more than thirty countries, including on charitable missions to China, India, and Zimbabwe in Africa
— Pioneered the science of interspecies heart and tissue transplants, and kept a baboon alive with a transplanted pig heart for 28 days, a record for this type of surgery
— As consultant to Computer Motion, was one of the first surgeons to receive FDA approval for robot-assisted minimally invasive surgery
— One of the first twenty surgeons to test the implantable left ventricular assist device, a form of artificial heart
— Consultant to self-improvement guru Tony Robbins, Oscar-winning actor Alan Arkin, and Dr. Mehmet Oz of TV's The Dr. Oz Show
— The pioneer of the Gundry Ministernomy, a now-widespread method for minimally invasive heart valve repair
— Holds patents on numerous surgical and medical assistance devices, including:
The Gundry Retrograde Cardioplegia Cannula, the world's most widely used device for preventing cell damage during open heart surgery
The Gundry Lateral Tunnel, a "living" tissue that can rebuild parts of the heart in children with severe genetic heart defects
The Skoosh Venous Cannula, the world's most widely used data and fluid transfer tube used in minimally invasive heart surgery
Fellow of the American College of Surgeons; the American College of Cardiology; the American Academy of Pediatrics; and the College of Chest Physicians
One of only 500 Fellows of the American Surgical Association
Author of more than 300 chapters, articles, and abstracts in peer-reviewed journals on surgery, immunology, genetics, nutrition, and lipid investigations
Author of the best-selling Three Rivers Press book Dr. Gundry's Diet Evolution: Turn Off the Genes That Are Killing You and Your Waistline
If you're curious about Gundry MD Holobiotics supplements and health products, you're probably asking one question before all the others...
It's the concept that guides Dr. Gundry's "Diet Evolution" system, and all the supplements and products he's designed to support it. It's based on the belief that true health only happens when you're living in a state of cooperation with the trillions of tiny microbes that live everywhere in, on, and around your body.
Think of your body like an apartment complex. You're the landlord, and these trillions of tiny bugs are your tenants. Some of those bugs are "good" tenants, managing your digestion, helping energy move throughout your body, and powering as much as 80 percent of your immune system function, to keep you from getting sick or infected. But your body is also home to "bad" tenants...lectins (plant-based proteins that harm proper cell function), pathogens (bugs that cause illness and infection), and gut yeasts (which harm healthy digestion and help make you overweight).
HOLOBIOTICS: Your body and its "bugs" working together to give you optimum health
Sugar and other sweeteners endanger your "good" bugs and keep you from feeling your best
Naturally, you don't want these "bad" bugs running the show. But when you feed them unhealthy foods like sugars, artificial sweeteners, and preservatives, this makes them stronger, helps them kill off the "good" bugs...and turns your body into the kind of "building" where only bad bugs would want to live.
To restore your body to optimum health and wellness, you need to be sure you're taking care of the "good" bugs, making them stronger and better able to do their jobs promoting a strong and healthy you. Every product from Gundry MD Holobiotics is designed with this purpose in mind...whether it's a nutritional supplement for keeping the bugs in your gut powerfully effective...a skin treatment to nourish the healthy bacteria that live on the outside of your body...or any of the exciting new products currently in the works in the Gundry MD labs.
That's holobiotics. It's all about taking care of your good bacteria. Because if you take care of them... they'll take care of you.


Hard Rock Casino
Owned and operated by:
Seiverd Gambling Inc.
Directions:
Click Here
Current Jackpot
$212,344


Four protesters killed in Iraq capital: Sources
Rights groups have slammed security forces for firing the military-grade gas grenades directly at protesters instead of up in the air.
Four protesters were killed and dozens wounded in overnight clashes with security forces in Iraq's capital Baghdad, security and medical sources told AFP on Thursday.
Anti-government demonstrators have spread from their main protest camp in Tahrir (Liberation) Square onto three bridges linking the banks of the river Tigris.
Security forces have erected concrete barriers on the bridges to hold protesters back, and late on Wednesday they fired tear gas and live ammunition at crowds gathering on Al-Sinek and Al-Ahrar bridges.
One protester was shot dead by a live round and three died from wounds sustained by tear gas canisters.
Rights groups have slammed security forces for firing the military-grade gas grenades directly at protesters instead of into the air.
When shot at close range, the canisters can pierce skulls or chests, and advocacy groups have documented around two dozen deaths from such injuries among Iraqi protesters.
The overnight confrontation also injured more than 50 people, including at least six who sustained gunshot wounds.
Authorities fear crowds could use Al-Sinek bridge to reach the Iranian embassy, or cross the adjacent Al-Ahrar bridge further north to protest at the central bank and other government buildings.
Protesters in Tahrir have rebuked Tehran for propping up an Iraqi government they see as corrupt and inefficient, even accusing Iran of backing the use of violence against them.
More than 330 people have been killed since the protests broke out on October 1, according to an AFP toll, as authorities have stopped providing updated or precise figures.
The grassroots protests are the deadliest in decades but also the most widespread, with sit-ins at schools, outside government offices and public squares in Baghdad and across the Shiite-majority south.
In many areas, students and teachers have been at the forefront of demonstrations. Protest hotspots like Nasiriyah, Kut, Hillah and Diwaniyah have not seen steady school attendance in weeks.
But on Thursday, a security source told AFP that Baghdad's joint operations command authorised security forces to check school rosters in the capital to identify who may have skipped class to strike, particularly among teachers.
A spokesman for the education ministry confirmed security forces had deployed around schools in the capital to prevent sit-ins or road closures.


I've used anti-depressants for some time, mainly Effexor XR, which I started shortly before becoming sexually active. I did not know at first (I had other issues on my mind before starting this medication) but SSRI's are well known to interfere with one's sex drive and in my case, ability to achieve orgasm during intercourse.
Once I had learned that my inability to reach orgasm with a partner was not completely in my mind, but possibly a side effect of my medications, I consulted my psychiatrist. His suggestion was to try ginkgo.
It was certainly not a lightning bolt cure, but it was very helpful in achieving the satisfaction my partner and I were looking for. It helped sensitivity in the penis and lowered the amount of time taken to reach orgasm by far. I usually take around 120-200 mg when I expect to 'need' it, though I have yet to figure out how much more or less beneficial it is to take it daily.
There has been little research done thus far for delayed ejaculation from SSRI's, and even fewer options to treat it. This is a good start if you're having problems in bed, I would highly suggest trying ginkgo before thinking about stopping your medications or using a 'drug holiday' plan.
Beware: Ginkgo has a potent and nasty after-taste.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Class AV.Events
AV.Events is a fork of Backbone's Events module, provided for your convenience.
A module that can be mixed in to any object in order to provide it with custom events. You may bind callback functions to an event with `on`, or remove these functions with `off`. Triggering an event fires all callbacks in the order that `on` was called.
var object = {}; _.extend(object, AV.Events); object.on('expand', function(){ alert('expanded'); }); object.trigger('expand');
For more information, see the Backbone documentation.
Defined in: av.js.
| Constructor Attributes | Constructor Name and Description |
|---|---|
| Method Attributes | Method Name and Description |
|---|---|
| <static> |
AV.Events.bind()
|
| <static> |
AV.Events.off(events, callback, context)
Remove one or many callbacks.
|
| <static> |
AV.Events.on(events, callback, context)
Bind one or more space separated events, `events`, to a `callback`
function.
|
| <static> |
AV.Events.trigger(events)
Trigger one or many events, firing all bound callbacks.
|
| <static> |
AV.Events.unbind()
|
Method Detail
<static>
AV.Events.bind()
<static>
AV.Events.off(events, callback, context)
Remove one or many callbacks. If `context` is null, removes all callbacks
with that function. If `callback` is null, removes all callbacks for the
event. If `events` is null, removes all bound callbacks for all events.
- Parameters:
- events
- callback
- context
<static>
AV.Events.on(events, callback, context)
Bind one or more space separated events, `events`, to a `callback`
function. Passing `"all"` will bind the callback to all events fired.
- Parameters:
- events
- callback
- context
<static>
AV.Events.trigger(events)
Trigger one or many events, firing all bound callbacks. Callbacks are
passed the same arguments as `trigger` is, apart from the event name
(unless you're listening on `"all"`, which will cause your callback to
receive the true name of the event as the first argument).
- Parameters:
- events
<static>
AV.Events.unbind()


Who am I
Physician and Computational Biologist with experience in Bioinformatics, AI, and Big data analysis, including NGS data.
Introduction
- Passionate about Artificial intelligence in medicine and health.
- Committed to collaborate and exchange experiences and ideas with peer researchers.
- Strive for self-development by learning and acquiring new skills and exploring new science and research areas.
- Active in journal articles writing and conference participation.
- Enthusiastic in Health-related problem solving utilizing programming and computational methods.
About
Find Out More About Me
. . .
Eduction History
-
Tohoku University Graduate School of Medicine
(2014) Ph. D. Medical Sciences; in Pharmacology department.
-
University of Pretoria
(2009) Post-graduate Diploma in Occupational Medicine and Health.
-
University of Benghazi
(2006) MB. ChB. Bachelor of Medicine and Surgery.
Employment History
-
National Institutes of Biomedical Innovation, Health and Nutrition
(2015 ~) Post-doctoral researcher.
-
Tohoku University, Cyclotron and Radio-Isotope Center
(2014) Post-doctoral researcher.
-
University of Benghazi
(2006) MB. ChB. Bachelor of Medicine and Surgery.
Education and Employment in details
Education and Employment in details
Comment here
-
PhD in Medical Sciences
- Tohoku University
- Department of Pharmacology, Graduate school of Medicine, Sendai, Japan
- Thesis: The role of histaminergic neurotransmission in locomotor activity and anxiety-like-behaviors in mice.
-
Post Graduate Diploma in Occupation Medicine and Health
- University of Pretoria.
- School of Health Systems and Public Health, Pretoria, South Africa
-
Bachelor of Medicine and Surgery (MB ChB)
- University of Benghazi.
- School of Medicine, Benghazi, Libya
-
Post-doctoral Researcher
National Institutes of Biomedical Innovation, Health and Nutrition
Artificial Intelligence Center for Health and Biomedical Research (ArCHER)
Laboratory of Bioinformatics- In the theme of drug discovery, I created prediction models for adverse drug events. This project utilized data from different sources (ADR (Adverse Drug Re- actions) database, Microarray data), it uses machine learning for feature selection and outcome prediction. (Won the poster excellent award in Japanese Chemo-bioinformatics meeting Tokyo, 2016). In this project the target genes of these adverse events were identified, and prediction models are created to be used for new drug development settings.
- Worked on natural language processing (NLP) with collaborators to analyze the similarity of terms used in medical literature using Word2Vec method (Results partially com- municated as a poster presentation in CBI 2018).
- Built a deep learning model to remove the noise from MCG (MagnetoCardioGram) traces in collaboration with researchers from multiple international universities.
- Set up the Microbiome data analysis pipeline in our laboratory for both 16S data (using QIIME 1 and QIIME 2) and Shot-gun data (abundance estimation and functional annotation).
- Automated and optimized QIIME1 pipe line by developing (Auto-q) script.
- Trained a research group from other university on the automation and optimization of Microbiome data analysis using QIIME 1 pipeline and auto-q script.
- Commenced and organized a technical training sessions in the laboratory under the name of Interactive Workshop. Their aim is to share the experience among team members and invite experts from outside the laboratory.
- Studied the spread of COVID-19 infection using stochastic simulation with involvement of network approach.
- Deep learning and conventional machine learning.
-
Post Graduate Diploma in Occupation Medicine and Health
- University of Pretoria.
- School of Health Systems and Public Health, Pretoria, South Africa
-
Bachelor of Medicine and Surgery (MB ChB)
- University of Benghazi.
- School of Medicine, Benghazi, Libya
Education
Employment
Skills
Check my Skills
My skills is here
Programming skills
Python, R (Bioconductor), SQL, Sparql, Big-data, Cloud computing, Simulation, Bayesian modeling and inference, Automation and optimization, Simulation
Neuroscience
Neuroparmacology of Histamine in Anxiety and sleep deprivation
Genomics
Micro-Array data analysis, NGS, Toxicogenomics, Microbiomics
Wet lab experience
PCR, HPLC, Immunohistochemisty, Mouse behaviour, Cell culture techniques
Machine learning
Deep learning(Keras, Tensorflow), Machine learning(Random forest, SVM, XG-Boost)
Systems Biology
Pathway analysis, Gene enrichment analysis, Coexpression analysis
Published papers
Citations
Publications
Selected publications list
Check our list of publication
-
Distinct Age-Specific miRegulome
Profiling of
Isolated Small and Large Intestinal Epithelial Cells in Mice
Authors
Juneyoung Lee, Attayeb Mohsen, Anik Banerjee, Louise D. McCullough, Kenji Mizuguchi, Motomu Shimaoka, Hiroshi Kiyono, Eun J. Park.
Journal
Int. J. Mol. Sci. 22, no. 7: 3544. (2021)
Abstract
The intestinal epithelium serves as a dynamic barrier to protect the host tissue from exposure to a myriad of inflammatory stimuli in the luminal environment. Intestinal epithelial cells (IECs) encompass differentiated and specialized cell types that are equipped with regulatory genes, which allow for sensing of the luminal environment. Potential inflammatory cues can instruct IECs to undergo a diverse set of phenotypic alterations. Aging is a primary risk factor for a variety of diseases; it is now well-documented that aging itself reduces the barrier function and turnover of the intestinal epithelium, resulting in pathogen translocation and immune priming with increased systemic inflammation. In this study, we aimed to provide an effective epigenetic and regulatory outlook that examines age-associated alterations in the intestines through the profiling of microRNAs (miRNAs) on isolated mouse IECs. Our microarray analysis revealed that with aging, there is dysregulation of distinct clusters of miRNAs that was present to a greater degree in small IECs (22 miRNAs) compared to large IECs (three miRNAs). Further, miRNA–mRNA interaction network and pathway analyses indicated that aging differentially regulates key pathways between small IECs (e.g., toll-like receptor-related cascades) and large IECs (e.g., cell cycle, Notch signaling and small ubiquitin-related modifier pathway). Taken together, current findings suggest novel gene regulation pathways by epithelial miRNAs in aging within the gastrointestinal tissues
https://doi.org/10.3390/ijms22073544 -
MANTA, an integrative database and
analysis
platform that relates microbiome and phenotypic data
Authors
Yi-An Chen, Jonguk Park, Yayoi Natsume-Kitatani, Hitoshi Kawashima, Attayeb Mohsen, Koji Hosomi, Kumpei Tanisawa, Harumi Ohno, Kana Konishi, Haruka Murakami, Motohiko Miyachi, Jun Kunisawa, Kenji Mizuguchi
Journal
Plos one 2020, 15:12:e0243609
Abstract
With an ever-increasing interest in understanding the relationships between the microbiota and the host, more tools to map, analyze and interpret these relationships have been developed. Most of these tools, however, focus on taxonomic profiling and comparative analysis among groups, with very few analytical tools designed to correlate microbiota and the host phenotypic data. We have developed a software program for creating a web-based integrative database and analysis platform called MANTA (Microbiota And pheNoType correlation Analysis platform). In addition to storing the data, MANTA is equipped with an intuitive user interface that can be used to correlate the microbial composition with phenotypic parameters. Using a case study, we demonstrated that MANTA was able to quickly identify the significant correlations between microbial abundances and phenotypes that are supported by previous studies. Moreover, MANTA enabled the users to quick access locally stored data that can help interpret microbiota-phenotype relations. MANTA is available at https://mizuguchilab.org/manta/ for download and the source code can be found at https://github.com/chenyian-nibio/manta.
https://doi.org/10.1371/journal.pone.0243609 -
AI aided noise processing of spintronic
based iot
sensor for magnetocardiography application
Authors
Attayeb Mohsen, Muftah Al-Mahdawi, Mostafa M Fouda, Mikihiko Oogane, Yasuo Ando, Zubair Md Fadlullah
Journal
ICC 2020 - 2020 IEEE International Conference on Communications (ICC), Dublin, Ireland, 2020, pp. 1-6
Abstract
As we are about to embark upon the highly hyped “Society 5.0”, powered by the Internet of Things (IoT), traditional ways to monitor human heart signals for tracking cardio-vascular conditions are challenging, particularly in remote healthcare settings. On the merits of low power consumption, portability, and non-intrusiveness, there are no suitable IoT solutions that can provide information comparable to the conventional Electrocardiography (ECG). In this paper, we propose an IoT device utilizing a spintronic-technology-based ultra-sensitive Magnetic Tunnel Junction (MTJ) sensor that measures the magnetic fields produced by cardio-vascular electromagnetic activity, i.e. Magentocardiography (MCG). We treat the low-frequency noise generated by the sensor, which is also a challenge for most other sensors dealing with low-frequency bio-magnetic signals. Instead of relying on generic signal processing techniques such as moving average, we employ deep-learning training on bio-magnetic signals. Using an existing dataset of ECG records, MCG signals are synthesized. A unique deep learning model, composed of a one-dimensional convolution layer, Gated Recurrent Unit (GRU) layer, and a fully-connected neural layer, is trained using the labeled data moving through a striding window, which is able to smartly capture and eliminate the noise features. Simulation results are reported to evaluate the effectiveness of the proposed method that demonstrates encouraging performance.
https://doi.org/10.1109/ICC40277.2020.9148617 -
The impact of community containment
implementation
timing on the spread of COVID-19: A simulation study [version 1; peer review: 2 approved]
Authors
Attayeb Mohsen, Ahmed Alarabi
Journal
F1000Research vol. 9 452. 27 May. 2020
Abstract
https://doi.org/10.12688/f1000research.24156.1Background:
Community containment is one of the common methods used to mitigate infectious disease outbreaks. The effectiveness of such a method depends on how strictly it is applied and the timing of its implementation. An early start and being strict is very effective; however, at the same time, it impacts freedom and economic opportunity. Here we created a simulation model to understand the effect of the starting day of community containment on the ﬁnal outcome, that is, the number of those infected, hospitalized and those that died, as we followed the dynamics of COVID-19 pandemic.
Methods:
We used a stochastic recursive simulation method to apply disease outbreak dynamics measures of COVID-19 as an example to simulate disease spread. Parameters are allowed to be randomly assigned between higher and lower values obtained from published COVID-19 literature.
Results:
We simulated the dynamics of COVID-19 spread, calculated the number of active infections, hospitalizations and deaths as the outcome of our simulation and compared these results with real world data. We also represented the details of the spread in a network graph structure, and shared the code for the simulation model to be used for examining other variables.
Conclusions:
Early implementation of community containment has a big impact on the ﬁnal outcome of an outbreak.
2019
- Impact of quality trimming on the efficiency of reads joining and diversity analysis of Illumina paired-end reads in the context of QIIME1 and QIIME2 microbiome analysis frameworks
Authors
Attayeb Mohsen, Jonguk Park, Yi-An Chen, Hitoshi Kawashima, Kenji Mizuguchi
Journal
BMC bioinformatics
Abstract
To increase the accuracy of microbiome data analysis, solving the technical limitations of the existing sequencing machines is required. Quality trimming is suggested to reduce the effect of the progressive decrease in sequencing quality with the increased length of the sequenced library. In this study, we examined the effect of the trimming thresholds (0–20 for QIIME1 and 0–30 for QIIME2) on the number of reads that remained after the quality control and chimera removal (the good reads). We also examined the distance of the analysis results to the gold standard using simulated samples. Quality trimming increased the number of good reads and abundance measurement accuracy in Illumina paired-end reads of the V3-V4 hypervariable region. Our results suggest that the pre-analysis trimming step should be included before the application of QIIME1 or QIIME2.
https://doi.org/10.12688/f1000research.24156.12018
- Effects of levocetirizine and diphenhydramine on regional glucose metabolic changes and hemodynamic responses in the human prefrontal cortex during cognitive tasks
Authors
Asuka Kikuchi, Fairuz Binti Mohammadi Nasir, Akie Inami, Attayeb Mohsen, Shoichi Watanuki, Masayasu Miyake, Kazuko Takeda, Daigo Koike, Takayasu Ito, Junpei Sasakawa, Rin Matsuda, Kotaro Hiraoka, Marcus Maurer, Kazuhiko Yanai, Hiroshi Watabe, Manabu Tashiro
Journal
Human Psychopharmacology: Clinical and Experimental/Volume 33, Issue 2/e2655
Abstract
https://doi.org/10.1002/hup.2655Objective
Antihistamines often have sedative side effects. This was the first study to measure regional cerebral glucose (energy) consumption and hemodynamic responses in young adults during cognitive tests after antihistamine administration.
Methods
In this double‐blind, placebo‐controlled, three‐way crossover study, 18 healthy young Japanese men received single doses of levocetirizine 5 mg and diphenhydramine 50 mg at intervals of at least six days. Subjective feeling, task performances, and brain activity were evaluated during three cognitive tests (word fluency, two‐back, and Stroop). Regional cerebral glucose consumption changes were measured using positron emission tomography with [18F]fluorodeoxyglucose. Regional hemodynamic responses were measured using near‐infrared spectroscopy.
Results
Energy consumption in prefrontal regions was significantly increased after antihistamine administration, especially diphenhydramine, whereas prefrontal hemodynamic responses, evaluated with oxygenated hemoglobin levels, were significantly lower with diphenhydramine treatment. Stroop test accuracy was significantly impaired by diphenhydramine, but not by levocetirizine. There was no significant difference in subjective sleepiness.
Conclusions
Physiological “coupling” between metabolism and perfusion in the healthy human brain may not be maintained under pharmacological influence due to antihistamines. This uncoupling may be caused by a combination of increased energy demands in the prefrontal regions and suppression of vascular permeability in brain capillaries after antihistamine treatment. Further research is needed to validate this hypothesis.
2015
- Histamine H3 receptor in primary mouse microglia inhibits chemotaxis, phagocytosis, and cytokine secretion
Authors
Tomomitsu Iida, Takeo Yoshikawa, Takuro Matsuzawa, Fumito Naganuma, Tadaho Nakamura, Yamato Miura, Attayeb S Mohsen, Ryuichi Harada, Ren Iwata, Kazuhiko Yanai
Journal
Glia, 63:7:123-1225
Abstract
Histamine is a physiological amine which initiates a multitude of physiological responses by binding to four known G‐protein coupled histamine receptor subtypes as follows: histamine H1 receptor (H1R), H2R, H3R, and H4R. Brain histamine elicits neuronal excitation and regulates a variety of physiological processes such as learning and memory, sleep–awake cycle and appetite regulation. Microglia, the resident macrophages in the brain, express histamine receptors; however, the effects of histamine on critical microglial functions such as chemotaxis, phagocytosis, and cytokine secretion have not been examined in primary cells. We demonstrated that mouse primary microglia express H2R, H3R, histidine decarboxylase, a histamine synthase, and histamine N‐methyltransferase, a histamine metabolizing enzyme. Both forskolin‐induced cAMP accumulation and ATP‐induced intracellular Ca2+ transients were reduced by the H3R agonist imetit but not the H2R agonist amthamine. H3R activation on two ubiquitous second messenger signalling pathways suggests that H3R can regulate various microglial functions. In fact, histamine and imetit dose‐dependently inhibited microglial chemotaxis, phagocytosis, and lipopolysaccharide (LPS)‐induced cytokine production. Furthermore, we confirmed that microglia produced histamine in the presence of LPS, suggesting that H3R activation regulate microglial function by autocrine and/or paracrine signalling. In conclusion, we demonstrate the involvement of histamine in primary microglial functions, providing the novel insight into physiological roles of brain histamine.
https://doi.org/10.1002/glia.228122014
- Insufficient intake of L-histidine reduces brain histamine and causes anxiety-like behaviors in male mice
Authors
Takeo Yoshikawa, Tadaho Nakamura, Tetsuro Shibakusa, Mayu Sugita, Fumito Naganuma, Tomomitsu Iida, Yamato Miura, Attayeb Mohsen, Ryuichi Harada, Kazuhiko Yanai
Journal
The Journal of nutrition:144:10:1637-1641
Abstract
L-histidine is one of the essential amino acids for humans, and it plays a critical role as a component of proteins. L-histidine is also important as a precursor of histamine. Brain histamine is synthesized from L-histidine in the presence of histidine decarboxylase, which is expressed in histamine neurons. In the present study, we aimed to elucidate the importance of dietary L-histidine as a precursor of brain histamine and the histaminergic nervous system. C57BL/6J male mice at 8 wk of age were assigned to 2 different diets for at least 2 wk: the control (Con) diet (5.08 g L-histidine/kg diet) or the low L-histidine diet (LHD) (1.28 g L-histidine/kg diet). We measured the histamine concentration in the brain areas of Con diet–fed mice (Con group) and LHD-fed mice (LHD group). The histamine concentration was significantly lower in the LHD group [Con group vs. LHD group: histamine in cortex (means ± SEs): 13.9 ± 1.25 vs. 9.36 ± 0.549 ng/g tissue; P = 0.002]. Our in vivo microdialysis assays revealed that histamine release stimulated by high K+ from the hypothalamus in the LHD group was 60% of that in the Con group (P = 0.012). However, the concentrations of other monoamines and their metabolites were not changed by the LHD. The open-field tests showed that the LHD group spent a shorter amount of time in the central zone (87.6 ± 14.1 vs. 50.0 ± 6.03 s/10 min; P = 0.019), and the light/dark box tests demonstrated that the LHD group spent a shorter amount of time in the light box (198 ± 8.19 vs. 162 ± 14.1 s/10 min; P = 0.048), suggesting that the LHD induced anxiety-like behaviors. However, locomotor activity, memory functions, and social interaction did not differ between the 2 groups. The results of the present study demonstrated that insufficient intake of histidine reduced the brain histamine content, leading to anxiety-like behaviors in the mice.
https://doi.org/10.3945/jn.114.196105- Mechanism of the histamine H3 receptor-mediated increase in exploratory locomotor activity and anxiety-like behaviours in mice
Authors
Attayeb Mohsen, Takeo Yoshikawa, Yamato Miura, Tadaho Nakamura, Fumito Naganuma, Katsuhiko Shibuya, Tomomitsu Iida, Ryuichi Harada, Nobuyuki Okamura, Takehiko Watanabe, Kazuhiko Yanai
Journal
Neuropharmacology:81:188-194
Abstract
Histaminergic neurons are activated by histamine H3 receptor (H3R) antagonists, increasing histamine and other neurotransmitters in the brain. The prototype H3R antagonist thioperamide increases locomotor activity and anxiety-like behaviours; however, the mechanisms underlying these effects have not been fully elucidated. This study aimed to determine the mechanism underlying H3R-mediated behavioural changes using a specific H3R antagonist, JNJ-10181457 (JNJ).
First, we examined the effect of JNJ injection to mice on the concentrations of brain monoamines and their metabolites. JNJ exclusively increased Nτ-methylhistamine, the metabolite of brain histamine used as an indicator of histamine release, suggesting that JNJ dominantly stimulates the release of histamine release but not of other monoamines.
Next, we examined the mechanism underlying JNJ-induced behavioural changes using open-field tests and elevated zero maze tests. JNJ-induced increase in locomotor activity was inhibited by α-fluoromethyl histidine, an inhibitor of histamine synthesis, supporting that H3R exerted its effect through histamine neurotransmission. The JNJ-induced increase in locomotor activity in wild-type mice was preserved in H1R gene knockout mice but not in histamine H2 receptor (H2R) gene knockout mice. JNJ-induced anxiety-like behaviours were partially reduced by diphenhydramine, an H1R antagonist, and dominantly by zolantidine, an H2R antagonist. These results suggest that H3R blockade induces histamine release, activates H2R and elicits exploratory locomotor activity and anxiety-like behaviours.
https://doi.org/10.1016/j.neuropharm.2014.02.003 - Impact of quality trimming on the efficiency of reads joining and diversity analysis of Illumina paired-end reads in the context of QIIME1 and QIIME2 microbiome analysis frameworks


The Script playing intimate gig before heading on huge arena tour - how to get tickets
The band's latest single 'The Last Time' has proved very popular
by Robin MurrayThe Script are playing an intimate gig in Bristol - just months before embarking on a huge arena tour.
The Dublin rockers will perform at SWX this Wednesday (November 27) to mark the release of their new album, Sunsets & Full Moons.
Hosted by record shop Rough Trade, the event will see the three-piece play a stripped-back set to a crowd of around 1,000 people - far smaller than the venues they will play throughout February and March 2020, including Manchester Arena and the O2 Arena in London.
The Script rose to fame following the release of their eponymous debut album in 2008, which included hit singles The Man Who Can't Be Moved and Breakeven.
In total they have four number one albums, six billion streams, 30 million single sales and 10.8 million album sales.
And the release of their aforementioned sixth album finds them back at the top of their game.
Its lead single The Last Time has already soared over 16 million streams and its profile has been assisted by an appearance on BBC Breakfast, a performance on The Jonathan Ross Show and extensive radio support.
A Rough Trade spokesperson said: "Sunsets & Full Moons sees the band embracing the unifying power of music’s biggest traits - killer hooks, insistent melodies and stirring sentiments.
"It could be seen as a sequel to their much-loved debut album, as both emerged from emotionally turbulent times: frontman Danny O’Donoghue lost his father around the time of the release of their debut and ten years later, he lost his mother as they worked on this album.
"Naturally the songs began to reflect the band’s own experiences - and those are themes sure to resonate with their fans, too. Yet hope is its overriding theme."
Follow Discover Bristol
We have a dedicated Facebook page for all the latest on where to drink, eat, go out and events across Bristol.
From the best food and drink deals to exclusive sneak peeks at new restaurants and bars, gig reviews and weekend plans - Discover Bristol has got you covered.
You can follow the page here for all the latest news.
How to get tickets
Doors open at 7pm and The Script will be on stage at 9pm, with the performance expected to last one hour.
The band were initially due to perform twice on the night but due to time constraints there will now only be one set.
Fans can only purchase a ticket through purchasing the new LP on either CD of vinyl, with prices ranging from £20 to £33.
For more information on the event and ticket options, visit Rough Trade's website.
For the latest news in and around Bristol, check back on Bristol Live's homepage.


2
Comments
Araujo
says:
June 5, 2015 at 2:47 pm
Excellent
Reply
Bashar
says:
June 6, 2015 at 11:37 am
Awesome list! Thanks a lot.
Reply
2 Comments
Excellent
Awesome list! Thanks a lot.


Create missing targets
When you are referring to a non-existing target tag in your Ant build file, IntelliJ IDEA automatically suggests that you create the corresponding tag. This context action will not even make you change your current editing location.


6 July 2018, St John's Hoxton, London
2018/04/06 - CFP Opens
2018/04/19 - Tickets go on Sale
2018/05/07 - CFP Closes
2018/05/21 - Speaker Announcement
2018/07/06 - ServerlessDays London
All attendees, speakers, sponsors and volunteers at our conference are required to agree with the following code of conduct. Organisers will enforce this code throughout the event. We are expecting cooperation from all participants to help ensuring a safe environment for everybody.
tl;dr: Jeff says be excellent with each other
The Quick Version
Our conference is dedicated to providing a harassment-free conference experience for everyone, regardless of gender, gender identity and expression, age, sexual orientation, disability, physical appearance, body size, race, or religion (or lack thereof). We do not tolerate harassment of conference participants in any form. Sexual language and imagery is not appropriate for any conference venue, including talks, workshops, parties, Twitter and other online media. Conference participants violating these rules may be sanctioned or expelled from the conference without a refund at the discretion of the conference organisers.

Participants asked to stop any harassing behavior are expected to comply immediately.
Sponsors are also subject to the anti-harassment policy. In particular, sponsors should not use sexualised images, activities, or other material. Booth staff (including volunteers) should not use sexualised clothing/uniforms/costumes, or otherwise create a sexualised environment.
If a participant engages in harassing behavior, the conference organisers may take any action they deem appropriate, including warning the offender or expulsion from the conference with no refund.
If you are being harassed, notice that someone else is being harassed, or have any other concerns, please contact a member of conference staff immediately. Conference staff can be identified as they’ll be wearing branded t-shirts.
Conference staff will be happy to help participants contact hotel/venue security or local law enforcement, provide escorts, or otherwise assist those experiencing harassment to feel safe for the duration of the conference. We value your attendance.
We expect participants to follow these rules at conference and workshop venues and conference-related social events.