A listbox button is intended for use as a custom implementation of the native HTML select element's single-select use case.
Because a button element does not store form data, its value will not be submitted along with other form data without the assistance of JavaScript.
By default, the listbox button is in an unselected state.
To give the illusion of a floated label use the btn--floating-label and btn__floating-label classes.
NOTE: a btn__floating-label--inline class must also be toggled with JavaScript. It should be present when there is no selection, and vice versa.
A selection can be made by applying the aria-selected state to a single option; JavaScript is required to update all ARIA and button text state.
The following example shows the "floated label" version with a value selected.
Apply the btn--borderless modifier to create a borderless listbox button.
Apply the listbox-button--form modifier to create a listbox button inside a form matching other form controls.
Additionally, to allow the component to send the value from a selected option in a form submission, there needs to be custom js to populate the select.listbox__native with the value upon selection. If using Skin outside of eBay UI, you will need to account for that independantly.
NOTE: This component is a bit in transiton and will likely undergo some changes to integrate and simplify the variant implementation. Currently, .listbox-button--form is used as a bit of a patch to create the form variant of the control. It adds some of the styles needed to do form variant styling while other styles are applied separately by .btn--form. In the future, these styles will be consolidated into .btn--form and will be .listbox-button--form will be phased out.


{% extends "results.html" %}{% block body %}
{% endblock %}}Docker Hub Image Pull for busybox
cmd = docker pull busybox
Using default tag: latest latest: Pulling from library/busybox 27144aa8f1b9: Pulling fs layer 27144aa8f1b9: Download complete 27144aa8f1b9: Pull complete Digest: sha256:be3c11fdba7cfe299214e46edc642e09514dbb9bbefcd0d3836c05a1e0cd0642 Status: Downloaded newer image for busybox:latest


07-HMWK-SQL-CAC
Wednesday, July 24, 2019
11:50 AM
Here is the summary of my homework. From <https://github.com/ChiAmyC0987/07-HMWK-SQL-CAC>
1. Data Modeling
Inspect the CSVs and sketch out an ERD of the tables. Feel free to use a tool like http://www.quickdatabasediagrams.com.
2.
3. Data Engineering
· Use the information you have to create a table schema for each of the six CSV files. Remember to specify data types, primary keys, foreign keys, and other constraints.
-- Exported from QuickDBD: https://www.quickdatabasediagrams.com/
-- Link to schema: https://app.quickdatabasediagrams.com/#/d/6ZSXBH
-- NOTE! If you have used non-SQL datatypes in your design, you will have to change these here.
-- Modify this code to update the DB schema diagram.
-- To reset the sample schema, replace everything with
-- two dots ('..' - without quotes).
drop table departments cascade;
drop table dept_manager cascade;
drop table dept_emp cascade;
drop table employees cascade;
drop table titles cascade;
drop table salaries cascade;
CREATE TABLE "departments" (
"dept_no" varchar(5) NOT NULL,
"dept_name" varchar(25) NOT NULL,
CONSTRAINT "pk_departments" PRIMARY KEY (
"dept_no"
)
);
CREATE TABLE "dept_manager" (
"dept_no" varchar(5) NOT NULL,
"emp_no" int NOT NULL,
"from_date" date NOT NULL,
"to_date" date NOT NULL,
CONSTRAINT "pk_dept_manager" PRIMARY KEY (
"emp_no"
),
CONSTRAINT "fk_dept_manger_dept_no" FOREIGN KEY("dept_no")
REFERENCES "departments" ("dept_no")
);
CREATE TABLE "dept_emp" (
"emp_no" int NOT NULL,
"dept_no" varchar(5) NOT NULL,
"from_date" date NOT NULL,
"to_date" date NOT NULL,
CONSTRAINT "pk_dept_emp" PRIMARY KEY (
"emp_no", "dept_no"
),
CONSTRAINT "fk_dept_emp_dept_no" FOREIGN KEY("dept_no")
REFERENCES "departments" ("dept_no")
);
CREATE TABLE "employees" (
"emp_no" int NOT NULL,
"birth_date" date NOT NULL,
"first_name" varchar(25) NOT NULL,
"last_name" varchar(25) NOT NULL,
"gender" varchar(1) NOT NULL,
"hire_date" date NOT NULL,
CONSTRAINT "pk_employees_emp_no" PRIMARY KEY (
"emp_no"
)
);
CREATE TABLE "titles" (
"emp_no" int NOT NULL,
"title" varchar(25) NOT NULL,
"from_date" date NOT NULL,
"to_date" date NOT NULL,
CONSTRAINT "pk_titles" PRIMARY KEY (
"emp_no", "from_date"
)
);
CREATE TABLE "salaries" (
"emp_no" int NOT NULL,
"salary" int NOT NULL,
"from_date" date NOT NULL,
"to_date" date NOT NULL,
CONSTRAINT "pk_salaries" PRIMARY KEY (
"emp_no", "from_date"
)
);
From <https://app.slack.com/client/TH7P7QDUN/DK53MJ021>
Imported each CSV file into the corresponding SQL tabe.
· Data Analysis
Once you have a complete database, do the following:
1. List the following details of each employee: employee number, last name, first name, gender, and salary.
DROP TABLE emp_salary3 CASCADE;
CREATE TABLE emp_salary3 (
emp_no int,
First_name varchar(25),
last_name varchar(25),
gender varchar(25),
salary int
);
INSERT INTO emp_salary3(emp_no, last_name, first_name, gender)
SELECT emp_no, last_name, first_name, gender FROM employees;
UPDATE emp_salary3
SET salary=salaries.salary
FROM salaries
WHERE emp_salary3.emp_no = salaries.emp_no;
2. List employees who were hired in 1986.
SELECT *
FROM employees
WHERE hire_date between '01/01/1986' and '12/30/1986';
3. List the manager of each department with the following information: department number, department name, the manager's employee number, last name, first name, and start and end employment dates.
DROP TABLE managers;
CREATE TABLE managers(
dept_no varchar(5),
dept_name varchar(25),
emp_no int,
first_name varchar(25),
last_name varchar(25),
from_date date,
to_date date
);
INSERT INTO managers(dept_no, emp_no, from_date, to_date)
SELECT dept_no, emp_no, from_date, to_date
FROM dept_manager;
UPDATE managers
SET dept_name=departments.dept_name
FROM departments
WHERE managers.dept_no=departments.dept_no;
UPDATE managers
SET last_name=employees.last_name, first_name=employees.first_name
FROM employees
WHERE managers.emp_no=employees.emp_no;
SELECT *
FROM managers;
4. List the department of each employee with the following information: employee number, last name, first name, and department name.
DROP TABLE employees_dept;
CREATE TABLE employees_dept(
emp_no int,
last_name varchar(25),
first_name varchar(25),
dept_no varchar(5),
dept_name varchar(25)
);
INSERT INTO employees_dept(emp_no, last_name, first_name)
SELECT emp_no, last_name, first_name
FROM employees;
UPDATE employees_dept
SET dept_no=dept_emp.dept_no
FROM dept_emp
WHERE employees_dept.emp_no = dept_emp.emp_no;
UPDATE employees_dept
SET dept_name=departments.dept_name
FROM departments
WHERE employees_dept.dept_no = departments.dept_no;
select *
from employees_dept;
5. List all employees whose first name is "Hercules" and last names begin with "B."
select *
from employees
where first_name = 'Hercules' and last_name between 'A' and 'C'
6. List all employees in the Sales department, including their employee number, last name, first name, and department name.
select emp_no, last_name, first_name, dept_name
from employees_dept
where dept_name = 'Sales'
7. List all employees in the Sales and Development departments, including their employee number, last name, first name, and department name.
SELECT emp_no, last_name, first_name, dept_name
FROM employees_dept
WHERE dept_name = 'Sales' or dept_name = 'Development'
8. In descending order, list the frequency count of employee last names, i.e., how many employees share each last name.
SELECT COUNT(emp_no)
FROM employees
GROUP BY (last_name)
ORDER BY (last_name) DESC;
From <https://github.com/ChiAmyC0987/07-HMWK-SQL-CAC>


yak shaving
`Prev `__
Y
`Next `__
--------------
**yak shaving**
[MIT AI Lab, after 2000: orig. probably from a *Ren & Stimpy episode.*]
Any seemingly pointless activity which is actually necessary to solve a
problem which solves a problem which, several levels of recursion later,
solves the real problem you're working on.
--------------
+----------------------------+----------------------------+-------------------------+
| `Prev `__ | `Up <../Y.html>`__ | `Next `__ |
+----------------------------+----------------------------+-------------------------+
| YAFIYGI | `Home <../index.html>`__ | YAUN |
+----------------------------+----------------------------+-------------------------+


borrow as immutable, should not used after borrowed as mutable
why?
data race reason:
+ Two or more pointers access the same data at the same time.
+ At least one of the pointers is being used to write to the data.
+ There’s no mechanism being used to synchronize access to the data.


