Part 3 - Hosting your website to GitHub Pages and custom domain
Published:
This article is a part of a series of articles for web development using pelican. So, if you haven’t read the previous articles, please check it out by clicking the links below.
Creating and deploying static websites using Markdown and the Python library Pelican
Up to this point, you have created your static website locally. You surely want to share it with the public so that they can view your articles. There are several ways of deploying your websites but the best option is by using GitHub pages.
Why GitHub Pages?
-
It is completely free of cost. You don’t need to buy any hosting services. Github hosts your website for free.
-
It is secure and reliable as the website is hosted in a secure GitHub server.
-
It becomes easy to organize and keep track of your source code.
Let’s get started
1. Create and associate a GitHub repo
-
If you don’t already have a GitHub account, go to GitHub and create one.
-
Login to github and create a repository with the name
username.github.io
(Replace username by your GitHub’s username. For eg, mine isayushkumarshah.github.io
) and copy the clone address as shown in the gif below. -
Now, go to your project directory i.e.
'web_development'
perform the following commands to add the remote repository that you just created to your project.
Use the URL that you just copied from the repository you created instead of the url used in the command below.
(.venv) $ git init
(.venv) $ git remote add origin 'https://github.com/username/username.github.io.git'
-
Also, add your GitHub email address and username to git. You can find your username by logging into github and finding the name as shown below.
(.venv) $ git config --global user.email "your-github-email"
(.venv) $ git config --global user.name "your-github-name"
-
We will be using 2 branches in our repository -
source
andmaster
.-
source:
store the source code of our project (i.e. all folders and files except the output folder) -
master:
store the contents of the output folder. i.e. all the HTML files generated after building the site. The master branch will be used to host the website to GitHub-pages.
-
-
So, let’s switch to the
source
branch.
# Create and switch to a new branch source
(.venv) $ git checkout -b source
- Create a
.gitignore
file to mark the files which should not be added into the repository.
(.venv) $ touch .gitignore
-
Copy all the lines from this link: .gitignore and paste it in the newly created
.gitignore
file. -
You may also create a
Readme.md
file for your repository. Create it in the main directoryweb_development
(.venv) $ touch Readme.md
- You can add information about your project in the
Readme.md
file similar to mine. You can copy it from this link: Readme.md and modify it accordingly.
2. Build and publish your website
- Let’s modify the configuration for publishing the website by opening
publishconfig.py
and modifying/adding the following settings.
SITEURL = 'https://username.github.io'
DOMAIN = SITEURL
FEED_DOMAIN = SITEURL
HTTPS = True
- Also, let’s modify the commands in the file
fabfile.py
. Open the file and add the following settings if not present already.
# Local path configuration (can be absolute or relative to fabfile)
env.deploy_path = 'output'
DEPLOY_PATH = env.deploy_path
env.msg = 'Update blog' # Commit message
# Github Pages configuration
env.github_pages_branch = "master"
# Port for `serve`
SERVER = '<IP_ADDRESS>'
PORT = 8000
- Also, we need to add a
deploy()
function infabfile.py
.
def deploy():
"""Push to GitHub pages"""
env.msg = "Build site"
clean()
preview()
local("ghp-import -m '{msg}' -b {github_pages_branch} {deploy_path}".format(**env))
local("git push origin {github_pages_branch}".format(**env))
So, your source code is ready. Let’s add it to the repository using the following commands:
(.venv) $ git add -A
(.venv) $ git commit -m "Add source code for the first post"
(.venv) $ git push origin source
- Now, perform the following command to build and publish the site to the master branch
(.venv) $ fab deploy
Note: Always work in the source branch during development. The deploy() function will push the contents of the output folder into the master branch. So, you don’t need to worry about it. So, every time you add an article, just follow the steps above by first pushing the source code to the source repository and then running the deploy function.
Congratulations! your site has been hosted to GitHub pages publicly. To check your website, open your browser on any device and visit https://your-username.github.io.
That’s it. You have now learned to create and host your static website in GitHub pages.
3. Linking your site to a custom domain (Optional)
You might want to host your site to a custom domain of your choice rather than GitHub pages. This can be done completely free of cost if you have a custom domain registered already.
If you don’t have a custom domain, you can buy them at several websites like Namesilo, GoDaddy, etc.
You can make your domain secure and manageable using Cloudflare Service
- The first step is to create a file called
CNAME
inside thecontent/extra
directory.
(.venv) $ touch content/extra/CNAME
-
Then, add (copy and paste) the name of your site i.e.
www.your-site-name.com
in the fileCNAME
. -
Change the value of
SITEURL
in thepublishconf.py
file.
SITEURL = 'https://you-site-name.com'
-
Now, you need to redirect your site to point to your content hosted in GitHub-pages. For that, you need to use your domain management site which you used to buy the domain or some 3rd party management site like Cloudflare.
-
Go to the DNS section and add A records one by one to redirect your site to following 4 IP addresses (GitHub-pages): You can see the image below for reference. I used Cloudflare for DNS management.
- <IP_ADDRESS>
- <IP_ADDRESS>
- <IP_ADDRESS>
- <IP_ADDRESS>
-
-
If you want to redirect the GitHub-pages site to your custom domain, then go to the repository settings and add your site name in the Custom domain field of the Github Pages section as shown below.
Congratulations!! Your blogs have been redirected to tour own custom domain. You can browse your site and check if it is working.
4. Add forked repo of theme (Optional)
This is an optional step. Perform these steps only if want to modify or tweak with the theme (Flex in this case) to give your website a slightly different look. You may modify colors, styles or even perform changes in the design (if you some knowledge on web development - HTML and CSS).
Since you have cloned the repository of the theme directly, modifying it directly is not a good idea since you will have issues updating the theme to a newer version.
Hence, you will create your own version of the theme repository instead i.e. forking the repository. I will demonstrate using the Flex theme but you may follow the same steps for other themes as well. Follow these steps (also shown in the gif below):
- First, let’s delete the previously cloned repository of the Flex theme.
(.venv) $ rm -rf themes/Flex
-
Now, open and fork the Flex repository or the repository of the theme you chose.
-
Then, copy the
https
(not ssh) link of the forked repository.
-
Now, clone the forked repo in your project.
Paste the link you copied from the forked repo instead of
https://github.com/ayushkumarshah/Flex.git
andthemes/name_of_theme
as the 2nd argument in the command below.
(.venv) $ git clone 'https://github.com/ayushkumarshah/Flex.git' 'themes/Flex'
Now, you may modify the theme by tweaking with the HTML and CSS files inside the themes/Flex/
directory and then
commit the changes to the forked repository separately.
In the next part, learn to automate the process of pushing to source and deploying to the master branch by using Continuous Integration tools like Travis-CI in the part 4 of the article.
If you have any confusion in any article, feel free to comment on your queries. I will be more than happy to help. I am also open to suggestions and feedbacks.
Also, you can use my GitHub repository for my blog post: ayushkumarshah.github.io as a reference in any point of the article. I have followed the same steps mentioned in this series to create my blog website that you are seeing right now.
If you want to visit any specific parts of the article, you can do so from the links below.
- Part 1: Setting up Pelican - Installation and Theme
- Part 2: Writing content using Markdown
- Part 3: Hosting your website to GitHub Pages and custom domain
- Part 4: Setting up Travis-CI for automating deployment
- Part 5: Integrate Disqus comments and Google Analytics with Pelican
Or, go to the home-page of the article.
Leave a Comment


DELETE /user/emails
You can include a single email address or an array of addresses:
[<EMAIL_ADDRESS><EMAIL_ADDRESS>]
Status: 204 No Content