With the growing popularity of online shopping and cross-border e-commerce, the demand for payment processing is ever so high. Online merchants faced with the necessity to process all of their payments online are in a never-ending search for better solutions. Quite recently the landscape of the market was drastically changed with the emergence of white-label payment processing, an alternative to the traditional payment flow. And in this article, we’ll explore both of these processing models, look into their pros and cons, and help you better understand which one will work best for your business.
But first, let’s discuss the notion of “payment processing”.
What is payment processing?
Payment processing, in its essence, is a process or a payment flow that occurs right after the customer clicks “Pay Now”. Thus, the main payment processing goal is to facilitate all the necessary steps to authenticate and verify a transaction and then transfer the funds from the customer’s to the merchant’s account.
Among parties involved in online payment processing are a customer, a payment processor, a merchant (or a business owner), a payment system like Akurateco, an issuing and an acquiring bank, and a credit card company.
There are three ways how a merchant can receive transactions on their websites:
- Own payment gateway.
- Third-party payment gateway (with redirections).
- A white-label payment gateway.
Let’s look at each of these options in greater detail.
How to create your own payment gateway
Creating your own payment gateway is by far the most resources and time-consuming of all these ways. It starts with hiring a team of payment technology experts to develop and, consequently, maintain your payment gateway. Then it requires obtaining a license, establishing business relationships with banks, and integrating a number of payment methods to meet the needs of your existing and potential clients in case you decide to expand your business.
All in all, the process of developing your own payment gateway will take months of active development and later will eat up a great deal of your budget in continuous upgrades, technical support, bug fixing, and general maintenance of the system.
This is a way to go for large corporations that can afford an in-house expert team to do the hard work behind the payment gateway. However, if you’re a smaller company or just don’t want to take the risk, you might want to consider one of the next options.
You might also like Best payment processing software for online business
What is traditional payment processing?
Traditional payment processing occurs when a merchant integrates a third-party payment gateway into his system. This way the system redirects the customer to a payment page on the processor’s side.
Studies show that redirections often confuse users causing a lot of them to abandon the cart. The reason lies in the lack of trust. The customer might trust you as a merchant if he did his research and read the reviews. However, when the payment page he’s redirected to is owned and run by a third party he’s not familiar with, the user might feel frustrated and discouraged.
That is why going for a payment gateway you can embed into your website or fully brand following your company’s style guidelines can help you capture more revenue by keeping a bigger share of the clients on your site. This method of payment processing is known as “white-label payment processing,” and we’ll talk about it next using Akurateco as an example.
What’s white-label payment processing?
White-label payment processing is a way to process transactions using third-party payment technology fully-branded after your company’s brand identity guidelines. As a merchant, you get to sell technology developed and supported by an external team of payment experts. In the meantime, your customers will perceive the system as your own. It will have your company logo, colors, and other corporate-style indicators.
It’s right there in the name. Imagine buying a product but instead of the logo of the producer, there’s a blank white space. You get to snap your logo on it and sell it as your own. You get the credit for a job well done, and you don’t have to carry the burden of maintaining the software, expanding the feature base, and implementing new industry-specific changes and upgrades. All of these are on Akurateco’s expert team, relentlessly working on its functionality.
White-label payment processing best fits the need of small and medium-sized businesses with multiple payment channels as well as payment processors aiming to consolidate their payment data in a single platform.
You might also like Best White-Label Payment Gateway Software in 2021
How to choose the best option for your business
Payment processing can eat up a great chunk of your budget unless chosen wisely. Therefore, we recommend doing your research before committing.
-
Identify the type of processing you need.
Analyze the size of your client base, average sales volume you need processed every month, and the speed of market growth. Thus, if you’re running a seven-figure business, then developing your own payment gateway can be an option. You’ll save on commissions and will be able to manage all of the transaction flow from within the company. It’ll be faster and more efficient.
However, if you’re just starting, look into outsourcing your payment processing to a third party or even going white-label all the way. The latter option helps you convert more customers. And if you’re looking for a white-label payment solution, Akurateco’s here to help. -
Compare available software providers.
Don’t be rushed into making a decision. With the growing popularity of online shopping, the payment processing market is growing and expanding in leaps and bounds. Therefore, your options are many. And it’s easy to fall victim to good marketing for a poorly delivered product. So, to avoid this, look into:
-
Reviews.
Look for case studies and real reviews on trustworthy platforms. Keep your eyes open. Alternatively, ask around about a provider of your interest. -
Rates.
This is a no-brainer. Rates will vary depending on your industry, product, and sales volume. But no matter what your business is, there’s always wiggle room in pricing. So, shop around before sealing the deal. -
Flexibility.
Can the provider customize the platform to the specific needs of your business? Are they ready to integrate new payment methods your target audience is most comfortable with? Does the technical support react fast and solve the issues right away? These are all very important issues. Time is money. In your case, it literally is. So, the system must be nothing short of perfect. -
Payment methods.
Does the software have all the payment methods you need integrated? If not, how long will it take to set them up? For instance, at Akurateco, a new payment method can be up and running in under a week. -
Features.
The set of features you require depend on your business type.  On the other hand, low-risk businesses should consider outsourcing their payments to a provider with affordable recurring billing, a flexible fee structure, and a fee calendar.
These are basic recommendations to help you better choose a payment processor for your business. The list of requirements will change on a case-by-case basis.
Over to you
All in all, if you’re leaning towards choosing a white-label payment software, Akurateco is a great choice. We’ve used our 16+ years of experience in the payment experience to create a truly outstanding piece of software. To see what the system has to offer, don’t hesitate to apply for a free Demo here.
What is love?
Baby don’t heart me


chrome_reader_mode
Content
-
trending_upStudent Activity
-
assignmentClass Progress
Percentage of Book Completion by Lesson
assessment
Assessment
-
assessmentQuiz Statistics
Average Score Standard Deviation -
subtitlesQuestion Analysis


Basic card good at containing small bits of information.
I am a very simple card with solid background & link. I am good at containing small bits of information. I am convenient because I require little markup to use effectively.
I am a very simple card with gradient background & button. I am good at containing small bits of information. I am convenient because I require little markup to use effectively.
Here is the standard card with an image thumbnail.
I am a very simple card with link. I am good at containing small bits of information. I am convenient because I require little markup to use effectively.
I am a very simple card with button. I am good at containing small bits of information. I am convenient because I require little markup to use effectively.
Here is an image card with a Floating Action Button.
I am a very simple card with small size solid color fab button. I am good at containing small bits of information. I am convenient because I require little markup to use effectively.
I am a very simple card with large size gradient color fab button. I am good at containing small bits of information. I am convenient because I require little markup to use effectively.
Here is the standard card with a horizontal image.
I am a very simple card with link. I am good at containing small bits of information.
I am a very simple card with button. I am good at containing small bits of.
Here you can add a card that reveals more information once clicked.
Here is some more information about this product that is only revealed once clicked on.
Just add the card-reveal
div with a
span.card-title
inside to make this work. Add the class
activator
to an element inside the card to allow it to
open the card
reveal.
Here is some more information about this product that is only revealed once clicked on.
The default state is having the card-reveal go over the card-action.
Here is some more information about this product that is only revealed once clicked on.
You can make your card-action always visible by adding the class
sticky-action
to the overall card.
For a simpler card with less markup, try using a card panel which just has padding and a shadow effect
I am a very simple card. I am good at containing small bits of information. I am convenient because I require little markup to use effectively.
I am a very simple card. I am good at containing small bits of information. I am convenient because I require little markup to use effectively.
The Small Card limits the height of the card to 300px.
I am a very simple card. I am good at containing small bits of information.
The Medium Card limits the height of the card to 400px.
I am a very simple card. I am good at containing small bits of information. I am convenient because I require little markup to use effectively.
The Large Card limits the height of the card to 500px.
I am a very simple card. I am good at containing small bits of information. I am convenient because I require little markup to use effectively. I am a very simple card. I am good at containing small bits of information. I am convenient because I require little markup to use effectively. I am a very simple card. I am good at containing small bits of information. I am convenient because I require little markup to use effectively.
For a simpler card with less markup, try using a card panel which just has padding and a shadow effect


M
C
Motor City Bakery
Options
Donut
+
Bagel
+
Loaf
+
Pastry
+
Pie
+
Shopping List
Subtotal:
None Yet!
Final Total:


Blog Admin
Blog Settings and Information
Edit various settings for the Blog module.
Blog Settings:
Number of posts on front page:
Template for naming new blog posts:
(username and time substitution available, like
${'$USER'}-%Y/%m/%d/my_topic
)
Blog sidebar information:
Text to display in Blog sidebar (you may use
WikiFormatting
here):
${blog_admin.bloginfotext}


---
title: Rigorous Software Engineering
ref: rse2021
description: Undergraduate course on building correct software.
semester: Spring 2021
number: 252-0216-00L
lecturer: Prof. Dr. Martin Vechev
head-ta: Samuel Steffen
head-ta-details: use Moodle for questions whenever possible
ta: Benjamin Bichsel, Dimitar I. Dimitrov, Marc Fischer, Mark Niklas Müller, Anouk Paradis, Momchil Peychev, Samuel Steffen, Hang Yu
assistants:
edoz: http://vvz.ethz.ch/Vorlesungsverzeichnis/lerneinheit.view?lang=en&lerneinheitId=149147&semkez=2021S
session-time-place:
lecture-time-place: Tue 12-14, Online; Wed 10-12, Online
exercise-time-place: Mon 14-16, Online; Tue 16-18, Online; Thu 16-18, Online
credits: 8
image: assets/images/sae.png
---
Overview
This course provides an overview of techniques to build correct software, with a strong focus on testing and program analysis. In particular, covered topics include:
- Code documentation
- Modularity and coupling (Design patterns)
- Dynamic program analysis (Testing, fuzzing, concolic execution)
- Static program analysis (Numerical abstract interpretation, pointer analysis, symbolic execution)
- Formal modeling (Alloy)
Students apply the learned techniques to solve a group project in the area of program analysis.
Organization
Lectures
- Lectures will be pre-recorded and published here in advance (credentials can be found here). We recommend watching these during regular lecture hours.
- Each Wednesday at 11:40-12:00, Prof. Martin Vechev offers a virtual Q&A session
(Zoom link ★) on the topics of that week.
- For additional questions, we have prepared a Moodle forum.
Exercises
- Exercise sheets will be published here by Wednesday evening. Please solve the exercises before
next week's exercise session and before looking at the solutions.
- Exercise sessions are conducted virtually and start in the second week of the semester.
We will discuss the solutions of the previous week's exercise sheet. Please register for an exercise group via MyStudies.
- For additional questions, we have prepared a Moodle forum.
★ To join the Zoom meetings, you must be logged in with a *.ethz.ch account, which you can create here.
Communication
All communication (including special announcements) will be sent out by e-mail.
For written questions, please use the Moodle forum whenever possible.
In exceptional cases, you can contact the head TA.
Lectures
Use your NETHZ account to access the slides. The credentials to access the recordings can be found here.
| Date | Content | Slides | Recordings |
| Feb 23 | Introduction |
|
|
| Feb 24 | Documentation |
|
|
| Mar 2 | Modularity |
|
|
| Mar 3 | Functional Testing |
|
|
| Mar 9 | Structural Testing |
|
|
| Mar 10 | Guest Lecture: Veselin Raychev |
|
|
| Mar 16 | Analysis Introduction I |
|
|
| Mar 17 | Analysis Introduction II |
|
|
| Mar 23 | Analysis Math I |
|
|
| Mar 24 | Analysis Math II |
|
|
| Mar 30 | Project Introduction |
|
|
| Mar 31 | (No lecture) |
|
|
| Apr 2 - Apr 11: Easter break (no lectures or exercise sessions) |
|
|
| Apr 13 | Intervals I |
|
|
| Apr 14 | Intervals II |
|
|
| Apr 20 | Pointer Analysis I |
|
|
| Apr 21 | Pointer Analysis II |
|
|
| Apr 27 | Application I |
|
|
| Apr 28 | Application II |
|
|
| May 4 | Symbolic Execution |
|
|
| May 5 | Concolic Execution |
|
|
| May 11 | Guest Lecture: Jingxuan He |
|
|
| May 12 | Dynamic Race Detection |
|
|
| May 18 | Alloy I |
|
|
| May 19 | Alloy II |
|
|
| May 25 | Alloy III |
|
|
| May 26 | Guest Lecture: Andrei Dan |
|
|
| Jun 2 | Summary |
(no slides)
|
|
Exercises
Use your NETHZ account to access the exercises.
| No. | Due Date | Content | Exercises | Solutions |
| 1 |
Mar 1 |
Documentation and Contracts |
|
|
| 2 |
Mar 8 |
Modularity and Functional Testing |
|
|
| 3 |
Mar 15 |
Structural Testing |
|
|
| 4 |
Mar 22 |
First Steps with Abstract Interpretation |
|
|
| 5 |
Mar 29 |
Mathematical Concepts |
|
|
| 6 |
Apr 19 |
Interval Analysis |
|
|
| 7 |
Apr 26 |
Widening and Pointer Analysis |
|
|
| 8 |
May 3 |
Verifying Determinism |
|
|
| 9 |
May 10 |
Symbolic Execution |
|
|
| 10 |
May 17 |
Dynamic Race Detection |
|
|
| 11 |
May 24 |
Static Alloy Models |
|
|
| 12 |
May 31 |
Dynamic Alloy Models |
|
|
Project
The project will be conducted in groups of 2-3 students.
We will send out a link for group registration on March 15.
Groups must be registered by March 23. Use Moodle
if you cannot find a team.
The project webpage is here.
Previous exams
Previous exams are available in the exam collection of the student association (VIS).


Faker has been hailed as the greatest of all time in the e-sport of League of Legends.
Here are some fun facts about him:
Faker's most famous champion picks are
LeBlanc , Zed , Azir and Orianna .
Widely renowned for his deep champion pool and understanding.
Has the monikers "Unkillable Demon King" and "Faker Faker Playmaker".
Regarded as the GOAT of League of Legends.
If Faker had to swap to another role, he would pick Jungle.
Has flash on the F key.
Previously played a game called 'Chaos', also a MOBA, he credits it as a factor in easy transition he had to play League.
Views his teammates as his second family and thinks the family atmosphere strengthens the team.
Believes every mid laner should be able to play Twisted Fate because if mastered he teaches you to look at the mini map and, Ryze because once mastered, you learn the importance of hitting the right keys, in the right time and order.
Famous for his Korean solo queue account "Hide on bush", with many other accounts across all regions using variations of that name.
If you have time, you can read more about this mechanical god's career on his Leaguepedia entry.


Active Storage
Active Storage makes it simple to upload and reference files in cloud services like Amazon S3, Google Cloud Storage, or Microsoft Azure Storage, and attach those files to Active Records. Supports having one main service and mirrors in other services for redundancy. It also provides a disk service for testing or local deployments, but the focus is on cloud storage.
Files can be uploaded from the server to the cloud or directly from the client to the cloud.
Image files can furthermore be transformed using on-demand variants for quality, aspect ratio, size, or any other MiniMagick or Vips supported transformation.
You can read more about Active Storage in the Active Storage Overview guide.
Compared to other storage solutions
A key difference to how Active Storage works compared to other attachment solutions in Rails
is through the use of built-in Blob and Attachment models (backed by Active Record). This means existing application models do not need to be modified with additional columns to associate with files. Active Storage uses polymorphic associations via the Attachment
join model, which then connects to the actual Blob
.
Blob
models store attachment metadata (filename, content-type, etc.), and their identifier key in the storage service. Blob models do not store the actual binary data. They are intended to be immutable in spirit. One file, one blob. You can associate the same blob with multiple application models as well. And if you want to do transformations of a given Blob
, the idea is that you'll simply create a new one, rather than attempt to mutate the existing one (though of course you can delete the previous version later if you don't need it).
Installation
Run bin/rails active_storage:install
to copy over active_storage migrations.
NOTE: If the task cannot be found, verify that require "active_storage/engine"
is present in config/application.rb
.
Examples
One attachment:
class User < ApplicationRecord
# Associates an attachment and a blob. When the user is destroyed they are
# purged by default (models destroyed, and resource files deleted).
has_one_attached :avatar
end
# Attach an avatar to the user.
user.avatar.attach(io: File.open("/path/to/face.jpg"), filename: "face.jpg", content_type: "image/jpg")
# Does the user have an avatar?
user.avatar.attached? # => true
# Synchronously destroy the avatar and actual resource files.
user.avatar.purge
# Destroy the associated models and actual resource files async, via Active Job.
user.avatar.purge_later
# Does the user have an avatar?
user.avatar.attached? # => false
# Generate a permanent URL for the blob that points to the application.
# Upon access, a redirect to the actual service endpoint is returned.
# This indirection decouples the public URL from the actual one, and
# allows for example mirroring attachments in different services for
# high-availability. The redirection has an HTTP expiration of 5 min.
url_for(user.avatar)
class AvatarsController < ApplicationController
def update
# params[:avatar] contains an ActionDispatch::Http::UploadedFile object
Current.user.avatar.attach(params.require(:avatar))
redirect_to Current.user
end
end
Many attachments:
class Message < ApplicationRecord
has_many_attached :images
end
<%= form_with model: @message, local: true do |form| %>
<%= form.text_field :title, placeholder: "Title" %>

<%= form.text_area :content %>

<%= form.file_field :images, multiple: true %>

<%= form.submit %>
<% end %>
class MessagesController < ApplicationController
def index
# Use the built-in with_attached_images scope to avoid N+1
@messages = Message.all.with_attached_images
end
def create
= Message.create! params.require(: ).permit(:title, :content)
.images.attach(params[: ][:images])
redirect_to
end
def show
@message = Message.find(params[:id])
end
end
Variation of image attachment:
<%# Hitting the variant URL will lazy transform the original blob and then redirect to its new service location %>
<%= image_tag user.avatar.variant(resize_to_limit: [100, 100]) %>
File serving strategies
Active Storage supports two ways to serve files: redirecting and proxying.
Redirecting
Active Storage generates stable application URLs for files which, when accessed, redirect to signed, short-lived service URLs. This relieves application servers of the burden of serving file data. It is the default file serving strategy.
When the application is configured to proxy files by default, use the rails_storage_redirect_path
and _url
route helpers to redirect instead:
<%= image_tag<EMAIL_ADDRESS>%>
Proxying
Optionally, files can be proxied instead. This means that your application servers will download file data from the storage service in response to requests. This can be useful for serving files from a CDN.
Explicitly proxy attachments using the rails_storage_proxy_path
and _url
route helpers:
<%= image_tag<EMAIL_ADDRESS>%>
Or configure Active Storage to use proxying by default:
# config/initializers/active_storage.rb
Rails.application.config.active_storage.resolve_model_to_route = :rails_storage_proxy
Direct uploads
Active Storage, with its included JavaScript library, supports uploading directly from the client to the cloud.
Direct upload installation
Include
activestorage.js
in your application's JavaScript bundle.Using the asset pipeline:
//= require activestorage
Using the npm package:
import * as ActiveStorage from "@rails/activestorage" ActiveStorage.start()
Annotate file inputs with the direct upload URL.
<%= form.file_field :attachments, multiple: true, direct_upload: true %>
That's it! Uploads begin upon form submission.
Direct upload JavaScript events
| Event name | Event target | Event data (event.detail ) |
Description |
|---|---|---|---|
direct-uploads:start |
<form> |
None | A form containing files for direct upload fields was submitted. |
direct-upload:initialize |
<input> |
{id, file} |
Dispatched for every file after form submission. |
direct-upload:start |
<input> |
{id, file} |
A direct upload is starting. |
direct-upload:before-blob-request |
<input> |
{id, file, xhr} |
Before making a request to your application for direct upload metadata. |
direct-upload:before-storage-request |
<input> |
{id, file, xhr} |
Before making a request to store a file. |
direct-upload:progress |
<input> |
{id, file, progress} |
As requests to store files progress. |
direct-upload:error |
<input> |
{id, file, error} |
An error occurred. An alert will display unless this event is canceled. |
direct-upload:end |
<input> |
{id, file} |
A direct upload has ended. |
direct-uploads:end |
<form> |
None | All direct uploads have ended. |
License
Active Storage is released under the MIT License.
Support
API documentation is at:
Bug reports for the Ruby on Rails project can be filed here:
Feature requests should be discussed on the rails-core mailing list here:


Jason Ai
Electrical Engineering and Computer Science student at the University of California, Berkeley.
Originally from Gainesville, Florida. Exploring deep learning, app building, and virtual reality.
Portfolio
Bearmaps is an application used for mapping and routing that I created during my data structures course. It has similar functionality as Google maps and covers the East Bay area.
I worked in the Scalable Software Systems lab at the University of Florida. My work was in deep learning, mainly computer vision.
learn about the lab
Check out my other miscellaneous projects and tasks here


The address range $de00-$dfff of the 6510 (see 2.4.1.) is reserved for external expansions of the C64 and normally not connected with any other unit (RAM, I/O). A read access will fetch data that looks random at first sight. The same is true for the upper nybbles of the addresses $d800-$dbff (the Color RAM). But on some C64, this data is not "random" at all but rather identical to the data that the VIC has read from memory in the first phase of the clock cycle. This effect is however not reproducible on all machines and not always precisely. Apart from the fact that this gives the possibility to measure the VIC timing completely by software (the timing diagrams in [4] on which the diagrams in this article are based, have e.g. been created with this method), you can also make the 6510 execute programs in the $de00-area or in the Color RAM if the VIC displays a graphics in such a way that the 6510 gets valid opcodes from the graphics data read by the VIC. With a similar effect you can also write to RAM addresses 0 and 1 from the processor. They are normally not available as the internal data direction register and data register of the 6510 I/O port are mapped to these addresses, and the data bus drivers stay in tri-state on a write access. But the R/W line is set to low state (this can be explained as the I/O port has been integrated afterwards into the existing design of the 6502) and so the byte read by the VIC in the first clock phase is written to RAM. If you want to write a certain value to addresses 0 or 1 you only have to write an arbitrary value to these addresses and take care that the VIC read the desired value from RAM in the clock phase before. The addresses 0 and 1 can of course also be read by the processor. Either with via the $de00-area of with the aid of sprite collisions. For this, you make the VIC display a bitmap starting at address 0 and move a sprite consisting only of one pixel over the single bits of the first two bytes of the bitmap. Depending on whether a collision has been detected or not, you can find out the state of the single bits and put them together to one byte. |