C D E F G I L M P Q R S T U V
All Classes All Packages
All Classes All Packages
All Classes All Packages
G
- getAllClasses() - Method in class com.alex.sms.controller.ClassController
-
Gets all classes.
- getAllGrades() - Method in class com.alex.sms.controller.GradeController
-
Gets the all grades.
- getAllLevels() - Method in class com.alex.sms.controller.LevelController
-
Gets the all levels.
- getAllQuarters() - Method in class com.alex.sms.controller.QuarterController
-
Gets the all quarters.
- getAllRegistrations() - Method in class com.alex.sms.controller.RegistrationController
-
Gets the all registrations.
- getAllReportCardDetails() - Method in class com.alex.sms.controller.ReportCardDetailController
-
Gets the all report card details.
- getAllReportCards() - Method in class com.alex.sms.controller.ReportCardController
-
Gets the all report cards.
- getAllSchools() - Method in class com.alex.sms.controller.SchoolController
-
Gets the all schools.
- getAllSchoolYears() - Method in class com.alex.sms.controller.SchoolYearController
-
Gets the all school years.
- getAllStudents() - Method in class com.alex.sms.controller.StudentController
-
Gets the all students.
- getAllSubjects() - Method in class com.alex.sms.controller.SubjectController
-
Gets the all subjects.
- getAllTeachers() - Method in class com.alex.sms.controller.TeacherController
-
Gets the all teachers.
- getAllTeachings() - Method in class com.alex.sms.controller.TeachingController
-
Gets the all teachings.
- getAppreciation() - Method in class com.alex.sms.model.Grade
-
Gets the appreciation.
- getAppreciation() - Method in class com.alex.sms.model.ReportCard
-
Gets the appreciation.
- getAppreciation() - Method in class com.alex.sms.model.ReportCardDetail
-
Gets the appreciation.
- getC() - Method in class com.alex.sms.model.Registration
-
Gets the c.
- getC() - Method in class com.alex.sms.model.Teaching
-
Gets the c.
- getClass(Integer, Model) - Method in class com.alex.sms.controller.ClassController
-
Gets the class.
- getEndDate() - Method in class com.alex.sms.model.Quarter
-
Gets the end date.
- getForename() - Method in class com.alex.sms.model.Person
-
Gets the forename.
- getGrade(Integer) - Method in class com.alex.sms.controller.GradeController
-
Gets the grade.
- getId() - Method in class com.alex.sms.model.Class
-
Gets the id.
- getId() - Method in class com.alex.sms.model.Grade
-
Gets the id.
- getId() - Method in class com.alex.sms.model.Level
-
Gets the id.
- getId() - Method in class com.alex.sms.model.Person
-
Gets the id.
- getId() - Method in class com.alex.sms.model.Quarter
-
Gets the id.
- getId() - Method in class com.alex.sms.model.Registration
-
Gets the id.
- getId() - Method in class com.alex.sms.model.ReportCard
-
Gets the id.
- getId() - Method in class com.alex.sms.model.ReportCardDetail
-
Gets the id.
- getId() - Method in class com.alex.sms.model.School
-
Gets the id.
- getId() - Method in class com.alex.sms.model.SchoolYear
-
Gets the id.
- getId() - Method in class com.alex.sms.model.Student
-
Gets the id.
- getId() - Method in class com.alex.sms.model.Subject
-
Gets the id.
- getId() - Method in class com.alex.sms.model.Teacher
-
Gets the id.
- getId() - Method in class com.alex.sms.model.Teaching
-
Gets the id.
- getLevel() - Method in class com.alex.sms.model.Class
-
Gets the level.
- getLevel(Integer) - Method in class com.alex.sms.controller.LevelController
-
Gets the level.
- getName() - Method in class com.alex.sms.model.Class
-
Gets the name.
- getName() - Method in class com.alex.sms.model.Level
-
Gets the name.
- getName() - Method in class com.alex.sms.model.Person
-
Gets the name.
- getName() - Method in class com.alex.sms.model.School
-
Gets the name.
- getName() - Method in class com.alex.sms.model.Subject
-
Gets the name.
- getNumber() - Method in class com.alex.sms.model.Quarter
-
Gets the number.
- getQuarter() - Method in class com.alex.sms.model.ReportCard
-
Gets the quarter.
- getQuarter(Integer) - Method in class com.alex.sms.controller.QuarterController
-
Gets the quarter.
- getRegistration() - Method in class com.alex.sms.model.ReportCard
-
Gets the registration.
- getRegistration(Integer) - Method in class com.alex.sms.controller.RegistrationController
-
Gets the registration.
- getReportCard() - Method in class com.alex.sms.model.Registration
-
Gets the report card.
- getReportCard() - Method in class com.alex.sms.model.ReportCardDetail
-
Gets the report card.
- getReportCard(Integer) - Method in class com.alex.sms.controller.ReportCardController
-
Gets the report card.
- getReportCardDetail() - Method in class com.alex.sms.model.Grade
-
Gets the report card detail.
- getReportCardDetail(Integer) - Method in class com.alex.sms.controller.ReportCardDetailController
-
Gets the report card detail.
- getSchool() - Method in class com.alex.sms.model.Class
-
Gets the school.
- getSchool(Integer) - Method in class com.alex.sms.controller.SchoolController
-
Gets the school.
- getSchoolYear() - Method in class com.alex.sms.model.Class
-
Gets the school year.
- getSchoolYear() - Method in class com.alex.sms.model.Quarter
-
Gets the school year.
- getSchoolYear(Integer) - Method in class com.alex.sms.controller.SchoolYearController
-
Gets the school year.
- getStartDate() - Method in class com.alex.sms.model.Quarter
-
Gets the start date.
- getStudent() - Method in class com.alex.sms.model.Registration
-
Gets the student.
- getStudent(Integer, Model) - Method in class com.alex.sms.controller.StudentController
-
Gets the student.
- getSubject() - Method in class com.alex.sms.model.Teaching
-
Gets the subject.
- getSubject(Integer) - Method in class com.alex.sms.controller.SubjectController
-
Gets the subject.
- getTeacher() - Method in class com.alex.sms.model.Teaching
-
Gets the teacher.
- getTeacher(Integer) - Method in class com.alex.sms.controller.TeacherController
-
Gets the teacher.
- getTeaching() - Method in class com.alex.sms.model.ReportCardDetail
-
Gets the teaching.
- getTeaching(Integer) - Method in class com.alex.sms.controller.TeachingController
-
Gets the teaching.
- getTimestamp() - Method in class com.alex.sms.model.Registration
-
Gets the timestamp.
- getValue() - Method in class com.alex.sms.model.Grade
-
Gets the value.
- GlobalDefaultExceptionHandler - Class in com.alex.sms.controller
-
The global default exception handler.
- GlobalDefaultExceptionHandler() - Constructor for class com.alex.sms.controller.GlobalDefaultExceptionHandler
- Grade - Class in com.alex.sms.model
-
The Class Grade.
- Grade() - Constructor for class com.alex.sms.model.Grade
-
Instantiates a new grade.
- Grade(Integer, ReportCardDetail, double, String) - Constructor for class com.alex.sms.model.Grade
-
Instantiates a new grade.
- GradeController - Class in com.alex.sms.controller
-
The Class GradeController.
- GradeController() - Constructor for class com.alex.sms.controller.GradeController
- gradeIndex(Model) - Method in class com.alex.sms.controller.GradeController
-
Grade index.
- GradeNotFoundException - Exception in com.alex.sms.exception
-
The Class GradeNotFoundException.
- GradeNotFoundException() - Constructor for exception com.alex.sms.exception.GradeNotFoundException
- GradeRepository - Interface in com.alex.sms.repository
-
The Interface GradeRepository.
All Classes All Packages


| Summary | |||
|---|---|---|---|
| Quantity | Purchase Value | Sales Value | |
|
Transferred Stocks (Received Stocks) |
{{grandTotal.totalReceivedQuantity | number: '1.0-2' }} | {{grandTotal.totalReceivedPurchaseValue | Currency}} | {{grandTotal.totalReceivedSalesValue | Currency }} |
|
In-Transition Stocks (Not Received Stocks) |
{{grandTotal.totalTransitionQuantity | number: '1.0-2' }} | {{grandTotal.totalTransitionPurchaseValue | Currency}} | {{grandTotal.totalTransitionSalesValue | Currency }} |
| Total Stocks | {{grandTotal.grandTotalTransferredQuantity | number: '1.0-2' }} | {{grandTotal.grandTotalPurchaseValue | Currency}} | {{grandTotal.grandTotalSalesValue| Currency }} |


Soufflé lemon drops cotton candy bear claw donut apple pie icing tootsie roll toffee. Chupa chups sweet roll toffee liquorice. Carrot cake carrot cake jujubes oat cake cupcake jujubes. Cake jelly-o dragée. Soufflé croissant fruitcake apple pie gummies powder candy sweet roll.
Marzipan cheesecake cake pudding cheesecake icing. Wafer cotton candy carrot cake tiramisu carrot cake chocolate bar. Chocolate gingerbread sugar plum powder cake pastry fruitcake sweet roll cupcake. Bonbon macaroon tart carrot cake chocolate cake pastry.


Your Code Has Bugs
And That's OK
But Here's How to Fix It
Brian Gates
(I work here)
Crash Course ~ Workshop
-
Varying experience levels
-
Focus on one idea
Schedule
3.times do
-
I show a few slides
-
You debug code
-
We talk about it
"60% of coding time is spent debugging"
-Conrad Irwin
The Developers Who Made Those Tools Are Really Good.
Your Turn
$ git clone https://github.com/bgates/railsconf2016
$ cd debugging_blackjack
$ git checkout -b broken_card
$ ruby spec/card_spec.rb
Here's What I Thought
-
that was straightforward
-
bc spec said *exactly* what was wrong
-
specified *inputs and outputs*
-
spec for small section of code
Sandy Metz' Rules
(Abridged)
-
classes <= 100 lines
-
methods <= 5 lines
-
methods <= 4 parameters
Your Turn
Pair Up
-
Person whose first name is (alphabetically) 2nd, types
-
Other person says what to type
-
Typist can give suggestions when asked
Your Turn
$ git checkout -b broken_deck
$ ruby spec/deck_spec.rb
How Does This Usually Feel?
EEEE
1) Error:
Deck::deal#test_0001_returns a card:
NoMethodError: undefined method `shuffle!' for nil:NilClass
~/debugging_blackjack/lib/deck.rb:36:in `add_cards'
~/debugging_blackjack/lib/deck.rb:10:in `initialize'
spec/deck_spec.rb:5:in `new'
spec/deck_spec.rb:5:in `block (2 levels) in '
2) Error:
Did This Feel Different?
Why?
 You will never
figure this out. You're never going to be
any good at this.
The Error Message Wants to Help
Read it! And recognize patterns
-
undefined method for nil? Probably an instance variable problem
-
ArgumentError? You used too many or too few
-
NameError? Probably a typo
-
Esoteric? Google it!
Your Turn
$ cd ../blackjack_on_rails
$ bundle install
$ rails s
# visit localhost:3000/
A Couple of Gems
-
Quiet Assets
-
Better Errors
Why It's OK
-
There are bugs in code no matter who wrote it
-
Your Code Is Not You
How To Fix It
-
Write focused code
-
Focus on writing code
-
Use the tools
-
testing, rubber duck, our friend the error message, google, pry
There Are No Magic Bullets
You Don't Need Them


{% extends "tbase.html" %} {% load i18n %} {% block extrahead %} {% endblock %} {% block title %}{% trans "Password Reset" %}{% endblock %} {% block content %}
{% trans "Forgotten your password?  %}
{% trans "Note" %}: {% blocktrans %}Please contact us if you have any trouble resetting your password.{% endblocktrans %}


Yearly GDP of Greece (in M. Euro)
Yearly Unemployment Rates in Greece (in %)
Yearly GDP of European Nations (in M. Euro)


< Back Home
var config1 = {
"type": "bar",
"url": "https://servicesqa.arcgis.com/97KLIFOSt5CxbiRI/arcgis/rest/services/Crashes_in_the_District_of_Columbia/FeatureServer/0",
"query": {
"orderByFields": "EXTRACT(MONTH from REPORTDATE)",
"groupByFieldsForStatistics": "EXTRACT(MONTH from REPORTDATE)",
"outStatistics": "[{'statisticType':'sum','onStatisticField': 'MAJORINJURIES','outStatisticFieldName': 'MAJORINJURIES'},{'statisticType':'sum','onStatisticField': 'MINORINJURIES','outStatisticFieldName': 'MINORINJURIES'}]"
},
"mappings":{
"category": {"field": "EXPR_1", "label": "Month"},
"series": [
{ "field": "MINORINJURIES", "label": "Minor Injuries"},
{ "field": "MAJORINJURIES", "label": "Major Injuries"}
]
}
}
showChart("chartdiv1", config1);
var config2 = {
"type": "bar",
"url": "https://servicesqa.arcgis.com/97KLIFOSt5CxbiRI/arcgis/rest/services/Crashes_in_the_District_of_Columbia/FeatureServer/0",
"query": {
"orderByFields": "EXTRACT(MONTH from REPORTDATE)",
"groupByFieldsForStatistics": "EXTRACT(MONTH from REPORTDATE)",
"outStatistics": "[{'statisticType':'sum','onStatisticField': 'PEDESTRIANSINVOLVED','outStatisticFieldName': 'PEDESTRIANSINVOLVED'},{'statisticType':'sum','onStatisticField': 'CYCLISTSINVOLVED','outStatisticFieldName': 'CYCLISTSINVOLVED'}]"
},
"mappings":{
"category": {"field": "EXPR_1", "label": "Month"},
"group": true,
"series": [
{ "field": "PEDESTRIANSINVOLVED", "label": "Pedestrians"},
{ "field": "CYCLISTSINVOLVED", "label": "Cyclists"}
]
}
}
showChart("chartdiv2", config2);


In order to view customized data products, you will be required to create an account and login to the DRS system.
Login >In order to view customized data products, you will be required to create an account and login to the DRS system.
Login >In order to view customized data products, you will be required to create an account and login to the DRS system.
Login >In order to view customized data products, you will be required to create an account and login to the DRS system.
Login >


Below you'll find some examples of checkboxes and layout options using the grid (rows and columns), check the forms section for more form elements or head over to bootstrap docs for more info and examples.
We use a standard input element with type="checkbox"
for checkboxes but we need to wrap it in a div to get the right style for the different states.
Use rows and columns to create a responsive layout, in the example below checkboxes will be placed inline on medium sized screens and up. On smaller screens the checkboxes will stack on top of each other, test by resizing the window. Use one of the following utility classes .my-*
, .mb-*
or .mt-*
to add spacing between the different options, ie. mb-2 mb-md-0
to get a small bottom margin on small screens and below.
The slide toggle works just like a normal checkbox and uses the same markup and bindings, to make it look like a slide toggle just add the class custom-slide-toggle
.


Update!
Per knotty66’s suggestion on Hacker News, I added measurements with NFS on VirtualBox instead of Shared Folders, which speed it up significantly.
Update 2!
joevandyk points out that NFS Shared Folders can help on VMware Fusion too. Added measurements, which shave off a second or two on app boot. Joe also tipped us off to this forum thread detailing other’s experiences: Shared folders slow using VMWare provider as well as VirtualBox
Overview
Web development on a VM presents plenty of benefits over developing on your host machine: developer environments are easy to distribute, can closely match production, and can be recreated at will. Vagrant already handles many headaches around using VMs seamlessly, such as networking and shared filesystems. However, many potential users worry about the performance hit of developing in a VM.
I decided to quantify the difference for typical tasks using my ‘native’ OS X machine, Vagrant with the VirtualBox provider, and Vagrant with the (paid) Fusion provider atop the (paid) VMware Fusion.
Test Setup
I’m using my relatively dinky 2012 MacBook Air - it has a Core i5 chip, an SSD, and 8GB of memory. I was aiming to measure the difference between machines in typical web development tasks, so don’t take these numbers as absolutes.
I chose to do my measurements on the Discourse forum application. It’s written in Ruby on Rails and has a fairly large test suite that’s comparable in size and complexity to most company’s applications. Also, it’s free and open source, so please do try to reproduce these results yourself!
For both VirtualBox and Fusion, I allocated 2GB of RAM to the guest machine. I tried these tests again using only 1GB, but it didn’t make a significant difference. The guests are running a typical set of services: redis, postgres, nginx.
VirtualBox was also tested with NFS instead of Shared Folders, which has speed benefits outlined here: http://docs-v1.vagrantup.com/v1/docs/nfs.html However, you might not be able to use it if your host machine doesn’t support NFS.
Application boot time
I measured the boot time of the application via the following script:
time `bundle exec script/rails runner "0"`
Application boot time is one serious source of friction for developers, especially if you’re doing test-driven development (which you should be!). Note i’m using Ruby 2.0.0, which improves the performance of the require
method significantly over 1.9.3. 10 seconds is a heck of a long time to wait for the app to start - if you’re interested in improving this check out nailgun (JRuby), spork and zeus.
I ran the script three times on each machine and recorded the wall clock time:
Host Machine:
real 0m9.173s
real 0m8.739s
real 0m8.823s
VirtualBox w/ Shared folders:
real 0m21.764s
real 0m19.342s
real 0m20.674s
VirtualBox w/ NFS:
real 0m9.500s
real 0m8.669s
real 0m8.625s
VMware Fusion w/ Shared Folders:
real 0m10.587s
real 0m10.095s
real 0m10.445s
VMware Fusion w/ NFS:
real 0m8.315s
real 0m8.781s
real 0m8.445s
Time for total test suite
I measured the time it took to run the entire Discourse test suite by simply calling:
bundle exec rake spec
The Discourse suite has 2672 individual test cases.
Host Machine:
Finished in 4 minutes 19.64 seconds
Finished in 3 minutes 52.26 seconds
Finished in 4 minutes 1.03 seconds
VirtualBox w/ Shared Folders:
Finished in 5 minutes 31.31 seconds
Finished in 5 minutes 12.14 seconds
Finished in 5 minutes 32.54 seconds
VirtualBox w/ NFS:
Finished in 4 minutes 42.27 seconds
Finished in 4 minutes 16.27 seconds
Finished in 4 minutes 43.79 seconds
VMware Fusion w/ Shared Folders:
Finished in 4 minutes 16.68 seconds
Finished in 4 minutes 23.95 seconds
Finished in 4 minutes 22.87 seconds
VMware Fusion w/ NFS:
Finished in 4 minutes 20.28 seconds
Finished in 4 minutes 15.43 seconds
Finished in 4 minutes 10.78 seconds
Therefore…
VMware Fusion and VirtualBox+NFS are considerably faster than VirtualBox+Shared Folders, and only slightly behind using the host machine.
Using either VM solution in this case also has the nice advantage over the host machine in that you can halt the VM when you’re not developing to free up all its resources!
Please let us know at<EMAIL_ADDRESS>about your own experiences with this!
Addendum
I looked a little more into I/O performance for routines like accessing the database that would affect the speed of integration tests. pgbench ships with postgres and is a simple albeit synthetic way to measure postgresql performance. In each case the postgres configuration is the default with shared_buffers
set to 24MB and autovacuum off. The script I used:
createdb pgbench
pgbench -i -s 10 pgbench # use scalefactor = 10
pgbench -T 600 pgbench # collect results over 10 minutes
Host Machine:
transaction type: TPC-B (sort of)
scaling factor: 10
query mode: simple
number of clients: 1
number of threads: 1
duration: 600 s
number of transactions actually processed: 673985
tps = 1123.322847 (including connections establishing)
tps = 1123.328761 (excluding connections establishing)
VirtualBox:
number of transactions actually processed: 421642
tps = 702.709747 (including connections establishing)
tps = 702.713031 (excluding connections establishing)
VMware Fusion:
number of transactions actually processed: 558332
tps = 930.552663 (including connections establishing)
tps = 930.557223 (excluding connections establishing)
So in raw database performance, VMWare is about 20% slower than the host machine, and VirtualBox is 20% slower still - these differences didn’t correlate to the real-world cases above, though.


| Figure 1 |
Shared Socioeconomic Pathway (SSP) adaptation and mitigation ... |
| Figure 2 |
Differences in building blocks across SSPs. Basic characteri ... |
| Figure 3 |
Variation in health system leadership and governance conditi ... |
| Figure 4 |
Variation in health workforce conditions across SSPs. |
| Figure 5 |
Variation in health information systems across SSPs. |
| Figure 6 |
Variation in essential medical products and technologies acr ... |
| Figure 7 |
Variation in health system service delivery conditions acros ... |
| Figure 8 |
Variation in climate and health financing conditions across ... |
| Figure 9 |
Sustainable Development Goal (SDG) 3 and key climate-relevan ... |


Bicycle-Mania!
Where are you starting from?
Where would you like to bike to?
When would you like to bike?
What is the search radius you are willing to travel to get a bike?


--- date: 2012-12-18T00:00:00Z published: true title: Man says he had shooter in his sights, but chose safety over firing url: /2012/12/18/man-says-he-had-shooter-in-his-sights-but-chose-safety-over-firing/ ---
Meli earlier told a KGW reporter that he heard three gunshots, and then positioned himself behind a pillar in the mall. Meli said he saw the gunman working on his rifle, pulling a charging handle and hitting the side of the weapon.Meli said he then pulled out his Glock 22 pistol and aimed it at the suspect. But when he saw someone move behind Roberts, Meli decided against firing, concerned he might hit an innocent person.
Meli also told KGW that Roberts appeared to spot him and that afterward, Meli heard only one more shot, and suspects it was the one Roberts used to kill himself.


${navigation}
SINGUP
Name
Email address
We'll never share your email with anyone else.
Password
SignUp
Login
${footer}


WITNESS LIST Public Education Committee May 6, 2003-2:00P HB 1038 For: Burnett, Tom (Apple Computer) HB 2635 For: Anderson, David (San Antonio ISD, and Port Arthur ISD) SB 900 For: Gustafson, Lindsay (Texas Classroom Teachers Association) Raab, Ted Melina (Texas Federation of Teachers) SB 976 For: Gustafson, Lindsay (Texas Classroom Teachers Association) Whitsett, JoHannah (Association of Texas Professional Educators) SB 1108 For: Gustafson, Lindsay (Texas Classroom Teachers Association) SB 1394 For: Douglass, Cathy (Texas Association of School Boards, and Texas Association of School Administrators) Eckhart, Harley (Texas Elementary Principals & Supervisors Association) Whitsett, JoHannah (Association of Texas Professional Educators) On: Bacon, Tim (TSTA) Gustafson, Lindsay (Texas Classroom Teachers Association) Raab, Ted Melina (Texas Federation of Teachers)


The Turks and Caicos Government operates a radar surveillance station that monitors vessels entering and departing their territorial waters. Vessels entering or leaving the twelve mile limit can contact the station by calling “Provo Radio”. The station operates 24/7 on VHF Channels 16 and 64 and also broadcasts navigational warnings and weather forecasts.
The radar and radio transmitters are mounted on a 40 meter tower located in the South Dock area on Providenciales at 21° 44.44′ N/72° 16.26′ W
The SailClear advance web notification service for clearance is operational.
When within range of the harbour, try to call the Harbour Master on VHF channel 16. They do not however always monitor the radio, particularly if it is a cruise ship day.
Boats waiting to clear-in can either anchor in the designated anchorage zone or moor alongside the dock and await the boarding officer. Whilst the anchorage is crowded, it is preferable to the dock which is concrete and very high with widely-spaced rusty bollards and rubber tyres. Not designed for yachts.
If necessary, the skipper should go ashore to the office to initiate clearance, but no one else must leave the boat until clearance is complete.
Boarding officers will also give information regarding National Parks Regulations and details of the regulations that affect cruising while in national waters.
Clearance Papers
On arrival you will be required to complete a Temporary Importation Declaration (Form C108). This is the official entrance declaration for the duration of your stay, but is only valid for seven (7) days. This form captures details pertaining to crew, passengers and the vessel, and costs $50.
Subsequently, if the intended stay in the Turks and Caicos will exceed seven (7) days, the skipper is then required to purchase a Cruising Permit (Form C113) which is valid for an additional three (3) months (90 days) at a cost of $300.
No more than two 90 day cruising permits will be issued in one calender year. (See Fees below).
Clearance formalities can be completed at the following ports and marinas:
Providenciales:
South Dock (for Sapodilla Bay anchorage), South Side Marina, Caicos Marina and Shipyard, Turtle Cove Marina, Turks and Caicos YachtClub (Leeward).
South Caicos:
Government Dock, Seaview Marina
Grand Turk:
Government Freighter Wharf (south end of the island), Coburn Town Dock (1/4 mile north of radio tower), Flamingo Cove Marina.
Some of the marinas that have difficult entrances can be contacted on channels 16 or 68, either for advice, or they may send out a pilot boat, for which a charge is usually made.
Departure Clearance
All skippers are required to complete an Application for Clearance for Departure (Form C124) for clearance to their next Port of Call, which will cost $50 USD.
Note: Debit & Credit Cards are now accepted for all transactions.
Last updated June 2016.
All visitors require a passport which is valid for the length of their stay.
Visas are not required for most visitors. See www.turksandcaicostourism.com/entry-requirements.html for full list of countries.
Entry is granted for a stay of 90 days and this can be renewed once only.
Last updated April 2015.
Note that only two cruising permits may be issued in the same calendar year.
Dry-docked periods are exempt.
Yachts remaining in the Turks and Caicos Islands longer than 6 months now pay an import tax of 12%.
Any Guns and ammunition aboard must be handed over to the Customs officer, with a proper receipt received. These are then returned by Customs when the vessel is cleared outwards from TCI. 24 hours' notice must be given to retrieve firearms on departure.
Boats in transit can have parts and equipment shipped duty-free. There are several direct flights every week to the USA and UK, also two air freight flights weekly to Florida. It is advisable to check with Customs first for the arrangements required and to check that no duty is due.
Firearms, including those charged with compressed air, must be declared and brought in to Customs with you when you clear. Unless you have prior approval in writing from the Commissioner of Police, Customs will impound them and store them for you at the police station until your departure.
Spearguns and Hawaiian slings are also illegal and must be brought in to Customs when you clear.
The importation of controlled drugs and pornography is illegal in the Turks and Caicos Islands.
Last updated June 2016.
No vaccinations are required for entry.
Medical facilities are limited. Serious cases are usually evacuated to Miami or Nassau. There is a small hospital on Grand Turk and some private general practitioners on Providenciales.
ZIKA VIRUS ALERT: (September 2016) There have been recent safety alerts from the US State Department, UK Foreign Office, and Center for Disease Control (CDC) regarding travel to parts of Central and South America, Africa, southern Asia, the Caribbean, and the South Pacific islands. Both islands of the Turks & Caicos are an area of interest. There is growing concern about the rapid spread of the ZIKA Virus and the impact of the virus on pregnant women and babies. ZIKA is transmitted by mosquitos in tropical and sub-tropical climates, and there is currently no cure or vaccine. This situation is evolving rapidly, so please refer to the CDC’s dedicated website if you are intending to cruise in one of the effected areas.
Entrance (Inward)
Temporary Importation Declaration (first 7 days) - $50 USD.
Cruising Permits (Extended Stay)
Cruising Permit (90 days) - $300 USD.
Note: (Cruising Permits are only granted and charged to those vessels which intend to remain in the territory for a period exceeding seven (7) days).
Note: No more than two (2) 90 day cruising Permits will be issued in one calendar year.
Clearance (Outward)
Application for Clearance for Departure (valid for 24hrs) - $50 USD.
Overtime Fees
Charges outside of regular working hours. (Normal working hours 8am-4:30pm, Mon –Thurs) & (8am-4pm, Friday).
$10/hr on weekdays and $15/ hr on weekends.
Note: Overtime is only charged when the act of service is rendered outside of normal working hours.
Last updated June 2016.
Sport fishing without a permit is forbidden, as are spearguns, pole spears, Hawaiian slings and using scuba gear to take any marine life. Lobster may be taken in season (August 1 to March 31) by hand or noose.
Swim wear worn other than poolside or at the beach is frowned upon.
There is no quarantine for visiting pets. A veterinary certificate stating good health and a current rabies vaccination is required. The Public Health Inspector will examine the animal upon arrival.


College is expensive. Education doesn't have to be.
PragerU: Free Videos. Free Minds.There are useless things money can buy. For a free education about the timeless values that made America great, there's PragerU.  I mean it’s only right.
After they graduate with debt, student loan debt even prevents you from working. Especially, these major companies would like to hire foreigners instead of American college graduates.
Maybe I was too much of a geek but I heard all kinds of view points from ungodly/secular agendas in the university. It didn't phase me HOWEVER...if I went to college now after the rise and craziness of social media, I'd be confused and all over the place. So yea, if my nieces and nephews were to ask my opinion, I would say steer clear from universities for now.
BECAUSE OF THE ABUNDANCE of "bad news" we are constantly exposed to, I try to make a daily GOOD NEWS Encouragement post from God's Word; and the posts can be found on my profile page.
I invite you to "Follow", go to my page to read, and then "Echo" the posts so as to encourage others.
The cost of a college “education” ISN’T worth it in this day and age.
Name Hidden·@Private User4 days ago
I learned all I want to know about interpretive dance from Squidward and Spongebob.
Name Hidden·@Private User4 days ago
Today is a big day for Georgia Patriots God bless you n keep you it is time to vote January 6 is tomorrow God is watching and with you this month will be filled with doubt hopelessness despair n loss do not let these fillings take root in your hart our soul they are the seeds planted by those who wish we would let this great nation die Under Socialism n communism n renounce our freedom the path is clear and all will be well have faith in the great Revival in God n our great Republic we r bless to be in these times to have the great honor to save America from those who would kill her IN GOD WE TRUST sometimes the dragon eats you and sometimes you slay that dragon this is life Always strive to be a better you then yesterday GOD, Country, Corp IN GOD I TRUST Semper Fi
They we sure k ow now they teach lies and you paid for it! Do you want to got to a school that let's/encourages students to push, yell at and hit teachers when they teach truth and
This. I am sick of all the PU totally pushing fracking. They want me to frack. They want you to frack. They want everyone to frack and buy fracked things.
We need to stop going in debt for the privilege of overpriced indoctrination centers teaching our own kids to hate us and to hate America, afterwards coming out with angst and nothing learned to financially support themselves, but having huge student loans to burden for decades.
Can be. For engineering accounting maybe not. Gender studies for sure is a waste. The fact that one can get a student loan for gender studies or art history says all we need to know
I totally agree!
Damn right!!
Student loans racking up smh....
The main issue is people that go to college and leave without pursuing their career that they study in.
instead they end up flipping burgers and cooking fries 🤷♂
The Totalitarian Democrat schools create the new modern day slaves
🙄🙄🙄
That’s not bad I charge 5,000 a semester for ancient history of shadow puppetry interpretation.
After they graduate with debt, student loan debt even prevents you from working. Especially, these major companies would like to hire foreigners instead of American college graduates.
Maybe I was too much of a geek but I heard all kinds of view points from ungodly/secular agendas in the university. It didn't phase me HOWEVER...if I went to college now after the rise and craziness of social media, I'd be confused and all over the place. So yea, if my nieces and nephews were to ask my opinion, I would say steer clear from universities for now.
BECAUSE OF THE ABUNDANCE of "bad news" we are constantly exposed to, I try to make a daily GOOD NEWS Encouragement post from God's Word; and the posts can be found on my profile page.
I invite you to "Follow", go to my page to read, and then "Echo" the posts so as to encourage others.
Blessings.
#DefundCollegeCampuses
The cost of a college “education” ISN’T worth it in this day and age.
I learned all I want to know about interpretive dance from Squidward and Spongebob.
Today is a big day for Georgia Patriots God bless you n keep you it is time to vote January 6 is tomorrow God is watching and with you this month will be filled with doubt hopelessness despair n loss do not let these fillings take root in your hart our soul they are the seeds planted by those who wish we would let this great nation die Under Socialism n communism n renounce our freedom the path is clear and all will be well have faith in the great Revival in God n our great Republic we r bless to be in these times to have the great honor to save America from those who would kill her IN GOD WE TRUST sometimes the dragon eats you and sometimes you slay that dragon this is life Always strive to be a better you then yesterday GOD, Country, Corp
IN GOD I TRUST
Semper Fi
They we sure k ow now they teach lies and you paid for it! Do you want to got to a school that let's/encourages students to push, yell at and hit teachers when they teach truth and
PragerU is not an educational facility. It is the propaganda arm of the fracking industry.
We need to stop going in debt for the privilege of overpriced indoctrination centers teaching our own kids to hate us and to hate America, afterwards coming out with angst and nothing learned to financially support themselves, but having huge student loans to burden for decades.
Going to college is economic suicide.
Love your videos!! Just sent $20 your way a few days ago. Keep it up!
Your videos are wonderful!


{{ define "main" }}
We bill only for the bandwidth. You are paying only for what your website uses and nothing more!
| FREE | Startup | Business | Advanced | Enterprise | Open Source | |
|---|---|---|---|---|---|---|
| Pricing | $0 | $5/month | $25/month | $80/month | Custom pricing | $0 |
| Bandwidth | 2GB | 10GB | 50GB | 200GB | Unlimited | Not Supported |
| Image Processing | Unlimited | Unlimited | Unlimited | Unlimited | Unlimited | Full functionality |
| Billing Period | Not Billed | Monthly | Monthly | Monthly | Monthly/Annually | Not Billed |
| CDN | Supported | Supported | Supported | Supported | Supported | Not Supported |
| Custom Domain Name | Supported | Supported | Supported | Supported | Supported | Not Supported |
| SLA | Not Supported | Supported | Supported | Supported | Supported | Not Supported |
| Automated Workflow API calls | 10 | 100 | 200 | 500 | Unlimited | Not Supported |
| Integration Support | Contact us | Free | Free | Free | Free | Contact us |
| Issues Support | 1-3 Days | 5-8 Hours | 3-5 Hours | 1-3 Hours | 24/7 Monitoring | Github Issues |
Please, learn more about Pixboost Billing in the Billing Section of the Documentation.
We are providing Out-of-the-box Cloud Service, therefore we try to make as fewer limitations as possible.
*If you need more API Keys or Image Sources please contact us directly and we will add more for your account.
If you are looking into more than 200 GB per month, please contact us directly because you are eligible for a special offer:


IronRuby 0.5 was released yesterday. You can download it on codeplex. This post will explain how you setup your ironruby environment to use it for testing existing CLR based assemblies. We’ll touch installing gems using rake and most importantly writing a test for a CLR based class where we’ll mock out the dependencies.
The first thing you need to do is download IronRuby. After downloading you can extract it to a location on your hard drive. I extracted mine to C:\ironruby
Now we need to add the path to ir.exe to our PATH variable so we can use it from the command-line. And that is all there is to it to install ironruby on your machine. Now we need to get the necessary gems onto our system. We’ll need bacon and caricature.
Open a console and type the following:
igem list will show you a list of the gems you have installed on your system.
igem install will fetch and install a gem on your system. To install the gems we’re going to need we need to execute the command
igem install bacon caricature
That will result in the following output:
+ C:\tools
» cmd
Microsoft Windows [Version 6.1.7100]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\tools>where ir
C:\ironruby\bin\ir.exe
C:\tools>exit
+ C:\tools
» igem list
*** LOCAL GEMS ***
+ C:\tools
» igem install bacon caricature
Successfully installed bacon-1.1.0
Successfully installed caricature-0.6.0
3 gems installed
Installing ri documentation for bacon-1.1.0...
Installing ri documentation for caricature-0.6.0...
Installing RDoc documentation for bacon-1.1.0...
Installing RDoc documentation for caricature-0.6.0...
If you would try to execute ibacon at this point that would work. We’ll need to create 2 small files to get ibacon to work. In the bin directory of ironruby I created 2 files one called ibacon and the other one is ibacon.bat
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
1 2 3 |
|
At this point you’re ready to start writing specs with bacon and caricature. Let’s look at an example I wrote for the controller factory for ironruby mvc.
We’re going to test the following C# code.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
I generally create a bacon_helper.rb file where I group my requires and helper functions etc. In the case of this test I have the following in the bacon_helper.rb:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
At this point we’re ready to start writing the test. create a file called sword_spec.rb and we’ll add the following content to the file.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
|
So now we’ve got 2 tests for our Sword class. The only thing that is left to do is to run the specs. You can do that by executing the ibacon command and passing it the file you want to test.
+ C:\dev\caricature
(master) » ibacon spec/sword_spec.rb
ClrModels::Sword
- should call survive_attack on the mock
- should return different results when expectation is defined with arguments
2 specifications (5 requirements), 0 failures, 0 errors


Harvesters
These are the harvesters that are configured for Land Registry that will perform a bulk import on a regular schedule
| Name | Type | Last activity | Status |
|---|---|---|---|
| Default | CKAN | Today | Ok |
| Inspire Geo Data | INSPIRE - WMS | Monday |
Failed
|


Join the Protest:
Save the ACA Sign Waving Event
Secrecy
Medicaid
Planned Parenthood
Tax Cuts
Loss of Coverage
Rising Premiums
Mental Health
Pre-existing Conditions
LGBTQ Support
Veteran Support
Create a Random Sign
Download My Sign
Preview:
Actual Size:


{% extends 'base.html' %} {% block content %} Professional Insights Add new customer Add new user Add new Campaign Reset Password {%endblock%}


WITNESS LIST Electric Utility Restructuring (Interim) Committee September 26, 1997-9:30A Electric Utility Restructuring For: Biedrzycki, Carol (TX Rose, Legal Services), Austin Fillmore, Robert (TX Utility Electric Co.), Dallas Jeffrey, Jim (self / school district), Houston Lanclos, Ron (TCCE), Houston Monus, John A. (self), Georgetown Moore, Julie (TCCE), Austin Moore, Michael R. (TX Retailers Assoc.), Austin Ramsey, Milton (Chevron), Houston Reilley, Bob (Enron Corp.), Austin Schaeffer, Steve (Houston Industries Inc), Houston Smith, Tom "Smitty" (Public Citizens), Austin Venable, Peggy (TXCSE), Austin On: Akers, Monte (TX Municipal League), Austin Alvarez, Ramon (Enviro. Defense Fund), Austin Briesemeister, Janee (Consumers Union), Austin Eminger, Randy (Center for Energy), Amarillo Fitzpatrick, James M. (AARP), Austin McClellan, Suzi (OPUC), Austin Pitman, Susan (American Lung Assoc.), Austin Seidlits, Curt (AECT), Austin Walsh, Judy (PUC, Commissioner), Austin Williams, Lora H. (Consumers Alliance), Austin Williams, Mike (TX Electric Corp.), Austin Wood, Pat (PUC, Chairman), Austin Zion, Mark (TX Public Power Assoc.), Austin Registering, but not testifying: For: Jones, Carol (self), Marble Falls Wright, Robert (Union Carbide), Victoria


CRC32 Function
CRC32 is an error-detecting function that uses a CRC32 algorithm to detect changes between source and target data. The CRC32 function converts a variable-length string into an 8-character string that is a text representation of the hexadecimal value of a 32 bit-binary sequence.
Syntax
CRC32(string)
Arguments
- string
-
A variable-length string.
Return Type
The CRC32 function returns an 8-character string that is a text representation of the hexadecimal value of a 32-bit binary sequence. The Amazon Redshift CRC32 function is based on the CRC-32C polynomial.
Example
The following example shows the 32-bit value for the string 'Amazon Redshift':
select crc32('Amazon Redshift'); crc32 ---------------------------------- f2726906 (1 row)


I am currently at SolarCity, saving the planet and building fast, scalable APIs for internal tools in Go and C#, deployed
in Docker containers. Checkout my LinkedIn profile for more information.
Creator and maker, fascinated by the Internet of Things and the Quantified Self, and the occasional charcoal or DIY candle. And I do my own hair & stunts.


←
Home
About
RSS
Brian Schrader
Me before entering a Twitter argument. http://gph.is/1eRvd1P
Glad to see that this case ended how it should have. The consequences are huge. http://bit.ly/1UgpGUC
This is my favorite thing this week. http://bit.ly/1Ru1mKn
Guns replaced with selfie sticks http://bit.ly/25k2aia
Work, now with breakfast! Order now!
End of a long, productive day. Now that nourishment has been consumed, it's time to relax. 🤖 beep
Well it will be in an hour, at least.
What time is it? Band practice time!
It's serious stuff. http://bit.ly/1NDPYRl
Can we all agree that there are too many proprietary chat apps, and bluetooth dongles?
🎶Configuring Postgres🎶
For reference, this is the keyboard in question. http://amzn.to/1TZK4sT
Got a new keyboard today; not used to split layouts. This might be a good motivator for me to learn to type correctly.
I'm really liking the iTunes update yesterday. What year is this?
Different topic: I'm really liking Swift. It's a little inconsistent at times (EAFP/LBYL) but it's really practical. http://www.oranlooney.com/lbyl-vs-eafp/
Not just for if you lock yourself out (which is huge) but if you want to go to your car and you left the keys at your desk or something.
Best advice I've ever gotten: Put a copy of your car key in your wallet.
And now, band practice. 🎶
Tried to take a time-lapse while bike riding. Took a slow-mo instead: 5 minutes of 240 glorious frames per second.
Remember the old days? http://bit.ly/1XjNBFp
←
Newer Posts
Older Posts
→


Conisder the observed episodes below :
| A, | south, | C, | $E1_A_SOUTH_C_R |
| C, | south, | $C_NS1 | $C_NS1_R |
| $E1_T3_NS, | exit, | X, | $E1_T3_NS_R |
| B, | east, | C, | $E2_B_EAST_C_R |
| C, | south, | $C_NS2, | $C_NS2_R |
| $E2_T3_NS, | exit, | X, | $E2_T3_NS_R |
| B, | east, | C, | $E3_B_EAST_C_R |
| C, | south, | $C_NS3, | $C_NS3_R |
| $E3_T3_NS, | exit, | X, | $E3_T3_NS_R |
| A, | south, | C, | $E4_A_SOUTH_C_R |
| C, | south, | $C_NS4, | $C_NS4_R |
| $E4_T3_NS, | exit, | X, | $E4_T3_NS_R |
What model would be learned from the above observed episodes?
From the observed episodes, we can see that we are total 2 instances where we are currently on State A. On both these instances,we take the action to go South to State C, and both times the agent acutally goes to the planned state which is C and hence T(A, south, C) = 2/2 = 1
From the observed episodes, we can see that we are total 2 instances where we are currently on State B. On both these instances,we take the action to go East to State C, and both times the agent acutally goes to the planned state which is C and hence T(B, east, C) = 2/2 = 1
From the observed episodes, we can see that we are total 4 instances where we are currently on State C. On all four of these instances,we take the action to go South to State E, and on $countE occasions the agent acutally goes to the planned state which is E and hence T(C, south, E) = $countE/4 = $c_ns_e_count
From the observed episodes, we can see that we are total 4 instances where we are currently on State C. On all four of these instances,we take the action to go South to State D, and on only $countD occasion the agent acutally goes to the planned state which is D and hence T(C, south, D) = $countD/4 = $c_ns_d_count
NOTE : For this question, the rewards, or the living penalty is irrelevant and the focus should be on the number of times an action is taken to reach a desired state and the number of times the desired state is actually reached


Rakesh Menon / Sumeet Chawla
Lalit Chandnani / Jamal Mohammed
Langoor is a web products and services company with offices in Sydney, Australia and Bangalore, India.
Ruby on Rails / Django / CodeIgniter
+
jQuery / Backbone etc.
JS, HTML === AngularJS
PHP/Python/Ruby === JavaScript (on NodeJS)
CodeIgniter/Django/Rails === ExpressJS
MySQL/Oracle/Postgre === MongoDB
An open-source document database
Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications.
Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications
A lightweight web application framework to help organize your web app into MVC architecture on the server side
+ a wide variety of community-contributed add-ons :)
AngularJS is what HTML would have been, had it been designed for building web-apps.
AngularJS is a powerful, client-side technology that provides a way of accomplishing really powerful things in a way that embraces and extends HTML, CSS and JavaScript, while shoring up some of its glaring deficiencies.


Postal
Postal is a security- and privacy-first mail service application.
But... your not authenticated
Please,
authenticate through space


Kochab jQuery Sea Creatures
Add sea creature
total count
name
size
type
speed
Orca
30ft
Whale
25mi/hr
Fish
little
delicious
quick little suckers


--- layout: post date: 2006-05-05 time: "09:00:00" authors: ["Greg Wilson"] title: "Revised Lecture on Teamware" tags: ["Curriculum"] ---
I've revised the Software Carpentry lecture on using team tools. I'd be grateful for feedback.


Caenorhabditis tropicalis (formerly sp. 11) is a androdiecious species belonging to the Elegans supergroup. The sequenced strain, JU1373, was isolated by Marie-Anne Felix from rotting torch ginger (Etlingeria elatior) flowers in La Reunion. The genome has been resequenced and is currently being reassembled. See below for more information.
C. tropicalis (sp. 11) was formally described in [1]. Discussion about morphological characters can be found in [2] (termed sp. 7 here). C. imperialis is the most closely related species [1].
Zoobank entry: E35C180C-08A8-4C91-8F44-390A6A29456E
CGC strain entry: JU1373
The raw data can be downloaded from either ENA or NCBI:
https://www.ebi.ac.uk/ena/data/view/PRJNA53597
https://www.ncbi.nlm.nih.gov/bioproject/PRJNA53597


Unreal footage of a guy falling on subway tracks and getting saved in the nick of time
by Rusty BlazenhoffThere are near misses and then there's this guy in Oakland, California who got saved just before a subway train creamed him. Wow!
BART's humble hero saves a passenger from fast approaching train. On Sunday, November 3, 2019, transportation supervisor, John O'Connor was working crowd control at the Coliseum Station after the Raiders game when an intoxicated passengers miss-stepped and fell into the trackway. John sprang into action and pulled him to safety.
(KQED)


Enter details below to add a patient
First Name
Last name
Select more diseases
Submit
Patients
First Name
Last Name
{% for patient in patients %}
{{patient.firstName}}
{{patient.lastName}}
{% endfor %}
Form 3
Just some text.
Form 4
Just some text.
Form 5
Just some text.
Form 6
Just some text.
Form 7
Just some text.
Form 8
Just some text.
Form 9
Just some text.
Form 1
Form 2
Form 3
Form 4
Form 5
Form 6
Form 7
Form 8
Form 9


|
|
|
|
FrontPage Run-Time Component PageYou have submitted a form or followed a link to a page that requires a web server and the FrontPage Server Extensions to function properly. This form or other FrontPage component will work correctly if you publish this web to a web server that has the FrontPage Server Extensions installed. Click the <Back> arrow to return to the previous page. |


Web Developer with the required technical ability to create, design and modify web content.
Capable of analyzing customer needs while working with teams and using software for manipulating multimedia content.
Ability to adapt and learn fast and adept at the application of all stages of web development.
Data-driven Digital Marketer with experience specializing in inbound marketing.
Drives traffic and boosts audience engagement with dynamic marketing strategies and campaigns.
Outstanding content creator with superior communication, interpersonal and public speaking skills.
Capable of working with little or no supervision individually or in a team.


Created for online viewers during the COVID-19 lockdown, Epic Hand Washing in the Time of Lost Narratives is a project commissioned for The Photographers’ Gallery Media Wall as part of the Data / Set / Match programme. Please wait while it loads.
EPIC HAND WASHING IN A TIME OF LOST NARRATIVES
was made by
xtine burrough
and
Sabrina Starnaman
with technical direction provided by
Dale MacDonald.
It was developed for
Unthinking Photography,
a resource from The Photographers’ Gallery that explores photography’s increasingly automated, networked life.


Networking Lab at Chandigarh University
Solidifying Chandigarh University in Next Generation Networking
CEACT works with you through each step of your project. Learn about our proof-of-concepts, consulting, training and project management services.
We accept projects in various networking areas. Find out how your company can collaborate with CEACT.
We've been busy! Take a look at CEACT's previous projects with SME, Partner and Member companies.
Interested in learning what CEACT's high-tech data centers are made of? Get an inside look at our infrastructure here.


Amanda Miller
Democrat
Senior Technical Support Specialist, Integral Consulting Inc.
I have taken courses in Geographical Information Systems and work with data management and GIS daily.
80031
Attached is the list of campaigns I have given to since 11/10/15: Amy McGrath, Andrew Yang, Beto O'Rourke, Joe Biden, Cory Booker, Doug Jones, Elizabeth Warren, Fair Fight, Inc., Faith Winter, Heidi Heitkamp, Jaime Harrison, Jessie Danielson, MJ Hegar, Randy Bryce, Richard Ojeda, Sara Gideon, Shannon Freshour, Tammy Story, and Tedra Cobb.
NA
While I am very interested in organizing, I have found the giving to organizations, up to this point has been the best way to help. I am interested in expanding my involvement.
As a native Coloradoan, I have appreciated that our state has been fairly evenly represented in the last decade or so. I want to make sure that all Coloradoans feel that they are being represented. I grew up in the mountains, and now live in the front range, so I understand the differences just over the divide. I am very passionate about fairness and compromise, and want everyone to feel that they have a voice. I have a lot of the skills that I think would be beneficial on this committee including GIS, data management, data visualization, and organizational management.
As I mentioned above, I have lived in several areas throughout the state, and understand that the needs of every community are not the same. I have lived in cities, as well as small mountain towns that rely on tourism. I understand the balance between environmental protection and the fact that our industries are found in those environments. I believe that having this larger perspective would serve me well in contributing to a fair and consensual outcome.
I work with large amounts of data daily and have extensive experience with spatial information as well as organizing projects and the needs of people. I believe myself to be very logical, and again, want everyone to feel heard. I am very excited that Colorado has taken on this approach to drawing the lines to ensure that every voice is heard even understanding the rules and limitations of the written law.
Female


I’m on a writing website, Critique Circle . I want to improve my fiction writing. Periodically they used to post “writing prompts” to give you a chance to practice writing something different.
The prompt was to “create a dialogue between an apprentice trying to learn a unique magic system with a master.” The following is my entry, which took first place.
The mouse sat in the middle of the table, nibbling at the corn.
“Make the mouse disappear.”
The apprentice placed his hands over the mouse and then pulled them back quickly. The mouse was still plainly visible. The apprentice sighed.
The master asked gently, “Why did it fail?”
“Because you didn’t have any reason to believe.”
“Exactly.
“But they’ll believe an avalanche from that cliff,” completed the apprentice.
There was a sound of glass scraping over stone, followed by a crash. The master’s head whirled around. Seeing nothing, he looked back and the mouse was gone. The apprentice was beaming.
The corn wobbled and a bite appeared. The mouse faded back into view. The apprentice let out a cry of despair and lowered his head into his hands.
“Don’t feel bad,” said his master. “If you had also hidden the corn, the Illusion would have worked. It was quite well done.”
The apprentice sat up a little straighter. “But it’s so hard to always figure out how to create a realistic chain of events on the fly.”
“Practice,” said the master, putting the mouse back in its cage. “Practice.”
He pulled out a heavy dagger and set it on the table. “Now to drive the point home, so to speak.”
The apprentice stared dubiously at the dagger when his master started speaking in low, soothing tones.
“I know this is hard. I know it’s frustrating. You can end all of this pain now if you just gently, gently push the dagger into your throat.”
The apprentice stared at the dagger and, as if it was acting of its own volition, he saw his hand pick it up and slowly start to raise it.
“No!” he shouted, slamming the dagger down on the table.  Watch your language. And that was a Glamour. It leads you to believe things. Why do you think it didn’t work?”
“Because I didn’t want to kill myself?”
“Exactly. A Glamour, like an Illusion, can only take someone where their belief will already take them. Were you already suicidal, I’d be before the tribunal explaining why I had a dead apprentice.”
The apprentice gulped, realizing just how close to death he had come.
The master patted his hand and said, “I can’t make you do anything you wouldn’t be inclined to already do. Like Illusions, it’s a subtle art. Getting your enemies drunk can help, but I couldn’t, for example, make you want to strangle your mother.”
“You’ve never had an argument with my mother.”
The master burst out laughing. “Fair point!”
The apprentice shifted in his seat, looking at the dagger. “But if magic is so subtle, there’s not much we can really do with it, is there?”
The master reached into his robes and pulled out a deck of cards. “Watch, and learn one of the most powerful tools we have at our disposal.”
He spread the cards on the table, face up. He then scooped them up and flipped them over, face down. And then he started cutting and shuffling the cards, passing them back and forth between his hands in intricate patterns. He fanned them out.
“Pick one, and don’t tell me what it is.”
The apprentice reached for the cards, his hands moving back and forth, and pulled a card out of the deck. It was the three of clubs.
“Will you forget the card you’ve chosen?”
“No.”
The master again shuffled the cards and instructed the apprentice to shove the card back in the deck. More shuffling ensued, followed by placing the cards on the table.
“Turn over the top card.”
The apprentice turned over the three of clubs. He stared in shock. He examined the card closely before turning over the rest of the cards and seeing they were all different. There was no other three of clubs in the deck.
“But,” stammered the apprentice, “how? I know it’s not possible, but I can’t see through your Illusion. That’s not how magic works!”
The master then spent the next half hour explaining false cuts, forcing cards, misdirection, and other ways of deceiving the person watching you with a deck of cards. And then, as if plucking the card from behind the apprentice’s ear, the master held up the three of clubs again. “It takes much practice, but the charlatans in Vegas have mastered the arts of deception. Learn these, convince your enemy that they’re all tricks, and they’ll start believing in your ‘impossible’ Illusions. Even the Vegas charlatans have something to teach us.”
The apprentice sank back in his chair, deep in thought. Finally, he looked up. “The charlatans are paid well for their tricks, yes?”
“The best charlatans are quite wealthy.”
A sly smile appeared on the apprentice’s lips. “We go to Vegas. They already expect the impossible. We’ll be the most famous magicians of all time. We’ll never have to beg for our supper again.”
The master sighed. “I’ve thought of that, but sadly, magic works on minds, not cameras.”


What it does
A partner and I created a mobile app that could turn a phone into a 3D mouse for Solidworks! The coolest feature of the project is the ability to interact with 3D CAD models by rotating the phone. There were two modes to this form of control. In the first mode (demonstrated in the gif above), the orientation of the CAD model on the screen matched the orientation of the phone. In the second mode, rotating around the model was toggled by tilting the phone past certain thresholds (ie: tilt the phone to the left to rotate the part to the left, hold the phone flat to keep the model stationary in the current position).
What’s more, the app also is able to detect what Solidworks activity (ex: sketch, part, or assembly) the user is in. This allows us to display relevant shortcuts on the screen of the phone that correctly activate the corresponding Solidworks action on the computer.
How it works
There is a system of two way communication over server sockets that allows that phone and the computer to communicate with each other. The phone streams orientation and gyroscope data to a python script running on the computer, as well as any button presses in the app. The script parses the orientation data, and correctly changes the orientation of the current CAD model (if applicable). Any button presses in the app also are parsed by the script and triggers the correct Solidworks actions.
In turn, the computer sends over information about the current activity in Solidworks to the app on the phone. This information allows the phone to dynamically update the shortcuts it displays to always be relevant. Below is a system architecture diagram that shows how data flows in the project.
Is it useful?
Well… kinda… As someone who is very comfortable and proficient with CADing in the ‘traditional’ sense, I wouldn’t use this. That being said, I would say that it is a decent start. The idea of a device that consolidates CAD shortcuts and has the ability to change the view of the CAD model is nothing new: see 3Dconnexion’s SpaceMouse Pro. While this project is nowhere as polished, it achieves a similar outcome at a fraction of the cost to the user.
That being said, we made this project with the intention of helping users who are newer to CAD. The phone allows the user to more intuitively interact with the model. Additionally, the shortcuts that are displayed on the phone screen can help users better understand the common actions that one would take given the activity they’re in. This is a common challenge we found with rookie CADers: because Solidworks has so many tools, it can be daunting to find the right tools, even just for simple tasks. The phone helps to consolidate all of the most common commands for the given activity in one place in order to streamline the process. We took our project and demonstrated it to engineers and product managers at Dassault, the makers of Solidworks, and they thought it had great potential, offering us the opportunity to work on the project as interns over the summer! Unfortunately, we already had other jobs, but it was cool to get that form of validation for our idea.


In a typical large organization, an enterprise architecture group or even many enterprise architecture groups may be functioning at different places. Figure 3-14 shows potential places where the enterprise architecture group can possibly reside within the corporate structure of such an organization.
Many industry analysts and academic researchers indicate that the most appropriate place for an EA team is under the corporate strategy or any such senior business leadership team (for example, CFO or COO). In that setup, the EA function is intentionally moved outside the IT organization to ensure its independence from IT and to align it better to the business. This position (shown as position 1 in Figure 3-14) gives EA the clout to raise enterprise architecture issues to the highest levels and make decisions based on the best interests of the entire enterprise. However, in practice EA is rarely positioned this way today.
In practice, we predominantly meet the EA group in the direct reporting line to the CIO of corporate IT, as shown by position 2 in Figure 3-14. Corporate IT is typically the IT organization at the highest level, with its own budget and management control. For our subsequent discussions, especially in our Bank4Us example, we presume the positioning of enterprise architecture group to be this way.
It also makes sense to establish an EA group while executing a large, multiyear business transformation program that potentially cuts across multiple business units, product lines, customer segments, or geographic regions of the enterprise. In that case, EA can reside at position 3 in the figure and stays within the purview of that program, with direct reporting to the program director or program management office (PMO).
When the enterprise IT landscape is transformed by a number of ongoing programs and projects, the EA group may be located in the realm of the application development organization (shown as position 4 in Figure 3-14). In this case, it tends to become quite IT development-centric.
When the enterprise requires extensive focus on the run-the-business scenario and an efficient day-to-day business operation, especially in a shared service mode and with a large IT landscape, enterprise architecture is often found at position 5. In this case, the risk for the EA team is to focus too much on IT implementation issues.
Finally, if a business unit of the enterprise carries a large IT estate, it may have its own enterprise architecture, as shown by position 6.
In summary, there is no such thing as the single right place for the EA team in the organization structure. In general, the right placement for EA is the position where it can seek a balanced view on business-IT alignment that is neither too strategic nor too tactical, neither too broad nor too deep.


You will be redirected in couple of seconds.
Click here to proceed without waiting or if you have JavaScript disabled.
Login successful!
You will be redirected in couple of seconds.
Click here to proceed without waiting or if you have JavaScript disabled.


Create Your Custom Cat
Only 30 generation zero cats can be made here!
Make one while you have the chance!
Worry not, you can buy cats here!


Highlights in Rails 4.0:
These release notes cover only the major changes. To know about various bug fixes and changes, please refer to the change logs or check out the list of commits in the main Rails repository on GitHub.
If you’re upgrading an existing application, it’s a great idea to have good test coverage before going in. You should also first upgrade to Rails 3.2 in case you haven’t and make sure your application still runs as expected before attempting an update to Rails 4.0. A list of things to watch out for when upgrading is available in the Upgrading to Rails guide.
You should have the 'rails' RubyGem installed
$ rails new myapp
$ cd myapp
Rails now uses a Gemfile
in the application root to determine the gems you require for your application to start. This Gemfile
is processed by the Bundler gem, which then installs all your dependencies. It can even install all the dependencies locally to your application so that it doesn’t depend on the system gems.
More information: Bundler homepage
Bundler
and Gemfile
makes freezing your Rails application easy as pie with the new dedicated bundle
command. If you want to bundle straight from the Git repository, you can pass the --edge
flag:
$ rails new myapp --edge
If you have a local checkout of the Rails repository and want to generate an application using that, you can pass the --dev
flag:
$ ruby /path/to/rails/railties/bin/rails new myapp --dev
TODO. Give a list and then talk about each of them briefly. We can point to relevant code commits or documentation from these sections.
In Rails 4.0, several features have been extracted into gems. You can simply add the extracted gems to your Gemfile
to bring the functionality back.
Guides are rewritten in GitHub Flavored Markdown.
Guides have a responsive design.
Please refer to the Changelog for detailed changes.
New test locations test/models
, test/helpers
, test/controllers
, and test/mailers
. Corresponding rake tasks added as well. (Pull Request)
Your app’s executables now live in the bin/
dir. Run rake rails:update:bin
to get bin/bundle
, bin/rails
, and bin/rake
.
Threadsafe on by default
config.threadsafe!
is deprecated in favor of config.eager_load
which provides a more fine grained control on what is eager loaded.
Rails::Plugin
has gone. Instead of adding plugins to vendor/plugins
use gems or bundler with path or git dependencies.
Please refer to the Changelog for detailed changes.
Please refer to the Changelog for detailed changes.
Add ActiveModel::ForbiddenAttributesProtection
, a simple module to protect attributes from mass assignment when non-permitted attributes are passed.
Added ActiveModel::Model
, a mixin to make Ruby objects work with
Action Pack out of box.
Please refer to the Changelog for detailed changes.
Replace deprecated memcache-client
gem with dalli
in ActiveSupport::Cache::MemCacheStore.
Optimize ActiveSupport::Cache::Entry to reduce memory and processing overhead.
Inflections can now be defined per locale. singularize
and pluralize
accept locale as an extra argument.
Object#try
will now return nil instead of raise a NoMethodError if the receiving object does not implement the method, but you can still get the old behavior by using the new Object#try!
.
Deprecate ActiveSupport::TestCase#pending
method, use skip
from MiniTest instead.
ActiveSupport::Benchmarkable#silence has been deprecated due to its lack of thread safety. It will be removed without replacement in Rails 4.1.
ActiveSupport::JSON::Variable
is deprecated. Define your own #as_json
and #encode_json
methods for custom JSON string literals.
Deprecates the compatibility method Module#local_constant_names, use Module#local_constants instead (which returns symbols).
BufferedLogger is deprecated. Use ActiveSupport::Logger, or the logger from Ruby standard library.
Deprecate assert_present
and assert_blank
in favor of assert object.blank?
and assert object.present?
Please refer to the Changelog for detailed changes.
Please refer to the Changelog for detailed changes.
Improve ways to write change
migrations, making the old up
& down
methods no longer necessary.
The methods drop_table
and remove_column
are now reversible, as long as the necessary information is given.
The method remove_column
used to accept multiple column names; instead use remove_columns
(which is not revertible).
The method change_table
is also reversible, as long as its block doesn’t call remove
, change
or change_default
New method reversible
makes it possible to specify code to be run when migrating up or down.
See the Guide on Migration
New method revert
will revert a whole migration or the given block.
If migrating down, the given migration / block is run normally.
See the Guide on Migration
Adds PostgreSQL array type support. Any datatype can be used to create an array column, with full migration and schema dumper support.
Add Relation#load
to explicitly load the record and return self
.
Model.all
now returns an ActiveRecord::Relation
, rather than an array of records. Use Relation#to_a
if you really want an array. In some specific cases, this may cause breakage when upgrading.
Added ActiveRecord::Migration.check_pending!
that raises an error if migrations are pending.
Added custom coders support for ActiveRecord::Store
. Now you can set your custom coder like this:
store :settings, accessors: [ :color, :homepage ], coder: JSON
mysql
and mysql2
connections will set SQL_MODE=STRICT_ALL_TABLES
by default to avoid silent data loss. This can be disabled by specifying strict: false
in your database.yml
.
Remove IdentityMap.
Remove automatic execution of EXPLAIN queries. The option active_record.auto_explain_threshold_in_seconds
is no longer used and should be removed.
Adds ActiveRecord::NullRelation
and ActiveRecord::Relation#none
implementing the null object pattern for the Relation class.
Added create_join_table
migration helper to create HABTM join tables.
Allows PostgreSQL hstore records to be created.
Deprecated the old-style hash based finder API. This means that methods which previously accepted “finder options” no longer do.
All dynamic methods except for find_by_...
and find_by_...!
are deprecated. Here’s
how you can rewrite the code:
find_all_by_...
can be rewritten using where(...)
.find_last_by_...
can be rewritten using where(...).last
.scoped_by_...
can be rewritten using where(...)
.find_or_initialize_by_...
can be rewritten using where(...).first_or_initialize
.find_or_create_by_...
can be rewritten using find_or_create_by(...)
or where(...).first_or_create
.find_or_create_by_...!
can be rewritten using find_or_create_by!(...)
or where(...).first_or_create!
.See the full list of contributors to Rails for the many people who spent many hours making Rails, the stable and robust framework it is. Kudos to all of them.


Video Sizing Sample Page
HOME
VIDEO
LINKS
width:
height:
availWidth
availHeight
colorDepth:
pixelDepth:
Firefox exclusive property.
HOME
VIDEO


Separated Soul:
You have collected the required refining amount.
It takes a little time for the refining, so come back later.


Courses
£99
4 lessons / 12 weeks
Logo design course
Lorem ipsum
1,567
2
£54
4 lessons / 1 week
JS course
Lorem ipsum
255
0
£99
5 lessons / 6 weeks
Law of physics
Lorem ipsum
20
9
Prev
Next


THE BEAR CODE
follow me on
Project the bear status responsive with tab navigation
Tab 1
Tab 2
Tab 3
ONLINE
UNVAILABLE
ONLINE
ONLINE
AWAY
AWAY
AWAY
ONLINE
ONLINE
UNVAILABLE
ONLINE
AWAY
UNVAILABLE
ONLINE
ONLINE
ONLINE
AWAY
AWAY


GSoC Progress - Week 2
Programming · GSoC · SymPyHello, this post contains the second report of my GSoC progress. At one point, I had changed the deadline from Sundays to Fridays, but I seem to be running a week late on the post names. Will be corrected next week.
Progress
We decided that instead of coding up the Polynomial
upfront, we try to speed up the expand2b benchmark i.e. try to nail speed at a lower level, then think of the design decisions and wrap it up into Polynomial
class.
The plan was this:
* Add support for Piranha
in SymEngine
CMake
* Implement packing of exponents and a check function to ensure it fits, use this to fasten expand2b
* Use Piranha's integer and benchmark expand2b again
The faster hashtable was kept for later.
Report
PR 464 was merged.
Implements support for Piranha
in CMake along with it's dependencies Boost
and PTHREAD
.
The above two dependencies come as separate CMake option as well. We feel that the Boost
support can be improved, that can be done at a later stage.
PR 470 Speeding up the benchmark.
* The pack and check function were implemented
* Used std::valarray
instead std::vector
(inspired by issue 111) but the benchmark slowed down, hence change was not adopted
* Implemented functions poly2packed()
and packed2poly()
, for converting between the two representations
* Implemented function poly_mul2()
for multiplying the packed polynomials
* Re-wrote expand2b
to use packed, now expand2c
Very nice speedup was obtained from using the packed structure, a more detailed report can be found here.
But we are still far from Piranha
and we have lots to do :)
Most of the week's time went to learning to link libraries and writing cmake files for my own projects so that I could figure what was happening in PR 464. Now I feel it was very easy a task and shouldn't have consumed the time it did.
Targets for Week 3
My aim is to get all the code and optimization, possible at this level, done by next week, so that we can start wrapping in the coming weeks.
* Use piranha::integer
for coefficients, benchmark
* Implement switching between packed structure and tuple depending on whether exponents fit or not
If time permits, I want to implement a system to use int
for small cofficients and switch to mpz_class
when large.
We have lots to do to hit the speed that we expect.
That's all folks.
Au Revoir


Progress
The progress module gives you full control over the presentation of progress and loading on your pages. Apart from progress bars and color variants for them, spinner elements are provided to help communicate that something is loading.
Quick overview
Progress indicators are very common UI elements for almost any website and web app, as they help communicate vital information such as the fact that a process is being executed in the background, informing the user that they should wait for it to complete before proceeding. The progress module provides you with two essential tools to communicate this information: the <progress>
HTML element, which is pre-styled and compatible with modern browsers to help you communicate information about the percentage of a task and the .spinner-donut
class that allows you to create an animated spinner that communicates that something is loading currently and will continue doing so for an indefinite amount of time. Both elements come with their own color and size variants and are fully accessible.
Quick start
To customize the progress module, duplicate an existing flavor file (we suggest you use the mini-default.scss
flavor file) and use this page's variable tables and mixins as a reference to change only the values you need. Remember to compile your flavor file (not the module's partial file) using a Sass preprocessor (we highly recommend using sass-autocompile if you are working with Atom).
Progress bar
The progress module's styling of <progress>
elements is highly customizable.
| Variable | Type | Description | Sample value |
|---|---|---|---|
| $progress-back-color | Color | Background color for <progress> elements | #eeeeee |
| $progress-fore-color | Color | Progress bar color for <progress> elements | #01579b |
| $progress-height | Height | Height for <progress> elements | 14px |
| $progress-max-value | integer | Arithmetic max value for <progress> elements | 1000 |
| $progress-border-style | Border | Border style for <progress> elements | 1px solid #bdbdbd |
| $progress-border-radius | Border radius | Border radius for <progress> elements | 1px |
| $progress-top-bottom-margin | Margin (single value) | Top and bottom margin for <progress> elements | 2px |
| $progress-left-right-margin | Margin (single value) | Left and right margin for <progress> elements | 8px |
| $progress-box-shadow | Box shadow | Box shadow for <progress> elements | 0 1px 3px rgba(0,0,0, 0.1) |
Donut spinner
The progress module's donut spinner uses a custom class and a few variables for custmization.
| Variable | Type | Description | Sample value |
|---|---|---|---|
| $spinner-donut-name | String | Class name for donut spinner components | 'spinner-donut' |
| $spinner-donut-back-color | Color | Background color for donut spinner components | #e3f2fd |
| $spinner-donut-fore-color | Color | Foreground color for donut spinner components | #1565c0 |
| $spinner-donut-border-thickness | Border width | Border width for donut spinner components | 4px |
| $spinner-donut-size | Size (single value, px preferred) |
The size of donut spinner components (determines multiple values of the element) | 20px |
Progress bar mixins
The progress module contains a couple of mixins for adding custom styles to <progress>
elements (color and style variants), as well as a mixin for creating inline progress bars.
| Mixin | Description |
|---|---|
| make-progress-alt-color ($progress-alt-name, $progress-alt-fore-color, $progress-alt-back-color) | Creates a new <progress> color variant using the specified values. |
| make-progress-alt-style ($progress-alt-name, $progress-alt-height,$progress-alt-top-bottom-margin,$progress-alt-left-right-margin, $progress-alt-border-style, $progress-alt-border-radius, $progress-alt-box-shadow) | Creates a new <progress> style variant using the specified values. |
| make-progress-inline ($progress-inline-name, $progress-inline-width) | Creates a new <progress> style variant using the specified values. |
| Parameter | Type | Description | Sample value |
|---|---|---|---|
| $progress-alt-name | String | Class name for the <progress> color variant | 'secondary' |
| $progress-alt-fore-color | Color | Foreground color for the <progress> color variant | #e53935 |
| $progress-alt-back-color | Color | (Optional) Background color for the <progress> color variant | #eeeeee |
Sample usage
@include make-progress-alt-color ('secondary', #e53935, #eeeeee);
| Parameter | Type | Description | Sample value |
|---|---|---|---|
| $progress-alt-name | String | Class name for the <progress> style variant | 'nano' |
| $progress-alt-height | Height | Height for the <progress> style variant | 2px |
| $progress-alt-top-bottom-margin | Margin (single value) | (Optional) Top and bottom margin for the <progress> style variant | 1px |
| $progress-alt-left-right-margin | Margin (single value) | (Optional) Left and right margin for the <progress> elements | 1px |
| $progress-alt-border-style | Border | (Optional) Border style for the <progress> style variant | 1px solid #bdbdbd |
| $progress-alt-border-radius | Border radius | (Optional) Border radius for the <progress> style variant | 1px |
| $progress-alt-box-shadow | Box shadow | (Optional) Box shadow for the <progress> style variant | 0 1px 3px rgba(0,0,0, 0.1) |
Sample usage
@include make-progress-alt-style ('nano', 2px, 1px, 1px, 1px solid #bdbdbd, 1px, 0 1px 3px rgba(0,0,0, 0.1));
| Parameter | Type | Description | Sample value |
|---|---|---|---|
| $progress-inline-name | String | Class name for the <progress> inline variant | 'inline' |
| $progress-inline-width | Width (percentage preferred) | Width of the <progress> inline variant | 60% |
Sample usage
@include make-progress-inline ('inline', 60%);
Donut spinner mixins
The progress module contains a couple of mixins for adding custom styles to donut spinners (color and style variants).
| Mixin | Description |
|---|---|
| make-spinner-donut-alt-color ($spinner-donut-alt-name, $spinner-donut-alt-back-color, $spinner-donut-alt-fore-color) | Creates a new donut spinner color variant using the specified values. |
| make-spinner-donut-alt-style ($spinner-donut-alt-name, $spinner-donut-alt-size, $spinner-donut-alt-border-thickness) | Creates a new donut spinner style variant using the specified values. |
| Parameter | Type | Description | Sample value |
|---|---|---|---|
| $spinner-donut-alt-name | String | Class name for the donut spinner color variant | 'secondary' |
| $spinner-donut-alt-back-color | Color | Background color for the donut spinner color variant | #ffebee |
| $spinner-donut-alt-fore-color | Color | (Optional) Text color for the donut spinner color variant | #c62828 |
Sample usage
@include make-spinner-donut-alt-color ('secondary', #ffebee, #c62828);
| Parameter | Type | Description | Sample value |
|---|---|---|---|
| $spinner-donut-alt-name | String | Class name for the donut spinner style variant | 'large' |
| $spinner-donut-alt-size | Size (single value, px preferred) |
Size of the donut spinner style variant (determines multiple values of the element) | 32px |
| $spinner-donut-alt-border-thickness | Border width | (Optional) Border thickness for the donut spinner style variant | 6px |
Sample usage
@include make-alert-alt-style ('large', 32px, 6px);
If you want to learn more about customizing mini.css, go back to the customization page or choose a module from the top menu to see its documentation.


2 song notification boxs appear
-
anonymous
Hi, this program is awesome and i really think that it is a nice feature but i have one main problem with it. Why is are there 2 notification box's that pop up when you change the song. This second box is annoying and seemingly useless and it cannot be moved and takes up screen space. so is there any way to remove the second box so that just the floater appears when you change songs? Thanks in advance
-
Greg Hurrell
I expect that one of the notifications you're seeing is the Synergy floater (controllable from the Synergy preferences) and the other is probably a Growl notification (to turn that off you'd have to go in to the Growl preference pane in the System Preferences).
I guess from your description that the one you want to turn off is the Growl one. Let me know if you can't figure out how to do that.
-
anonymous
Thanks alot wincent it was Growl. to fix this problem go into system preferences -> growl-> then click the applications tab->select synergy and hit the remove button
I really probably wouldn't have figured this out with out you I just started using mac a week ago :) so I really appreciate the help much love
-
anonymous
Thanks, another person who didn't know what was going on and didn't want the floater and couldn't turn it off through Synergy and was totally confused and is now, once again, a happy bunny.
-
anonymous
Same problem, only I want to use Growl exclusively. I went to the Synergy preferences and turned off "Display floater when iTunes track changes".
However, when I change ratings via Synergy keyboard shortcuts, both growl comes up and a Synergy box in the middle of the lower half of the screen. I want to get rid of the Synergy box, can't find a preference to turn it off!
-
Greg Hurrell
Those notifications that appear in bezels in the middle lower half are controlled by the "Extra visual feedback for play, pause, next etc" setting in the "General" tab.
I probably need to reword that option to make it clear that it's for all bezels, not just the ones listed there. I've opened a bug ticket for that point, bug #1183.
Reply
This topic is now closed.