Although the Intermedia Index of this spoken dialogue remains low, there is an interesting intermedia quality that comes from the use of stage space and the setting of the text.
Kokaji’s first act does not have a 'Shite Enters' dan since his appearance is a surprise, an effect that would have been spoiled with an entrance music. Instead, the shōdan opens with the shite's first line of a dialogue. It comes as a yobikake, a call from the distance, when the shite is still out of sight in the mirror room. The waki, standing on Square 6 and facing in his direction, is , and wonders about who is addressing him. Then, the shite enters and engages in a dialogue with the waki, separated from him by the , which creates the dramatic effect of being worlds apart.
As the shite in the role of a young boy finally reaches Square 1 and turns to face Munechika, the of delivery of the last two lines of the shōdan change suddenly. The actors switch to non-congruent singing to share a sentence of poetic text. The waki says a line that summarizes his astonishment : "A voice in heaven." It is followed with the shite’s "echoes on the earth," which confirms his arrival in Munechika’s world. This switch also serves as a smooth transition to the next shōdan, whose poetic text is also sung.


{% extends "layout.html" %} {% block body %} {# for goaltotal in goaltotals | sort(attribute='max_entry_id', reverse=True) #} {% for goaltotal in goaltotals %}


| ID | First Name | Last Name | Problem | Appointment Date | Appointment Time | Send Report | |
|---|---|---|---|---|---|---|---|
| {{employee.id}} | {{employee.patient__first_name}} | {{employee.patient__last_name}} | {{employee.patient__email}} | {{employee.problem}} | {{employee.appointment_date}} | {{employee.appointment_time}} |


8.1 /10
Earth's mightiest heroes must come together and learn to fight as a team if they are to stop the mischievous Loki and his alien army from enslaving humanity...
Run Time: 2h21’ . MMPA: PG-13 . Release: 1 May 2015
Director: Joss Whedon
Stars: Robert Downey Jr., Chris Evans, Chris Hemsworth


Gain Better Ground. Make More Sales.
Get retail and distributors data directly from the field via phones and tablets
1
2
3
Equip your team with phones and tablets
Import your questionnaires in a click
Get geographycally and timely tagged information on your and your competitors distribution performances
Live interactive maps for marketers and sales managers
Visualise sales routes, invoices, marketing performances
Filter by brands, companies, products type, products weight, team, dates
Design your own questionnaires
Simple surveys design path
1Answers
2Questions
3Questionnaires
4Surveys
Choose the type of information you want to collect from shelf life to availability, prices, visibility, presence of marketing items, reps visits, activities and more
Chose the products, brands, categories you want to focus on
Fully editable records
Edit records in the mobile or desktop application
Export all records in excel


Create SeekBars using the CreateSeekBar method of the app object:
The SetRange method of the SeekBar object to sets the value range of the SeekBar and the SetValue method sets the current value.
Use the SetOnTouch method of the SeekBar object to set the name of a function you want to be called when the SeekBar is touched. You can read the 'value' parameter in your callback function to get the position value of the SeekBar
See 'CreateSeekBar for more informations and a complete function list


Each input and output stream is represented by a unique Prolog term, a stream object. In general, this term is of the form
'$stream'(
X)
alias(
Atom)
option of
open/4
. There are also three predefined aliases:
user_input
stdin
stream. The alias can be changed with prolog_flag/3
and accessed by the C variable SP_stdin
.
user_output
stdout
stream. The alias can be changed with prolog_flag/3
and accessed by the C variable SP_stdout
.
user_error
stderr
stream. The alias can be changed with prolog_flag/3
and accessed by the C variable SP_stderr
.
This stream is used by the Prolog top-level and debugger, and
for all unsolicited messages by built-in predicates.
Stream objects are created by the predicate open/[3,4]
ref-iou-sfh-opn and passed as arguments to
those predicates that need them.
Representation for stream objects to be used in C code is different.
Use stream_code/2
to convert from one to the other when
appropriate.


{% extends "RSVP/navbar.html" %} {% block title %}Home Page{% endblock %} {% block content %}
you can accpet or decline those events
{% for event in ownEventsPending %}{% endfor %}
you can accpet or decline those events
{% for event in guestPending %}{% endfor %}
you can accpet or decline those events
{% for event in vendorPending %}{% endfor %}
you can click to edit those events
{% for event in ownEvents %} {% if event.event.event_time > timeNow %}{{timenow}}
{% endif%} {% endfor %}you can click to change your answer
{% for event in guestEvents %} {% if event.event.event_time > timeNow%} {% endif%} {% endfor %}you can click to view those events
{% for event in vendorEvents %} {% if event.event.event_time > timeNow%} {% endif%} {% endfor %}click to view more
{% for event in ownEvents %} {% if event.event.event_time < timeNow %} {% endif %} {% endfor %}click to view more
{% for event in guestEvents %} {% if event.event.event_time < timeNow %} {% endif%} {% endfor %}click to view more
{% for event in vendorEvents %} {% if event.event.event_time < timeNow%} {% endif%} {% endfor %}


Warm up
Table of Contents
- The rules - Points: 50
- Have you read them? (on this website)
# simply read the rules page on the website. You'll find flag in clear-text
CCIT{this_is_a_flag_example}
- Do you know base 64? - Points: 50
- Super easy exercise to try flag submission.
# there is a string inside the pdf
$ echo Q0NJVHtiYXNlNjRfd2lsbF9iZV95b3VyX2ZyaWVuZH0= | base64 -d
CCIT{base64_will_be_your_friend}
- ASCII art from the past - Points: 50
- Super easy exercise to try flag submission.
More than ASCII art?
/ \
/X/ \X\
|XX\ _____ /XX|
|XXX\ _/ \_ /XXX|___________
\XXXXXXX XXXXXXX/ \\\
\XXXX / \ XXXXX/ \\\
| 0 0 | \
| | \
\ / |______//
\ / |
| O_O | \ |
\ _ / \________________ |
| | | | \ /
/ | / | \______/
\ | \ | \ | \ |
__| |__| | __| |__| |
|___||___| |___||___|
-.-. -.-. .. - -- --- .-. ... . -.-. --- -.. . .- ... --. .-. .- ... ...
Hint: Notice that the flag of this simple exercise is not standard (do not add CCIT{...})
# Decode Morse code
CCITMORSECODEASGRASS
- No binary no train - Points: 50
- 01000011 01000011 01001001 01010100 01111011 01101100 00110011 00110100 01110010 01101110 01011111 00110010 01011111 01100011 00110000 01101110 01110110 01000101 01110010 01110100 01111101
# simply convert binary to text
def binary_to_string(s):
return ''.join(chr(int(s[i*8:i*8+8],2)) for i in range((len(s)//8) + 1))
x='010000110100001101001001010101000111101101101100001100110011010001
110010011011100101111100110010010111110110001100110000011011100111011
00100010101110010011101001111101'
print(binary_to_string(x))
CCIT{l34rn_2_c0nvErt}
- Hackerino - Points: 476
- The tag is the suggestion.
$ strings staccah.jpg | grep CCIT{.*}
CCIT{strings_resturns_printable_characters_in_f1l3s}
- Mickey Mouse - Points: 495
- With this image strings does not work...This is an indexed image.
Hint: See for an example https://en.wikipedia.org/wiki/Indexed_color
# for solving this challenge I use the following online tool
# https://georgeom.net/StegOnline/upload
# with the option LSB Half
CCIT{Congrat_you_know_indexed_m0d3}
- Hackerino (again) - Points: 500
- Ohhhh, they are tracking us... follow the link and and find the flag
# navigate to the image view page by adding 'staccah.jpg' at the end of
# the link; open developer tool and search for the network page, then
# in the header section of the 'file.jpg' there's the cookie flag in hex
# decode it and get your flag
hex_str = "0x434349547b536f6d6574696d655f6330306b6965735f63616e5f747261636b5f796f75217d"[2:]
bytes = bytes.fromhex(hex_str)
ascii_string = bytes.decode("ASCII")
print(ascii_string)
CCIT{Sometime_c00kies_can_track_you!}
- Googlebot - Points: 500
- Googlebot is a respectable web crawler, but you are human... follow the lik and find the flag
# navigate to the link and add at the end /robots.txt
# we'll find information about a disallowed directory
# navigate to that directory and find the flag
CCIT{this_secret_fl@g_will_not_be_crawled}


How to fix Galaxy Note 9 overheating issues
by Bogdana ZujicSamsung Galaxy Note 9 is one of Samsung’s top-notch smartphones. This phone has great performance when it comes to speed and camera. The design is also fantastic. But, from time to time you may stumble upon some issues, just like on every other smartphone. One of the problems is the overheating that can be pretty annoying. What’s more, it can damage your device. Let’s see how to fix Galaxy Note 9 overheating issues.
See also: How to fix Galaxy Note 9 GPS issues
How to fix Galaxy Note 9 overheating issues
Solution 1: Remove the case
If you own a case for your Galaxy Note 9 it is advisable to remove it if you noticed that your device is getting hot. Not all the cases are the quality ones. Some are made from poor materials and can heat up the phone. Once you remove the case, avoid using the phone until it cools off completely.
Solution 2: Restart your phone
This is the next thing for you to do. A restart can really do miracles. We always point out why – it is because it clears the apps and processes that keep running in the background. It also refreshes the memory that will automatically improve the performance of your device. That is why it is important to restart your phone every once in a while, especially if you noticed the heat.
Solution 3: Turn off GPS, Bluetooth, Wi-Fi, and mobile data when not in use
We are dependent on all of the services phones are offering these days. But, the truth is we don’t need them all turned on all the time, right? So, when services such as Wi-Fi, Bluetooth, GPS, and mobile data are not in use, you should turn them off.  They can also raise the heat.
Solution 4: Update the apps
Another important thing is to keep all of your apps up to date. Developers are constantly improving the apps and every update brings new features, fixes, etc. After each update, the app is working better. What you need to do is head to Play Store and tap on the hamburger icon. Then click on My apps & games, and then tap Update all. This is much easier than to update the apps one by one.
Solution 5: Update the software
Software updates also bring bug fixes, new features, and more. So whenever there is a fresh version, you should get it. Here are the steps:
- Go to Settings
- Tap Software updates
- Tap Check for updates
If there is a new version, follow a few simple on-screen steps to download and install it.
Solution 6: Remove the apps you don’t use
We tend to keep hundreds of apps on our phones, the apps we don’t actually use. All of them can have an impact on the phone, its battery, performance, etc. So, you should remove the apps you don’t use any longer. You may prevent overheating, and you will also notice better performance and longer battery life.
Solution 7: Use the proper charger
Some users noticed their devices overheat when charging. You should make sure that you are using the original charger that came with your device. Also, do not keep your device connected to the charger longer that is needed. As soon as your phone is charged, remove the cable.
Solution 8: Factory data reset
If nothing else seems to be working, it is the time for factory data reset. Going for this option is a bit more complicated because a factory data reset deletes everything the user stores on its phone. So, the most important thing here is to back up all your files. After that, do the following:
- Go to Settings
- Now go to General Management
- Tap Reset > Factory data reset > Reset
- Next, tap Delete All
- Enter your PIN, pattern, or password if required
- Tap Confirm.
Let your device finish the process. Once it is done, follow on-screen steps to set it up from scratch.


Hive Docs
MIRA: Performance Tuning
Provides a way to get the most performance on specific hardware.
Without MIRA, the requirement of RAM to run a steemd
node will grow indefinitely which is clearly unsustainable. To extend our runway into the distant future, MIRA-enabled nodes will primarily be used. MIRA is based on RocksDB technology which is highly configurable and somewhat complex. MIRA will behave differently on different pieces of hardware so it is virtually impossible to create a “one-size fits all” configuration; therefore it is important to provide a way for users to get the most performance from their particular hardware. This guide aims to do just that. This guide should be kept up-to-date and improved within the steemd
repository for documentation purposes. Improvements should be made in to a pull request against MIRA Tuning Guide.
Preface
After MIRAs initial development efforts we released the Basic MIRA Configuration Guide to help bootstrap users attempting to use MIRA enabled steemd
. There is actually much more fine tuning that can be done to improve MIRA’s performance and I’d like to take the time now to share it with the community. We will break up this process into three phases:
- Phase 1: Gathering statistics
- Phase 2: Analyzing statistics
- Phase 3: Applying performance recommendations
Phase 1: Gathering statistics
As you may have noticed, within the database.cfg
file, there is a global option called statistics
. By default this is set to false
. This must be set to true
before proceeding! Here is an example of a database.cfg
with statistics enabled:
$ cat ~/.steemd/database.cfg
{
"global": {
"shared_cache": {
"capacity": "5368709120"
},
"write_buffer_manager": {
"write_buffer_size": "1073741824"
},
"object_count": 62500,
"statistics": true
},
"base": {
"optimize_level_style_compaction": true,
"increase_parallelism": true,
"block_based_table_options": {
"block_size": 8192,
"cache_index_and_filter_blocks": true,
"bloom_filter_policy": {
"bits_per_key": 10,
"use_block_based_builder": false
}
}
}
}
Once statistics has been enabled, simply perform the action you’d like to optimize. In my example, I will be syncing up the testnet. Start steemd
like you otherwise normally would. Please be aware that enabling statistics causes a drastic performance impact - you won’t want to run this in production. By default, statistics are dumped every 10 minutes so you will want to run for a while. The more data you gather, the more accurate the performance tuning suggestions will potentially be.
Phase 2: Analyzing statistics
Luckily, you won’t need intimate knowledge of RocksDB in order to analyze the statistics data. The developers working on RocksDB have provided us with a tool that can read the gathered statistics and make performance tuning recommendations. This tool can be found within the steemd
repository at programs/util/rocksdb_advisor.sh
. From the program/util
directory run the tool:
$ sh rocksdb_advisor.sh
If all goes well, you should get output for each object specified in the rocksdb_advisor.sh
file. Here is an example of the possible output:
Advisor for account_authority...
WARNING(TimeSeriesData) check_and_trigger: float division by zero
Rule: bloom-not-enabled
TimeSeriesCondition: bloom-not-enabled statistics: ['[]rocksdb.bloom.filter.useful.count', '[]rocksdb.bloom.filter.full.positive.count', '[]rocksdb.bloom.filter.full.true.positive.count'] behavior: evaluate_expression expression: keys[0]+keys[1]+keys[2]==0 aggregation_op: avg trigger: {'ENTITY_PLACEHOLDER': [0.0, 0.0, 0.0]}
Suggestion: inc-bloom-bits-per-key option : bloom_bits action : increase suggested_values : ['2']
scope: entities:
{'ENTITY_PLACEHOLDER'}
scope: col_fam:
{'boost\\:\\:mpl\\:\\:v_item<steem\\:\\:chain\\:\\:by_id, boost\\:\\:mpl\\:\\:vector0<mpl_\\:\\:na>, 0>', 'boost\\:\\:mpl\\:\\:v_item<steem\\:\\:chain\\:\\:by_last_owner_update, boost\\:\\:mpl\\:\\:vector0<mpl_\\:\\:na>, 0>', 'boost\\:\\:mpl\\:\\:v_item<steem\\:\\:chain\\:\\:by_account, boost\\:\\:mpl\\:\\:vector0<mpl_\\:\\:na>, 0>', 'default'}
In reality you will get significantly more output than above. For the sake of simplicity, we will work with one performance suggestion. We can see here the rocksdb_advisor.sh
provided a suggestion for the account_authority_object
database.
Suggestion: inc-bloom-bits-per-key option : bloom_bits action : increase suggested_values : [‘2’]
Let’s move on to applying the advisor’s suggestions.
Phase 3: Applying performance recommendations
If you want to apply the same options to all databases, you would just change the base
setting as this is applied to every database within a MIRA enabled steemd
node.
You may notice that you will get different recommendations for different objects. In MIRA’s implementation, each object is its own RocksDB database. How do we implement different options for different databases?
Configuration overlays
A configuration overlay is a set of options overriding the base configuration to be applied to a specified database. In our default configuration, you may notice that one of the objects is called base
. These settings are applied to every database unless a configuration overlay overrides them. A configuration overlay takes the same options as base
. As an example, we will override bits_per_key
for the account_authority_object
.
{
"global": {
"shared_cache": {
"capacity": "5368709120"
},
"write_buffer_manager": {
"write_buffer_size": "1073741824"
},
"object_count": 62500,
"statistics": true
},
"base": {
"optimize_level_style_compaction": true,
"increase_parallelism": true,
"block_based_table_options": {
"block_size": 8192,
"cache_index_and_filter_blocks": true,
"bloom_filter_policy": {
"bits_per_key": 10,
"use_block_based_builder": false
}
}
},
"account_authority_object": {
"block_based_table_options": {
"block_size": 8192,
"cache_index_and_filter_blocks": true,
"bloom_filter_policy": {
"bits_per_key": 12,
"use_block_based_builder": false
}
}
}
}
Note: When overriding a configuration value, you must override the complete first level option (such as
block_based_table_options
in the above example).
Even though we did not specify optimize_level_style_compaction
and increase_parallelism
to the account_authority_object
configuration, they are inherited from base
.
Available options
Not every RocksDB option is made available to MIRA configurations. It is very possible that the RocksDB tool can recommend changing an option that is unavailable through MIRA. Feel free to add it and create a pull request, especially if it is improving your nodes performance. You can see a complete list of available options in the codebase in libraries/mira/src/configuration.cpp. View the recommended options and check the list; I tried to preserve the naming conventions during implementation to make this process easier.
Conclusion
You may need to repeat this process to achieve optimal results. There is no guarantee that you will see performance improvements as this is experimental in nature. When you are benchmarking your configuration or you have completed your performance tuning, remember to set statistics
to false
.
Happy performance tuning and good luck!
See: MIRA: Performance Tuning by @gerbino


Disney Plus hits 10m subscribers on first day
The entertainment giant has invested billions in its streaming service.
Disney Plus says it hit more than 10 million sign-ups on its first day of launch, far exceeding expectations.
The entertainment giant’s mix of Marvel and Star Wars movies and shows, classic animated films and new series appears to be an immediate hit after its launch.
Disney has invested billions in its streaming service, which costs 7 dollars a month or 70 dollars a year after a seven-day free trial.
Customers of some phone and home-internet plans were offered a year free.
Disney did not break down where the subscriptions came from or if they were free or paid monthly or yearly. Some analysts thought it would take Disney a year to reach 10 million subscribers.
Netflix has garnered 158 million subscribers since launching its streaming platform in 2007.


Running errands today. Getting storage unit and roof-top box for car to stretch our space.
8/30/2008, 11:18:59 AM
Favs: 0
Retweets: 0
link--- layout: tweet ---
Running errands today. Getting storage unit and roof-top box for car to stretch our space.
8/30/2008, 11:18:59 AM
Favs: 0
Retweets: 0
link


You may call me James.
Developing for the web since 2015, helping users and organizations reach their goals faster, by developing faster, useful and responsive websites.
I see it like this: Websites are solutions to people's problems.
A brilliant solution to the wrong problem can be worse than no solution at all.
therefore I find the right problem and then fulfill human needs.
I spend at least five hours a week learning and/or reading, sharpening the saw, as Stephen Covey would say. I enjoy traveling, dancing and tacos. You can find my social networks on the footer of this page.
I do care about people. Here is a list of this website features in no particular order:
If you are interested you can check it on github.


--- title: BFBaseCollection keywords: documentation theme, jekyll, technical writers, help authoring tools, hat replacements last_updated: Dec 03, 2018 sidebar: matlab_docs_sidebar permalink: bfbasecollection.html folder: mydoc ---
BFBaseCollection Abstract class which is extended by both
BFCOLLECTIONS and BFDATASETS.
Objects of this class have a set of 'items' which can either be a
datapackage or a datacollection.
| Superclasses | BFBaseDataNode |
| Sealed | false |
| Construct on load | false |
| BFBaseCollection | Constructor of the BFBASECOLLECTION class |
| items | The contents of a folder or a dataset. |
| name | Name of the datanode |
| session_ | Session ID |
| type | Type of the datanode |
| createFolder | creates a new folder within the object. | |
| Static | gotoSite | Opens the Blackfynn platform in an external browser. |
| listItems | Returns list of items in the dataset or collection. | |
| Sealed | methods | Shows all methods associated with the object. |
| update | Updates the current object in the platform. |
| ObjectBeingDestroyed | Notifies listeners that a particular object has been destroyed. |


Classic style algorithms can also use Algorithm Framework modules. This allows you to get the best of both styles of algorithm design, combining easily pluggable modules with the superior control of classic format.
Examples of popular use-cases of a hybrid approach are:
- Using framework universe selection models as the assets to select.
- Using portfolio construction models to decide portfolio allocations.
- Using a risk control model for free portfolio risk monitoring.
- Passing data between modules freely without concerns of the module interface.


I added the Logging gem to a project I’m working on, and so far I like it a lot. It is modelled after log4j and, as such, allows you to send logs to syslog (our main usage for it).
One issue that I’ve run into with using syslog(-ng) as a Rails logger is that Rails tends to spit out multi-line log events. Unless you have a very new version of syslog-ng, this may cause syslog to interpret each new line as a new event. Unfortunately subsequent lines get written with a blank program identification, which can cause filtering rules in syslog-ng to break.
My solution to this was to monkeypatch the Logging::LogEvent
with an
Around Alias. This causes the data
accessor to return a string with
the newlines substituted with a different delimiter, <<
in this
case. I added the Around Alias to the end of the config/logging.rb
file:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
So far it’s working quite nicely. Any better ways of doing it? Let me know!


All practices are different, their use of product, Practice Management Systems and methods of operation. To assist you with preparing for your engagements we provide access to resources that can help you be as effective as possible when confronted with unfamiliar products and systems.


@()
Pere:
- is a happily married nerd
- is from the lovely city of Barcelona
- is a supporter of Manchester United
- doesn't miss a chance to evangelize Scala and Play to his workmates
- owns a Droid brought by a friend from Hong Kong
- dislikes Apple and its drones


You are using the old Grayman theme. This theme is now currently on Extended Support, no major changes will be made, and feedback will be ignored. However, it will still be updated to latest version until the end of 2021.
Created by Mystic Moonlight & Community Contributors.
Irregular Corporation, the Irregular Corporation logo, PC Building Simulator, the PC Building Simulator logo are trademarks and/or registered trademarks of Irregular Corporation. We are not affliated with Irregular Corporation. All rights belong
to Irregular Corporation.


Paul: How to set up multiple data steams with Pachube
Submitted by TrystanLea on Wed, 13/04/2011 - 23:29
I have moved this post from the old forum:
Paul:
I have downloaded the NUClient Pachube, however, I made changes to the code because I am using an ardiuno ethernet shield. I have one graph working fine but cannot figure out how to add another feed. Has anyone put up their data on pachube and have sample code?
Here is the code:
/*
Nuelectronics ethernet shield client example - sending data to pachube
Created by Trystan Lea, April 31 2010
GNU General Public Licence: [openenergymonitor.org]
*/
#include <SPI.h>
#include <Ethernet.h>
//Set these to your feed ID and pachube api key
#define SHARE_FEED_ID // this is your Pachube feed ID that you want to share to
#define PACHUBE_API_KEY "" // fill in your API key
//Do things that need to be done even when
//the ethernet shield is connecting etc here.
//If the client has finished sending.
//Increment values so that we can see something happening!
valA += 1.2;
valB += 0.2;
//Do things that only need to be done when
//the client has done sending.
delay(10000);
//Tell the client that it is not done and it needs to start sending again.
Serial.println("start";
//client.process opens and closes the client connection
//It returns a one when the connection is at the data
//sending stage.
//client process will also check for pings
if(client.connect())
{
Serial.println("connecting";
//This seems to work set as 1?
content_length = 1;
// 2) Send the data - comma seperated
client.print(valA);
client.print(",";
client.print(val;
client.println();
//sends all of the above
client.stop();
Serial.println("data sent";
}
else {
Serial.println("Failed to connect to client";
}
}
Thanks,
Paul.
--------------------
Reply:
Figured out problem. The content length was the main problem and the client.println();
However, I am trying to find a way to find the length of double for content length. I see ways to do it for ints and strings but I cannot find any examples to find length for doubles.
Paul: How to set up multiple data steams with Pachube
Submitted by TrystanLea on Wed, 13/04/2011 - 23:29I have moved this post from the old forum:
Paul:
I have downloaded the NUClient Pachube, however, I made changes to the code because I am using an ardiuno ethernet shield. I have one graph working fine but cannot figure out how to add another feed. Has anyone put up their data on pachube and have sample code?
Here is the code:
/*
Nuelectronics ethernet shield client example - sending data to pachube
Created by Trystan Lea, April 31 2010
GNU General Public Licence: [openenergymonitor.org]
*/
#include <SPI.h>
#include <Ethernet.h>
//Set these to your feed ID and pachube api key
#define SHARE_FEED_ID // this is your Pachube feed ID that you want to share to
#define PACHUBE_API_KEY "" // fill in your API key
byte mac[] = { 0x90, 0xA2, 0xDA, 0x00,0x3B, 0x8F};
byte ip[] = { 192,168,2,50 };
byte gateway[]={192,168,2,1};
byte subnet[] = {255,255,255,0};
byte server[] = { 173, 203, 98, 29 }; //Pachube.com
//Some variables to send
double valA = 10.23;
double valB = 22.34;
int content_length;
Client client(server, 80);
void setup() {
Ethernet.begin(mac, ip,gateway,subnet);
//analogReference(EXTERNAL);
Serial.begin(9600);
delay(1000);
Serial.println("Connecting...";
}
void loop()
{
//Do things that need to be done even when
//the ethernet shield is connecting etc here.
//If the client has finished sending.
//Increment values so that we can see something happening!
valA += 1.2;
valB += 0.2;
//Do things that only need to be done when
//the client has done sending.
delay(10000);
//Tell the client that it is not done and it needs to start sending again.
Serial.println("start";
//client.process opens and closes the client connection
//It returns a one when the connection is at the data
//sending stage.
//client process will also check for pings
if(client.connect())
{
Serial.println("connecting";
//This seems to work set as 1?
content_length = 1;
// 1) Send feed id, pachube api key
client.print("PUT /api/";
client.print(SHARE_FEED_ID);
client.print(".csv HTTP/1.1\nHost: pachube.com\nX-PachubeApiKey: ";
client.print(PACHUBE_API_KEY);
client.print("\nUser-Agent: ecotinker";
client.print("\nContent-Type: text/csv\nContent-Length: ";
client.print(content_length);
client.print("\nConnection: close\n\n";
// 2) Send the data - comma seperated
client.print(valA);
client.print(",";
client.print(val;
client.println();
//sends all of the above
client.stop();
Serial.println("data sent";
}
else {
Serial.println("Failed to connect to client";
}
}
Thanks,
Paul.
--------------------
Reply:
Figured out problem. The content length was the main problem and the client.println();
However, I am trying to find a way to find the length of double for content length. I see ways to do it for ints and strings but I cannot find any examples to find length for doubles.
Thanks.


Please see the ChangeLog for a list of the improvements and fixes present in each version of Espruino.
NOTE: This will only update devices that contain the Espruino USB Bootloader (like the Original Espruino Board, Espruino Pico or WiFi). To update other devices please see this page.
Just click the button below and follow the on-screen instructions.
If you know the exact URL of the binary you wish to update (for instance from a cutting-edge build), please enter it below and click the button:


This is the 15th MEU Cadet Corps.
In Arma, there are no levels earned through grinding missions. There is no end game. Every player has access to the same equipment and role as every other. The difference in the 15th Cadet Corps is that you earn that access, and the right to lead others, through training, practice, commitment and through exemplifying the U.S. Marine Corps traits and principles of leadership.
We don’t put the effort into it because we’re told to. We do it for the friend we’ve made next to us, because they’re putting the effort into it for the friend next to them, and that’s you.
It’s going to be hard. It’s going to require a commitment from you. We don’t apologize for that. We celebrate it.
Begin something that will last. Forge friendships through teamwork and join the 15th MEU Cadet Corps today.
History:
On the 6th of April 2015, Commanding Officer Colonel J. Penny wrote on his commander blog about idea of making "Junior Cadet Corps". More can be read here. This idea culminated into what we now know as the 15th Marine Expeditionary Unit Cadet Corps. The Cadet Corps was stood up after the 2015 winter stand down and the rest is history.
Requirements:
- You must be no more than 16 years old to join the Cadet Corps
- You must be at least 14 years of age to join the Cadet Corps
- Those above the age of 16 must join the main unit
- You must have Arma 3 installed with a valid Player ID
- You are required to download teamspeak 3 and have a working microphone/speakers/headset
- You must have the ability to attend two unit wide events taking place on the first and third saturdays of the month. These events take place at 1900 CST - 9:30 CST
- You are also required to attend fireteam, Squad, and Platoon Trainings that are section specific times
Available MOS:
The Cadet Corps offers a variety of jobs (also known as MOS's and billets) aimed at preparing you for the 15th MEU(SOC) Realism Unit.
- Ground Combat Element
- 0311 Rifleman
- 0331 Machine Gunner
- 0351 Assualtman
- 1812 M1A1 Tank Crewman
- HM-8404 Hospital Corpsman


Landing Page
Special Projects
This story is part of a series of specially designed stories that represents some of the best journalism The Post has to offer. Check out the rest of the special projects here.
Marcus Pavilonis
10/4/2018
Many thanks to The Post for creating this rainbowlicious edition and for ongoing support throughout the year.
I am often asked if being “a LGBT” is a choice? Many have responded to this question with, “Why would anyone choose this life?” or “Why would anyone choose the hardship?” or “Why would anyone choose to be discriminated?” Most recently, however, I’ve decided to rant to the world, “Why NOT choose being queer?!?!” I am not ashamed, and there is nothing wrong or “less than” for being me, or being you, or being us. We need to take pride in our is-ness and should not, cannot, will not feel shame or have folks throw misguided shade.
I honestly don’t think LGBT identities are choices. However, if I could choose, I would choose queer every day. This is not to undermine the experiences of hardship that many, myself included, have experienced: discrimination, rejection, isolation, violence and confusion. But I also have done some incredible things like engaging different universities in faith-grounded conversations regarding inclusion of LGBTQ students, getting to hang out with folks who teach me every day about beingness, and getting to join my voice with the countless others advocating for “all are welcome” to truly mean “all are welcome” at Ohio University and beyond. Also, it’s fun being the person who “scares inclusivity” into people on and off campus.
I don’t want us to feel bad about ourselves or for others to take pity — no to the pity!
It is an exciting moment to live into pride at OU — we are celebrating the LGBT Center’s 20th rainbowversary. At the same time, this pride is not at the expense of raising awareness about the challenges and tragedies we have endured and continue to endure as a community.
• The murders of transgender people, especially trans women of color, in the U.S. and around the world that go unreported and unnoticed.
• The microaggressions that students experience everyday in the classroom and other spaces on Athens campus and all OU campuses.
• The reality that, yes, we can get married, but we can also be fired in 30 states and executed in 7 countries.
• Folks in our community who are targeted with sexual violence and other forms of violence for being LGBT with little or no recourse from our community.
• The whitewashing, ciswashing and heterowashing of the radicalness of LGBTQ folks, our contributions, and our stories.
• The kids who are kicked out of their homes for living and loving beyond the norm.
• The countless and often unknown victims of sexualized violence who identify as trans, gender variant or queer.
• Just a month ago, a 9-year-old gay boy committed suicide in Colorado.
Claiming and reclaiming that we are pride is a re-energizer to continue to counter the violence and silencing of queer lives. We are pride, and we honor with pride:
• Sylvia Rivera, Marsha P. Johnson, Miss Major and all those who refused to be bullied and silenced at Stone Wall.
• The repeal of Don’t Ask Don’t Tell in 2010.
• June 26, 2015, when marriage equality became the law of the land.
• We are living at a time where there are more and more out political candidates running for office and being elected into office.
• In 2017, the City of Athens banned conversion therapy on minors.
• In June, we had our first Pride Parade as a community.
OU has and is and will be taking steps to fully live into diversity and inclusion. We have an LGBT Center, gender-neutral housing, the LGBTQ Studies Certificate, a name and pronoun policy, trans healthcare for students and employees and the LGBT Living Experience. Also, we are creating more gender-inclusive restrooms.
We reflect and we remember our heroes, sheroes and *insert-gender-neutral-pronoun*-roes: Gloria Anzaldua, Albus Dumbledore, Bayard Rustin, Ellen Page, Frank Ocean, Carmen Carrera, Langston Hughes, Harvey Milk, Alice Walker, Neil Patrick Harris, Zachary Quinto, RuPaul, Tom Daley, Laverne Cox, Audre Lorde and Margaret Cho. They are trailblazers past and present, who spark and rekindle our commitment to embodying #bobcatrainbowwarriorfierceness.
We are pride! All of us, without exception, are fabulous, fierce, glittery, amazing and unicornlicious! We are pride, we are here, we are queer, we have always been here and we will always be here. Cheers and queers!
delfin bautista (pronouns: they/them/their) is the director of the LGBT Center at Ohio University. Do you have a question relating to the LGBT community? Email them to<EMAIL_ADDRESS>or<EMAIL_ADDRESS>tweet @oulgbtcenter with #qaqueer, tumblr at oulgbtcenter, or post/message to the center’s Facebook page (oulgbtcenter). Individuals who submit questions will appear anonymously in our responses.  Don’t hold back!
Landing Page
This story is part of a series of specially designed stories that represents some of the best journalism The Post has to offer. Check out the rest of the special projects here.


New Match
-
autorenewGo Live
-
addGame
-
line_weightDescription
-
location_onLocation
-
faceTeam 1
-
faceTeam 2
Background Photo
-
insert_photoPhoto


{% load lineage %}
Cover is a one-page template for building simple and beautiful home pages. Download, edit the text, and add your own fullscreen background photo to make it your own.
Learn more


Ottawa's got just what you're looking for.
Ottawa Kayak School
RiverRun Rafting
OWL Rafting
Wilderness Tours
Great Canadian Bungee
Pure Life Adventures
Altitude Gym
Ottawa River Guided Fishing


Distributed Web of Care
Announcing Summer 2018 Fellows
The Distributed Web of Care team is excited to announce two fellows for Summer 2018. We are thankful to everyone who applied to the fellowship. We look forward to engaging with the community via public programs in NYC this July.
Design & Storytelling Fellow
cleo (yuekai) miao is a Chinese artist currently based in boston, MA. She is an anti-disciplinary media artist and works to make sense of identities and bodies in virtual spaces. She plays with both the poetics and the absurdity of digital tools and culture, and considers the reality that is configured and mediated by images. Through playful investigation, cleo questions and spectates the role and affect of photographic images and mediums. Having grown up with the Chinese Internet, she is passionate about new possibilities of freedom and democracy offered by technology. However, at the same time she is wary of the systematic and algorithmic oppression and violence supported by unethical or inconsiderate technological infrastructures.
Technology & Documentation Fellow
Callil Capuozzo is a designer at General Trademark, an educator at the School of Visual Arts and a researcher at New Computer Working Group. He is interested in building creative tools through collaboration with artists, scientists and engineers.
We are planning to offer skillshares in July in partnership with the Ace Hotel New York, July 1, July 8, July 15, and July 22. We will announce details about workshops and events via Taeyoon Choi’s mailing list.
We look forward to working with a diverse group of stewards. Stewards are guest collaborators, contributing to DWC initiatives with their domain expertise. Stewards are often invited to present at DWC events and to contribute to building the code base as well as code of conduct. In this volunteer role, stewards will lead their own projects utilizing access to technical resources and collaboration with the fellows and with Taeyoon directly. You can apply to become a steward on an ongoing basis.
An open call for Winter 2018 fellowship will be announced in August.
Distributed Web of Care is an initiative to code to care and code carefully.
The project imagines the future of the internet and consider what care means for a technologically-oriented future. The project focuses on personhood in relation to accessibility, identity, and the environment, with the intention of creating a distributed future that’s built with trust and care, where diverse communities are prioritized and supported.
The project is composed of collaborations, educational resources, skillshares, an editorial platform, and performance. Announcements and documentation are hosted on this site, as well as essays by select artists, technologists, and activists.
-
Jan 4, 2022
garden.local
-
Jun 7, 2020
Community Over Commodity
-
Mar 18, 2020
Oddkins
-
Oct 10, 2019
New Merchandise
-
Aug 10, 2019
Announcing Decentralized Networks Workshop
-
May 24, 2019
On Stewardship
-
May 23, 2019
Movement Scores
-
May 4, 2019
Who Owns the Stars: The Trouble with Urbit
-
May 1, 2019
Announcing WYFY School with BUFU
-
Mar 5, 2019
Announcing Lecture Performance at the Whitney Museum
-
Feb 25, 2019
Announcing Call for Deaf or Disabled Stewards
-
Feb 7, 2019
Making Space in Online Archives
-
Jan 29, 2019
Accessibility Dreams
-
Jan 28, 2019
Creative Self Publishing
-
Jan 11, 2019
Racial Justice in the Distributed Web
-
Dec 29, 2018
Announcing LACA Residency
-
Dec 28, 2018
Announcing DWC at Code Societies
-
Dec 21, 2018
Building a Museum 353 Years in the Future
-
Sep 11, 2018
Finding Intimacy within Black Feminist Criticism
-
Jul 26, 2018
still stuck with words
-
Jul 26, 2018
Distributed Dance Floor
-
Jun 27, 2018
Announcing Skillshares: Peers in Practice
-
Jun 27, 2018
Announcing the Distributed Web of Care Party
-
Jun 27, 2018
Communities and New Infrastructures
-
Jun 27, 2018
New Gardens
-
May 20, 2018
Announcing Summer 2018 Fellows
-
Apr 28, 2018
DWC Merchandise: Care Shirt & Hoodie
-
Apr 27, 2018
Announcing Artists in Residence at Ace Hotel New York
-
Apr 18, 2018
Documentation: Ethics and Archiving the Web
-
Apr 18, 2018
Call for Fellows and Stewards
-
Apr 17, 2018
Code of Conduct
-
Mar 18, 2018
About
-
Distributed Web of Care


Goals
The current state of the art in open source debuggers are that they work in the common cases for C applications, but don't handle many "hard cases" properly. For example, C++ expression parsing, handling overloading, templates, multi-threading, and other non-trivial scenarios all work in some base cases, but don't work reliably.
The goal of LLDB is to provide an amazing debugging experience that "just works". We aim to solve these long-standing problems where debuggers get confused, so that you can think about debugging your problem, not about deficiencies in the debugger.
With a long view, there is no good reason for a debugger to reinvent its own C/C++ parser, type system, know all the target calling convention details, implement its own disassembler, etc. By using the existing libraries vended by the LLVM project, we believe that many of these problems will be defined away, and the debugger can focus on important issues like process control, efficient symbol reading and indexing, thread management, and other debugger-specific problems.
Some more specific goals include:
- Build libraries for inclusion in IDEs, command line tools, and other analysis tools
- High performance and efficient memory use
- Extensible: Python scriptable and use a plug-in architecture
- Reuse existing compiler technology where it makes sense
- Excellent multi-threaded debugging support
- Great support for C, Objective-C and C++
- Retargetable to support multiple platforms
- Provide a base for debugger research and other innovation


In the root level of your project, create a directory called Tests.
Inside Tests create a directory for holding your test suite module. It is recommended that it is the same name as the module you wish to test, suffixed with Tests (for example: if you have a module Foo that you would like to test, create a directory FooTests).
Create a new Swift file in the test suite directory (for example: if you would like to test the Frob feature of your Foo module you might call it FooTests/FrobTests.swift)
Add import XCTest at the top
Add a line @testable import
Create your testing class as a subclass of XCTestCase (for example: class FrobTests: XCTestCase { ... })
Create each test case as a different function within the testing class (for example: func testFrobbingTheFoo() { ... }). Note that each function must begin with the string “test”. You can use Apple’s guide for tips on how to make good test cases.
For Linux compatibility, you will need to add an additional class variable to your test class named allTests which has a signature like this: (substituting the name of the class in place of FrobTests)
static var allTests : [(String, (FrobTests) -> () throws -> Void)]
This should hold an array of tuples matching a string name to the function name for each test case. For example:
static var allTests : [(String, (FrobTests) -> () throws -> Void)] {
return [
("testFrobbingTheFoo", testFrobbingTheFoo)
]
}
Inside your Tests directory, create a new file called LinuxMain.swift
In this file import all your test modules. The names of the test modules are the names of your test suite directories (eg: FooTests, which will import any classes defined in Swift files inside the FooTests module).
Import XCTest as well
Invoke XCTMain with an array as follows:
XCTMain([
testCase(FrobTests.allTests)
])
In your projects root directory, run the command swift test after having built them using swift build.
Tests/FooTests/FrobTests.swift:
import XCTest
@testable import Foo
class FrobTests: XCTestCase {
static var allTests: [(String, (FrobTests) -> () throws -> Void)] {
return [
("testFrobbingTheFoo", testFrobbingTheFoo)
]
}
func testFrobbingTheFoo() {
let foo = Foo()
foo.frob()
foo.frob()
XCTAssertEqual(2, foo.frobCount, "incorrect number of frobs recorded")
}
}
Tests/LinuxMain.swift:
import XCTest
@testable import FooTests
XCTMain([
testCase(FrobTests.allTests)
])
Sources/Foo/Foo.swift:
public class Foo: CustomStringConvertible {
internal var frobCount = 0
public func frob() {
frobCount = frobCount + 1
}
public var description: String {
return (frobCount == 0 ? "unfrobbed" : "frobbed")
}
public init() {}
}


--- layout: archive title: Zulip Chat Archive permalink: /stream/113489-new-members/topic/pattern.20matching.20exists.20in.20tactic.20mode.html ---
I have an expression with type \exists x y z, e
. Is there any way to quickly get to e
? Currently, I have to continually perform cases
on the expression, which is quite tiresome.
https://github.com/leanprover-community/mathlib/blob/master/docs/tactics.md#rcases
Thanks, @Reid Barton!
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC


20 Oct 2016
Plan of attack (not necessarily sequential):
- Get up to speed with Boyd’s notes on subgradient methods + alternating
projections
- Skim Bertseka’s sections on subgradient methods
- Skim survey of speedup techniques for alternating projections
(under/overprojection, dyskstra)
- Skim ideas for QP-acceleration (Pang’s work)
- Contribute — propose acceleration techniques (non-rigorously at first!)
- QP “line search”
- random perturbations & drift directions
- interpolating between new data and previous estimate
- sketch system of inequalities implied by collection of supporting
hyperplanes
- What additional structure do we gain / what structure do we lose by changing
one of the sets to a convex cone? (different types of cones – second order,
exponential, …)
Read more
17 Oct 2016
Until now, I’ve spent most of my time reviewing foundations and learning
about classic methods, including subgradient methods, proximal methods,
and localization methods.
I should begin playing with these methods. That is, I need to take a step
back (or rather, a step forward?) from the literature, and I need to begin
creating and contributing on my own.
There are two things that are immediate with which I would like to play. They
both fall under the category of variants on localization methods.
- The first is a variant on the “line search” used in alternating projections,
where the sets and are affine and conical, respectively. Can we
play with how the iterates are chosen? (Like under- and over-projection, for
example.) And will playing with these iterates speed up convergence?
- The second is a variant on the cutting plane method. Can we be smarter
about which cutting planes we keep and which ones we discard? Can randomness
help us? Can we “sketch” a convex function? Can we represent it in a
lower-dimensional space?
A third project that I am interested in is applying randomized methods to
convex optimization or convex feasibility problems (or even to nonconvex
feasibility problems). Mert Pilanci does work in this area, and he is at
Stanford.
17 Oct 2016
Hallac specializes in methods for scalable optimization and
unsupervised learning (time series anomaly detection …).
- An interesting idea: Can we find a way of marrying
first-order methods and second-order methods? A system
that tells you whether a first-order method would suffice
for your problem, or whether you require a second-order
method. A pseudo-first-order method that used approximate
Newton steps when required. Along the lines of randomization.
- Why don’t more people use convex optimization / cvxpy?
According to Hallac, there simply isn’t much awareness about
it. That’s why Boyd travels so often, preaching about DCP
/ cvxpy. Moreover, people don’t have sufficient mathematical
training.
*
14 Oct 2016
Definition. A cone is a set such that [BV04]
Definition. A convex cone is a cone that is also convex:
if and .
An immediate corollary is that whenever .
Why do we care about cones?
Cones are “among the simplest convex sets” – think of them as the analog of
subspaces in linear analysis for convex analysis [HU91]. Note that
a subspace is a convex cone, but a convex cone is not necessarily a subspace.
Indeed, the only thing that prevents a convex cone from being a subspace is
symmetry (it is not necessarily the case that ).
A hierarchy is:
- Subspaces Convex Cones Convex Sets
- Subspaces Convex Cones Cones
- (The leftmost item is the most restrictive, and the rightmost item is the
least restrictive.)
On the other hand, Cones Convex Sets. Neither category contains
the other.
Examples of convex cones
- The norm cone associated with is
- The second-order cone is the -norm cone
- The positive-semidefinite cone
.
A proper cone is a cone that is
- convex
- closed
- solid (non-empty interior)
- pointed ()
Another reason we care about cones is that we can use proper cones to define
generalized inequalities.
14 Oct 2016
Projections onto Closed Convex Sets
A projection onto nonempty
closed convex set is unique [U91].
Theorem 1. is the projection of onto iff
The geometric interpretation of this is nice — the angle between
and is obtuse for any .
Theorem 2. For convex , is nonexpansive: that is,
Proof.
We prove that
applying Cauchy-Schwarz to which will give the desired result. By theorem 1,
and
Adding (2) to (1) proves the claim:
Q.E.D.
If is a subspace, then
( for some with orthonormal columns).
Projection onto a Closed Convex Cone
Projecting onto closed convex cones is “nice”, in some sense – these
projections begin to look like projections onto subspaces.
Definition. The polar cone of a cone is defined as
Definition. The dual cone is defined as
Why care about the polar (dual) cone?
- The polar cone is always a closed convex cone.
- a subspace
- In this sense, the polar/dual cone generalizes the orthogonal complement
- is the closure of .
- .
Theorem. a closed convex cone, then iff the
following properties hold:
- ,
- ,
- .
Corollaries.
- ,
- ,
- .
- .
Proof of 4.
We want to show that
First observe that , where the last equality comes from the definition of the
polar cone. So is the projection of onto .
Next observe that , where again the last equality comes from the
definition of the polar cone. So .
Alternating Projections Method
Goal: Find a point in the intersection of some closed convex sets and
, given .
Algorithm: Alternately project onto each set:
Caveat: Can be slow, but can be sped up when projections are easy to compute.
Theorem [CG59]: If , then
.
Proof.
Let be any point in the intersection. Note that
where the inequality comes from theorem 1. We can then see that
and, similarly,
which imply that (1) is closer to than is, (2)
is closer still to , and (3)
and
are both .
In particular, is a bounded sequence and thus has a subsequence
that converges to some limit, call it . Since is closed by
assumption, . It remains to be shown that is in .
Consider the sequence
By (3.1) and (3.2), we see that (3.3) is decreasing but that it is also bounded.
That is, we see that (3.3) is convergent. Referencing (3.1) and (3.2), we see
that and must converge to .
But since a subsequence of goes to , a
subsequence of must do the same, and we can conclude that
as well. (I’m not sure if the previous sentence is correct;
it should probably instead argue that
together with the fact that a subsequence of
implies that because each .)
Finally, let . A subsequence of goes to , as does
one of . Since (3.3) converges, we conclude that goes to zero
and in particular that and both converge to .
Q.E.D.


This class is used to manage the connection with the server It establishes the connection. It sends data received from the TB through send_mbox to the server. It sends data received from the server to the TB through recv_mbox.
Constructor
function
new
( string
name = "amiq_server_connector",
uvm_component
parent)
Constructor that initializes the mailboxes and the end_of_test flag It also makes available the ofc_server_connector to the entire TB
Variables
string
msg_saved
Used for storing incomplete messages
string [$]
msgs_q
Used for storing messages from server that are ready to be processed
Variables used for receiving messages from the OFC Python Server used within DPI-C (via the recv_callback() function) for notifying the OFC Server connector that a message has been received Used to get notifications from the recv_callback() function
Functions
function void
setup_connection
()
This function establishes the connection with the server
function void
split
( input string
in,
input byte
separator,
output string []
out)
Function used for splitting received items -> every message can contain multiple items -> each item ends with a delimiter character -> the input string always ends with the delimiter character -> (the recv_callback() function takes care of that)
Arguments:
in -> The string message that needs to be dividedseparator -> The delimiter that indicates the item separationout -> The output list of separated items
Tasks
task
recv_from_remote
()
Store received item from server into mailbox
task
recv_item
( ref string
item)
Use this task to receive an item from the OFC Python Server
Arguments:
item -> The string item received from the server
virtual task
run_phase
( uvm_phase
phase)
The run_phase task establishes the connection with the server, starts the receiving thread within the DPI-C side and waits for items to be sent or received.
task
send_item
( string
item)
Use this task to send an item to the OFC Python Server
Arguments:
item -> The string item that will be sent to the server
task
send_to_remote
()
Send item received through mailbox to server
task
wait_for_end_item
()
Use this task to wait until all items have been received


#include <sys/types.h> #include <sys/xattr.h> ssize_t listxattr(const char *path, char *list, size_t size); ssize_t llistxattr(const char *path, char *list, size_t size); ssize_t flistxattr(int fd, char *list, size_t size);
listxattr() retrieves the list of extended attribute names associated with the given path in the filesystem. The retrieved list is placed in list, a caller-allocated buffer whose size (in bytes) is specified in the argument size. The list is the set of (null-terminated) names, one after the other. Names of extended attributes to which the calling process does not have access may be omitted from the list. The length of the attribute name list is returned.
llistxattr() is identical to listxattr(), except in the case of a symbolic link, where the list of names of extended attributes associated with the link itself is retrieved, not the file that it refers to.
flistxattr() is identical to listxattr(), only the open file referred to by fd (as returned by open(2)) is interrogated in place of path.
A single extended attribute name is a simple null-terminated string. The name includes a namespace prefix; there may be several, disjoint namespaces associated with an individual inode.
An empty buffer of size zero can be passed into these calls to return the current size of the list of extended attribute names, which can be used to estimate the size of a buffer which is sufficiently large to hold the list of names.
user.name1\0system.name1\0user.name2\0
Filesystems like ext2, ext3 and XFS which implement POSIX ACLs using extended attributes, might return a list like this:
system.posix_acl_access\0system.posix_acl_default\0
In addition, the errors documented in stat(2) can also occur.


Selectors Exercise
PARAGRAPH NOT INSIDE A DIV
I am a paragraph with a class
I am a paragraph with an ID
I am an awesome h2
Roof party yr hella synth, Wes Anderson narwhal four dollar toast before they sold out retro lo-fi. Austin iPhone pop-up farm-to-table, PBR&B McSweeney's ennui messenger bag distillery before they sold out Portland wolf fanny pack YOLO. Locavore slow-carb trust fund farm-to-table. Pinterest gastropub lo-fi, McSweeney's trust fund VHS shabby chic ugh Austin twee. Messenger bag banjo lumbersexual, whatever 3 wolf moon XOXO normcore. Pug fanny pack 3 wolf moon, typewriter organic chia mustache scenester seitan shabby chic Blue Bottle salvia ugh iPhone. Fanny pack Williamsburg direct trade, cold-pressed disrupt flannel listicle health goth asymmetrical freegan mixtape street art pour-over whatever.
 Heirloom health goth taxidermy blog lo-fi selfies, post-ironic master cleanse fingerstache normcore. Kickstarter plaid twee, bespoke single-origin coffee sustainable lo-fi vinyl Pinterest pork belly cronut skateboard 3 wolf moon. Normcore single-origin coffee salvia, bespoke Austin swag Godard before they sold out kogi disrupt locavore. Lumbersexual Shoreditch Vice, artisan American Apparel master cleanse yr salvia vegan. Bespoke letterpress heirloom kale chips deep v four loko. Lomo sustainable put a bird on it trust fund post-ironic
I'm the second paragraph inside this div!
 Austin iPhone pop-up farm-to-table, PBR&B McSweeney's ennui messenger bag distillery before they sold out Portland wolf fanny pack YOLO. Locavore slow-carb trust fund farm-to-table. Pinterest gastropub lo-fi, McSweeney's trust fund VHS shabby chic ugh Austin twee. Messenger bag banjo lumbersexual, whatever 3 wolf moon XOXO normcore. Pug fanny pack 3 wolf moon, typewriter organic chia mustache scenester seitan shabby chic Blue Bottle salvia ugh iPhone. Fanny pack Williamsburg direct trade, cold-pressed disrupt flannel listicle health goth asymmetrical freegan mixtape street art pour-over whatever
One last paragraph here!
I am a link to facebook I am another link to facebook
Name
Password
PARAGRAPH NOT INSIDE A DIV