BIASD
Getting Started
Software Requirements
Adding BIASD to the Python Path
Compiling the Likelihood
Background
How to Compile
Testing Speed
BIASD Examples
Creating a new SMD file
Sample the posterior with MCMC
Laplace approximation and computing the predictive posterior
BIASD GUI
Functionality
Distributions
Some standard probability distributions
Convert between distributions
Distributions can be collected for priors or posteriors
Collections can be visualized
Finally, you can easily generate a few useful collections using
Laplace
Laplace Approximation
Likelihood
Switch the log-likelihood function
Inference-related functions
MCMC
Markov chain Monte Carlo
Setup and Run MCMC
Analyze MCMC samples
SMD
Work with SMD data
Add BIASD results to an SMD object
Read BIASD results from an SMD object into a useful format
Examples
BIASD
Docs
»
Index
B
|
C
|
D
|
F
|
G
|
K
|
L
|
M
|
N
|
P
|
R
|
S
|
T
|
U
|
V
B
baseline() (in module smd.add)
beta (class in distributions)
burn_in() (in module mcmc)
C
calc_hessian() (in module laplace)
chain_statistics() (in module mcmc)
continue_run() (in module mcmc)
convert_distribution() (in module distributions)
create_posterior_collection() (in module mcmc)
D
distributions (module)
,
[1]
F
find_map() (in module laplace)
G
gamma (class in distributions)
get_samples() (in module mcmc)
guess_prior() (in module distributions)
K
kmeans() (in module smd.add)
L
laplace (module)
laplace_approximation() (in module laplace)
laplace_posterior() (in module smd.add)
likelihood (module)
load() (in module smd)
loadtxt() (in module smd)
log_likelihood() (in module likelihood)
log_posterior() (in module likelihood)
M
mcmc (module)
,
[1]
,
[2]
,
[3]
mcmc() (in module smd.add)
N
new() (in module smd)
normal (class in distributions)
P
parameter_collection (class in distributions)
parameter_collection() (in module smd.add)
plot_corner() (in module mcmc)
R
run() (in module mcmc)
S
setup() (in module mcmc)
smd (module)
smd.add (module)
smd.read (module)
T
test_speed() (in module likelihood)
trajectories() (in module smd.add)
U
uniform (class in distributions)
uninformative_prior() (in module distributions)
V
viewer (class in distributions)


2014-02-21 To S.
2014-02-21
S.,
Patience is a really beautiful virtue that gets corrupted by the abuses of technology. Sincerity is the delicious fruit of patience.
You asked me a few weeks ago how I was doing, and I replied that at that time I did not have time to respond adequately, that I would write to you in the future. That future is today. I consider that it is a good moment to tell you a little about how I am.
I couldn’t answer you when you asked me because I didn’t have enough time. Also, I was not comfortable answering you in a hurry and without the care and detail that you deserve, and I deserve. I hope it hasn’t arrived bad and that you understand it. I like to take care of communication. I am willing to sacrifice speed for quality. So, I hope your answer, if any, is not hasty. Make it honest, of high-quality. I don’t care how long it takes you to write to me, it can be two days, or it can be two years. I’ll be fine.
In these moments I am very happy. I am very comfortable with my life. I am flourishing, I am incredibly productive. As I never have been. I am learning a lot: I read, I write, I meet incredible people, who show me new horizons and expand my mind; I tear down walls of the past; I understand part of the numerous mistakes I made in the past. But I don’t blame myself. Those mistakes are part of my life, of my learning, of being where I am today. I needed to make a mistake to get where I got to. Sometimes it was necessary to be wrong once, but other times it was necessary to be wrong again and again. Enough times until I learned. Many of my mistakes have revolved around you. It had to be this way to learn. If they happen again, it will be equally necessary. It will be proof that I have not yet learned what I have to learn, that I have to continue learning.
Now I am understanding countless things that were incomprehensible to me in the past. That, at times, I acted in a completely illogical, extremely passionate way. Many times, in a hurry and worried about the ephemerality of the moment.
Now I’m calm. Much calmer.
In these moments of inner calm, few external storms can stir my spirit.
S., I would like to hear from you.  I can learn a lot from you, and I have a feeling that we could have an incredibly fruitful relationship for both of us. No matter the physical distance, as long as there is a spiritual, intellectual, and / or emotional union. The power of the non-physical knows no limits in time or space. (Imagine reading this letter and that I am dead. You could still answer it and be communicating with me.)
Out of respect; towards me, but much more important, out of respect for you; I hope you will give me a thought worthy of your ability.  I wrote a couple of days ago to a friend, who told me to that she was “fine”. Personally, I highly doubt it. So, if that is not true, there is nothing I can do as a friend to help her. But, much more damaging, for both of them, I will believe that there is nothing wrong in not helping her. Lying to me is lying to yourself.
I would like you to answer me, please. Slowly and sincerely. If you do not want to answer me, I perfectly respect your decision.
Carlos


A: Getting involved in student organizations can help students pursue what they are passionate about while also developing teamwork and leadership skills. You can find a list of all student organizations at callink.berkeley.edu/organizations. You can find engineering student organizations on the ESC website under the organizations tab. To hear about organizations in person, check out club fairs held at the beginning of each semester.
A: There are many ways to learn about different majors and concentrations. Engineering Student Services (ESS) hosts an event every semester called “Major Madness” for students to talk to their peers and help them decide which major best suits their interests. Another way to learn more about different majors is to talk to upperclassmen in a major you are interested in exploring, or by talking to your advisor.
A: A great resource to check out is the “Four Year Degree Plan” mapped out for each major. Make sure to keep track of the major, college, and campus requirements when deciding what classes to take each semester. The Berkeley Course Catalog has all courses listed for each semester and is a good way to learn more about different courses. There are also peer advisors at ESS to help answer any extra questions.
A: The Center for Access to Engineering Excellence (CAEE) in 227 and 240 Bechtel is a study space that offers drop in tutoring services for many core engineering courses. Check out the CAEE course tutoring schedule to see specific hours for different courses. Office hours are another helpful resource to get extra help, ask questions, or engage in course material.
A: Your ESS advisor can help you navigate degree and graduation requirements, academic procedures, and offer guidance and support. Each department also has advisors to help students with programs, facilities, and research opportunities. Peer advisors can give personal advice based on their perspective about topics like how to choose electives and juggling classes. Counseling and Psychological Services (CAPS) has an office in ESS and counselors are here to talk about any personal, professional, or academic concerns. There are walk-in hours, or you can schedule an appointment during the week. The Tang Center also offers counseling services.
A: The weekly ESS newsletter provides up to date information about important deadlines, workshops, and numerous opportunities. Your advisor or department may also have weekly emails/newsletters, so make sure to check your inbox for new information.


Takealot launches early Black Friday 2019 deals
by Staff WriterOnline retailer Takealot has launched its early access deals for Black Friday 2019.
The group said that its Early Access Blue Dot Sale will run from 24-28 November and will feature ‘excellent deals’ which will not be beaten over the Black Friday period.
It added that new deals will be posted at the following times over the Black Friday/Cyber Monday weekend:
- 00h01 on Friday (29 November) – All deals unlocked
- 06h00 on Saturday (30 November) – More deals added
- 06h00 on Sunday (1 December) – More deals added
- 06h00 on Monday (2 December) – Cyber Monday tech deals
- 06h00 on Tuesday (3 December) – Takealot Tuesday deals
All the deals can be accessed on Takealot’s mobile app.
Biggest Black Friday ever
Takealot chief executive officer Kim Reid said that he is anticipating the biggest Black Friday yet, a culmination of months of tech and operational business-wide focus to prepare for increased predicted traffic and shopper volumes.
Takealot’s Black Friday gross merchandise value (GMV) grew 125% from 2017 to 2018, with orders up 127%. Superbalist’s Black Friday GMV has grown on average around 50%.
Reid said throughout the year they have been working to scale operations across multiple areas within the business.
“After expanding our Johannesburg distribution centre (DC), our warehouse storage space now stands at 75,000m square.
“We house over 3.7 million items at any given time, and have opened 47 Takealot Pickup Points in the Eastern Cape, Western Cape, Gauteng, Kwa-Zulu Natal, Limpopo, Free State and Mpumalanga for order collections and returns, with more to open in the coming months.”


COURSE DESCRIPTION
Development of the basic concepts and techniques from Computer Science I and II into practical programming skills that include a systematic approach to program design, coding, testing, and debugging. Application of these skills to the construction of robust programs of thousands of lines of source code. Use of programming environments and tools to aid in the software development process.
COURSE TOPICS
- Programming style and its impact on readability, reliability, maintainability, and portability.
- Decomposing problems into modular designs with simple, narrow interfaces.
- Determining the proper objects in an object-oriented design.
- Selecting appropriate algorithms and data structures.
- Reusing code, including external libraries designed and built by others.
- Learning systematic testing and debugging techniques.
- Maintaining a repository of code during incremental development of a software project.
- Learning how to use threads to synchronize several tasks.
- Improving program performance.
- Making effective use of a programming environment, including:
- Syntax-directed editor
- Build tools
- Debugging tools
- Testing tools
- Source code management tools
- Profiling tools
PREREQUISITES
You must have taken CSE 214 and received a grade of "C" or better in order to take this course. In more detail, you are expected to have the following knowledge and skills at the beginning of the course:
- Ability to write programs of a few hundred lines of code in the Java programming language.
- Understanding of fundamental data structures, including lists, binary trees, hash tables, and graphs, and the ability to employ these data structures in the form provided by the standard Java API.
- Ability to construct simple command-based user interfaces, and to use files for the input and output of data.
- Mastery of basic mathematical and geometric reasoning using pre-calculus concepts.
COURSE GOALS
At the end of the course you should have the following knowledge and skills:
- Ability to systematically design, code, debug, and test programs of about two thousand lines of code.
- Sensitivity to the issues of programming style and modularity and their relationship to the construction and evolution of robust software.
- Knowledge of basic ideas and techniques of object-oriented programming.
- Familiarity with the capabilities and use of programming tools such as syntax-directed editors, debuggers, execution profilers, documentation generators, and revison-control systems.
INSTRUCTOR
|
Richard McKenna<EMAIL_ADDRESS>216 New Computer Science Building Office Hours:
|
TEACHING ASSISTANTS (Grading Appointments in the New Computer Science Building, Room 106)
Parmida Ghahremani<EMAIL_ADDRESS>|
Hirak Sarkar<EMAIL_ADDRESS>|
HOMEWORK GURUS (Office Hours in the Old Computer Science Building, Room 2203)
Layla Baroudi<EMAIL_ADDRESS>|
Scott Carson<EMAIL_ADDRESS>|
Sean Clark<EMAIL_ADDRESS>|
Anthony Consoli<EMAIL_ADDRESS>|
James DeCarlo<EMAIL_ADDRESS>|
Christopher Grasing<EMAIL_ADDRESS>|
Benjamin Kandov<EMAIL_ADDRESS>|
Benito Kestelman<EMAIL_ADDRESS>|
Jeonghoon Kim<EMAIL_ADDRESS>|
Brian Kondracki<EMAIL_ADDRESS>|
Chuntak Kong<EMAIL_ADDRESS>|
Calvin Kwok<EMAIL_ADDRESS>|
Jia Li<EMAIL_ADDRESS>|
Jie Liang<EMAIL_ADDRESS>|
David Lin<EMAIL_ADDRESS>|
Adam Pollack<EMAIL_ADDRESS>|
Rama Potturi<EMAIL_ADDRESS>|
Ahsan Qureshi<EMAIL_ADDRESS>|
Manan Singh<EMAIL_ADDRESS>|
Robert Trujillo<EMAIL_ADDRESS>|
Elizabeth Williams<EMAIL_ADDRESS>|
Robert Xu<EMAIL_ADDRESS>|
Mingchen Zhang<EMAIL_ADDRESS>|
Wendy Zheng<EMAIL_ADDRESS>|
OFFICE HOURS GRID
| Start Time | End Time | MONDAY | TUESDAY | WEDNESDAY | THURSDAY | FRIDAY |
|---|---|---|---|---|---|---|
| 8:00am | 8:30am | Calvin Kwok | Calvin Kwok | David Lin | ||
| 8:30am | 9:00am | Wendy Zheng | Calvin Kwok | Layla Baroudi & Wendy Zheng |
Calvin Kwok | David Lin |
| 9:00am | 9:30am | Wendy Zheng | Calvin Kwok | Layla Baroudi & Wendy Zheng |
Calvin Kwok | David Lin |
| 9:30am | 10:00am | Wendy Zheng | Calvin Kwok | Layla Baroudi & Wendy Zheng |
Calvin Kwok | David Lin |
| 10:00am | 10:30am | Jia Li& Wendy Zheng |
Chuntak Kong | Layla Baroudi & Wendy Zheng |
Chuntak Kong | Manan Singh |
| 10:30am | 11:00am | Jia Li | Chuntak Kong | Layla Baroudi | Layla Baroudi& Chuntak Kong |
Manan Singh |
| 11:00am | 11:30am | Jia Li & Richard McKenna |
Elizabeth Williams | Layla Baroudi | Layla Baroudi | Manan Singh & Richard McKenna |
| 11:30am | 12:00pm | Jia Li & Richard McKenna |
Elizabeth Williams | James DeCarlo | Scott Carson | Manan Singh & Richard McKenna |
| 12:00pm | 12:30pm | Jia Li & Richard McKenna |
Elizabeth Williams | James DeCarlo | Scott Carson | Manan Singh & Richard McKenna |
| 12:30pm | 1:00pm | Robert Xu & Ahsan Qureshi |
Elizabeth Williams | James DeCarlo & Adam Pollack |
Scott Carson | Manan Singh |
| 1:00pm | 1:30pm | Robert Xu & Ahsan Qureshi |
Richard McKenna & Elizabeth Williams |
James DeCarlo & Adam Pollack |
Richard McKenna & Benjamin Kandov |
Scott Carson |
| 1:30pm | 2:00pm | Rama Potturi | Richard McKenna & Elizabeth Williams |
James DeCarlo & Adam Pollack |
Richard McKenna & Benjamin Kandov |
Scott Carson & Rama Potturi |
| 2:00pm | 2:30pm | Rama Potturi | Elizabeth Williams | Adam Pollack | Benjamin Kandov | Scott Carson & Rama Potturi |
| 2:30pm | 3:00pm | Adam Pollack | Elizabeth Williams | Adam Pollack & Mingchen Zhang |
Benjamin Kandov | Scott Carson & Rama Potturi |
| 3:00pm | 3:30pm | Adam Pollack | Chuntak Kong | Mingchen Zhang | Chuntak Kong | Scott Carson & Benito Kestelman |
| 3:30pm | 4:00pm | Adam Pollack & Brian Kondracki |
Chuntak Kong | Robert Xu | Chuntak Kong | Benito Kestelman |
| 4:00pm | 4:30pm | Brian Kondracki | Robert Trujillo & Anthony Consoli |
Robert Xu | Robert Trujillo & Anthony Consoli |
Brian Kondracki |
| 4:30pm | 5:00pm | Robert Xu | Robert Trujillo & Anthony Consoli |
Robert Trujillo | Robert Trujillo & Anthony Consoli |
Brian Kondracki |
| 5:00pm | 5:30pm | Ahsan Qureshi | Anthony Consoli | Benito Kestelman | Anthony Consoli | Brian Kondracki |
| 5:30pm | 6:00pm | Jie Liang | Anthony Consoli | Benito Kestelman & Sean Clark |
Anthony Consoli | Sean Clark |
| 6:00pm | 6:30pm | Jie Liang | Jeonghoon Kim | Benito Kestelman & Sean Clark |
Jeonghoon Kim | Sean Clark |
| 6:30pm | 7:00pm | Jie Liang | Jeonghoon Kim | Sean Clark | Jeonghoon Kim | Sean Clark |
| 7:00pm | 7:30pm | Jie Liang & Christopher Grasing |
Jeonghoon Kim | Sean Clark & Christopher Grasing |
Jeonghoon Kim | Sean Clark & David Lin |
| 7:30pm | 8:00pm | Jie Liang & Christopher Grasing |
Jeonghoon Kim | Christopher Grasing | Jeonghoon Kim | David Lin |
| 8:00pm | 8:30pm | Christopher Grasing | Benjamin Kandov | Christopher Grasing | Benjamin Kandov | David Lin |
| 8:30pm | 9:00pm | Christopher Grasing | Benjamin Kandov | Christopher Grasing | Benjamin Kandov | David Lin |
COLLEGE OF ENGINEERING TUTORING SERVICES (Engineering 236B)
Stony Brook University and CEAS offer many FREE tutoring services on campus Monday-Friday. CEAS offers FREE one-on-one or group tutoring for select introductory courses required for all engineering majors. You may request tutoring information by visiting or calling the CEAS Undergraduate Student Office. Go to the CEAS Tutoring Services page for the full schedule as well as how to arrange additional tutoring services. Tutoring hours for this semester are as follows:
Monday: 5:00 - 7:00 pm
Wednesday: 9:00 - 1:00 pm; 5:00 - 7:00 pm
Thursday: 6:00 - 8:00 pm
Friday: 12:00 - 2:00 pm
LECTURE - Section 02
Mondays & Fridays
1:00 pm - 2:20 pm
Earth & Space 001
RECITATIONS
|
|
||||||
|
|
||||||
|
|
PLATFORMS
This course will use the Java programming language, version 8. The programming environment for this semester will be the NetBeans IDE, version 8.0, which includes a syntax-directed editor, run-time environment, debugger, unit tester, and additional software development tools. Go to the NetBeans download page to get your own free copy. All software will also be provided for you to use in the Windows Lab. Note that the following references will be helpful to students while completing the Java programming assignments:
- Java 8 API - this reference provides a summary of all the Standard Edition classes, many of which we'll make use of.
- The Java Tutorial - walks one through programming in Java, including the new features of Java 8.
- JavaFX Tutorial - a good reference for learning how to make User Interfaces using JavaFX, which is new with Java 8. Note that JavaFX is replacing Swing as the Java framework for making user interfaces.
TEXTBOOKS (both are online via provided links below)
Head First Object Oriented Design and Analysis
by Brett McLaughlin, Gary Pollice, David West
Published by O'Reilly Media, Inc. 2006
Print ISBN-10: 0-596-00867-8
Print ISBN-13: 978-0-596-00867-3
AND
Head First Design Patterns
by Eric T Freeman, Elisabeth Robson, Bert Bates, Kathy Sierra
Published by O'Reilly Media, Inc. 2004
Print ISBN-10: 0-596-00712-4
Print ISBN-13: 978-0-596-00712-6
COURSE COMPONENTS
- Recitations - Students will attend weekly recitations that will introduce use of essential development tools and will require completion of an exercise for submission.
- Homework Assignments - Submitted code that does not compile will receive no credit. Late submissions will NOT be accepted. Programming assignments will be handed in electronically, instructions for which will be provided early in the semester.
- Midterm & Final Exams - Exams will cover all lecture and homework materials covered during the semester.
GRADING BREAKDOWN
| Recitation Exercises | 5% | |
| 5 Homework Assignments | 25 % | (5 % each) |
| Final Project | 20 % | |
| Midterm Exam | 25 % | |
| Final Exam | 25 % | |
| 100 % |
Note CEAS Policy: The Pass/No Credit (P/NC) option is not available for this course.
ACADEMIC DISHONESTY
Read This! You may discuss the homework in this course with anyone you like, however each student's submission, including written material and coding, must be his or her own work, and only his or her own work. Any evidence that written homework submissions or source code have been copied, shared, or transmitted in any way between students (this includes using source code downloaded from the Internet or written by others in previous semesters!) will be regarded as evidence of academic dishonesty. Additionally, any evidence of sharing of information or using unauthorized information during an examination will also be regarded as evidence of academic dishonesty.
The College of Engineering and Applied Sciences regards academic dishonesty as a very serious matter, and provides for substantial penalties in such cases, such as receiving an `F' grade, or expulsion from the University. For more information, obtain a copy of the CEAS guidelines on academic dishonesty from the CEAS office.
Be advised that any evidence of academic dishonesty will be treated with utmost seriousness. Those involved will be prosecuted to the fullest extent permitted by the University and College laws. If you have a situation that may tempt you into doing something academically dishonest, resist the urge and speak with your instructor during office hours for help.
SPECIAL ASSISTANCE
If you have a physical, psychological, medical or learning disability that may impact on your ability to carry out assigned course work, I would urge that you contact the staff in the Disabled Student Services office (DSS) in the ECC building (where the Computer Store used to be), 632-6748v/tdD. DSS will review your concerns and determine with you what accommodations are necessary and appropriate. All information and documentation of disability are confidential.
If you need general computer help, you can use the Computer Science Help Desk. Services offered include setting up an account on a department server, using Windows NT, using a browser, and connecting to the campus network. The Help Desk office is located in the SBCS Office - Room 2110.
Web page created and maintained
by Richard McKenna


tools bundlers
intro
A simplified example of a modern module bundler written in JavaScript
The purpose of this project is to explain how most bundlers work under the hood. It contains a short implementation of a simplified but still reasonably accurate bundler. Along with the code, there are comments explaining what the code is trying to achieve.
webpack
- Entry : An entry point indicates which module webpack should use to begin building out its internal dependency graph
- Output : The output property tells webpack where to emit the bundles it creates and how to name these files.
- Loaders : Loaders allow webpack to process other types of files (other then
.js
) and convert them into valid modules.- Plugins : Plugins can be leveraged to perform a wider range of tasks like bundle optimization, asset management and injection of environment variables.
webpack.js.org - concepts/modules
webpack articles
Pourquoi Webpack ? - putaindecode.io - 20150720
Webpack et son avenir en 6 questions - blog.js-republic.com - 20180222
How to switch from Gulp to Webpack: a tutorial to get you started - 20171026
Webpack 4 Tutorial: from 0 Conf to Production Mode - 20180119
webpack tools
Theses tools uses the webpack stats API, usage is $ webpack --profile --json > compilation-stats.json
webpack-visualizer - chrisbateman.github.io
zillow/webpack-stats-duplicates


{% extends "tutorial.html" %} {% load mixin from templatefilters %} {% block head %} {{ block.super }} {% endblock %} {% block pagebreadcrumb %}{{ tut.title }}{% endblock %} {% block content %}
The <picture>
element offers a declarative approach towards image resource
loading. Web developers will no longer need CSS or JavaScript hacks to handle
images in responsive designs. And users benefit from natively-optimized image
resource loading—especially important for users on slower mobile internet
connections.
Alongside the newer srcset
and sizes
attributes
recently added to
, the
<picture>
element gives web developers more flexibility in specifying image
resources. Write clear HTML markup and let the browser do the work of detecting
any of the following scenarios, alone or in combination, to support responsive
designs and improve web page load times:
The most common use of the <picture>
element will be for "art direction" in
responsive designs. Instead of having one image that is scaled up or down based
on the viewport width, multiple images can be designed to more appropriately
fill the browser viewport.
When using <picture>
, or
with the srcset
and sizes
attribute, the browser
will only download the image explicitly stated for the matching scenario. This
native implementation is compatible with HTML parsers and can take advantage of
the browser's image caching and preloading abilities.
It's a fact that the Internet was created to host cat images. Using <picture>
we
can emulate the amazing ability of cats to adjust to the space given to them no
matter how small or large.
Open the demo in a new tab with Chrome 38 or higher. Resize the viewport to see the cat in action.
As a starting point, this demo only shows off the bare minimum of features that
<picture>
has to offer. Let's dig into the syntax now.
The following HTML and CSS snippet is everything that was used to implement the demo:
 <picture> <source media="(min-width: 650px)" srcset="images/kitten-stretching.png"> <source media="(min-width: 465px)" srcset="images/kitten-sitting.png">  </picture>
Note how there is no JavaScript involved and no-third party libraries. The CSS


Your thoughts on this article would be much appreciated and will add additional value and insight to other readers.


Where should I go for lunch?
- ???
- The Abbey Food & Bar
- Ajisai
- Amarone Kitchen & Wine
- Ariya
- Asia De Cuba
- Baja Bud's
- Barney's Beanery
- Basix Cafe
- Bite Restaurant
- BLT Steak
- BOA Steakhouse
- Boxwood Cafe
- Burger Lounge West Hollywood
- Cafe La Boheme
- Cafe Med
- Caffe Primo
- Carney's Express Limited
- Chamberlain's Bistro
- Champagne French Bakery & Cafe
- Chin Chin
- Chop Stop
- Cravings Restaurant
- The Den of Hollywood
- Dialog Cafe
- Du Par's Restaurant & Bakeries
- Eveleigh
- Fiesta Cantina
- Five Guys Burgers and Fries
- Flavor of India
- Frankie & Johnnie's New York Pizza
- Fresh Corn Grill
- Gordon Ramsay at the London
- Greenwich Village Pizzeria
- Hugo's
- IHOP Restaurant
- Irv's Burgers
- Isla Cantina
- Jinpachi
- Joe's Pizza
- Joey's Cafe
- Katana
- Kingswood LLC
- Kitchen 24
- Koo Koo Roo
- L a Buns Co
- Le Clafoutis
- Le Petit Four
- Marix Tex Mex Cafe
- Mel's Drive-In
- Mercato Di Vetro
- Mondrian Los Angeles Hotel
- Night Market
- Niko Niko Sushi
- One Sunset
- Osteria Drago
- Palihouse Restaurant
- Palm Restaurant: West Hollywood
- Panini's Pizza
- Pi on Sunset
- Pink Taco
- Pizza Rustica
- Plaisir
- Poquito Mas
- Rainbow Bar & Grill
- Restaurant at Sunset Marquis
- RH Restaurant
- Rock and Reilly's Irish Pub
- Rosa Mexicano
- Rounds Premium Burgers
- Saddle Ranch Chop House
- Subway
- Sunset Deli
- Sunset Sushi
- Sushi Park
- Sushiya
- Ta-Ke Sushi Restaurant
- Talesai
- Tangerine
- Ten 20
- Tender Greens
- Tenmasa Japanese Restaurant
- Tochka Bakery
- Tony's
- Umai Sushi
- Unphogettable
- Wa Restaurant
- WeHo Bistro
- Whisky a Go Go
- Yatai Asian Tapas Bar
- zpizza


I work with frontend and backend development, I have a great interest in automation and DevOps. Communication is the key in software development
System platform maintenance and web application development, applying tecnhologies such as .Net Core and Framework, Angular, Typescript, Javascript, HTML, Python, Oracle, PostgreSQL, PowerShell.
Python and PL/SQL development applying GIS intelligence with ArcGIS platform.
Apart from my interest in database technologies, programming languages and DevOps tools, I enjoy reading comics, mangas and books. I'm a cat person. Love to spend weekends in the woods.
I am a veggie aspiring chef, who appreciates other country's food. Also, I love hackathons and IT events where I can learn and explore new technologies.


This is a simple arithmetic expression (on the natural numbers) interpreter that uses the lambda calculus to do its actual calculations.
In particular we don't delegate to hard-coded notions of "+" and "*" but instead calculate through the lambda calculus.
Note that unfortunately if you calculate via the normal lambda calculus the variable naming may not remain consistent across each step (e.g. x5 in one step might become x6 in another).
No Result Yet!


"Everything in the Solar System orbits or revolves around the Sun. The Sun contains around 98% of all the material in the Solar System. The larger an object is, the more gravity it has. Because the Sun is so large, its powerful gravity attracts all the other objects in the Solar System towards it.
At the same time, these objects, which are moving very rapidly, try to fly away from the Sun, outward into the emptiness of outer space. The result of the planets trying to fly away, at the same time that the Sun is trying to pull them inward is that they become trapped half-way in between.
Balanced between flying towards the Sun, and escaping into space, they spend eternity orbiting around their parent star."
-Referenced from KidsKnowIt.com © 2017 Kids Astronomy


Nike Officially Debuts the ISPA Joyride Envelope
The latest update on the utilitarian-heavy silhouette.
by Mallory ChinAfter recently being highlighted in an editorial produced by HAVEN, we now have an official look at the forthcoming ISPA Joyride Envelope from Nike itself.
The latest addition to Nike’s ISPA lineup sports the same shape and structure of its namesake and features two layers that encase the foot: the perforated outer layer provides breathability, while the inner layer helps to prevent water from entering the sneaker. The ankle portion is embellished with a three-way strap system, while moving further down, the sole unit is borrowed from the NSW Setter. The Joyride Envelope is set to launch in two different colorway options, one in stealthy black and the other in an arrangement of blue tones.
Interested readers will be able to purchase the ISPA Joyride Envelope at select Nike retailers and nike.com when it lands on November 27. Keep it locked here for an official retail price.
For more sneaker news, Nike crafts special Air Force 1s for New York, Los Angeles and Chicago.
Nike ISPA Joyride Envelope
Release Date
November 27, 2019 - 12:00 am EST (TBC)
Price
TBC


Blurbs of text for everyone! What good is a name and a photo if there's nothing to read about! Blurbs of text for everyone! What good is a name and a photo if there's nothing to read about! Blurbs of text for everyone! What good is a name and a photo if there's nothing to read about! Blurbs of text for everyone! What good is a name and a photo if there's nothing to read about! Email MacCallister at<EMAIL_ADDRESS>Blurbs of text for everyone! What good is a name and a photo if there's nothing to read about! Blurbs of text for everyone! What good is a name and a photo if there's nothing to read about! Blurbs of text for everyone! What good is a name and a photo if there's nothing to read about! Blurbs of text for everyone! What good is a name and a photo if there's nothing to read about! Email Erik at<EMAIL_ADDRESS>Blurbs of text for everyone! What good is a name and a photo if there's nothing to read about! Blurbs of text for everyone! What good is a name and a photo if there's nothing to read about! Blurbs of text for everyone! What good is a name and a photo if there's nothing to read about! Blurbs of text for everyone! What good is a name and a photo if there's nothing to read about! Email Zachary at<EMAIL_ADDRESS>Blurbs of text for everyone! What good is a name and a photo if there's nothing to read about! Blurbs of text for everyone! What good is a name and a photo if there's nothing to read about! Blurbs of text for everyone! What good is a name and a photo if there's nothing to read about! Blurbs of text for everyone! What good is a name and a photo if there's nothing to read about! Email Nolan at<EMAIL_ADDRESS>Blurbs of text for everyone! What good is a name and a photo if there's nothing to read about! Blurbs of text for everyone! What good is a name and a photo if there's nothing to read about! Blurbs of text for everyone! What good is a name and a photo if there's nothing to read about! Blurbs of text for everyone! What good is a name and a photo if there's nothing to read about! Email Trevor at<EMAIL_ADDRESS>Blurbs of text for everyone! What good is a name and a photo if there's nothing to read about! Blurbs of text for everyone! What good is a name and a photo if there's nothing to read about! Blurbs of text for everyone! What good is a name and a photo if there's nothing to read about! Blurbs of text for everyone! What good is a name and a photo if there's nothing to read about!
Blurbs of text for everyone! What good is a name and a photo if there's nothing to read about! Blurbs of text for everyone! What good is a name and a photo if there's nothing to read about! Blurbs of text for everyone! What good is a name and a photo if there's nothing to read about! Blurbs of text for everyone! What good is a name and a photo if there's nothing to read about!
Blurbs of text for everyone! What good is a name and a photo if there's nothing to read about! Blurbs of text for everyone! What good is a name and a photo if there's nothing to read about! Blurbs of text for everyone! What good is a name and a photo if there's nothing to read about! Blurbs of text for everyone! What good is a name and a photo if there's nothing to read about!
Blurbs of text for everyone! What good is a name and a photo if there's nothing to read about! Blurbs of text for everyone! What good is a name and a photo if there's nothing to read about! Blurbs of text for everyone! What good is a name and a photo if there's nothing to read about! Blurbs of text for everyone! What good is a name and a photo if there's nothing to read about!


Home
Sign In
Sign Up
Giving Tree Financial
Giving Tree
First name
Last name
User name
School Abbreviation (eg "UCSB")
Email address
Password
Password
Sign up!


Insert a url starting with "http://" or "https://"
Add
All bookmarks
{{title}}
{{description}}
Visit the website:
{{url}}
Delete


Loading..
Secret
Diary
Dashboard
Public Diary Entries
My diary entries
ADMINISTRATOR
Log out
Public Diary Entries


Have you ever tried to define initialized
method for an ActiveRecord
?
Try it if you haven’t.
1 2 3 4 5 6 |
|
This is probably not what you have expected. Why is MyRecord not initialized?
Well, ActiveRecord::Base has already defined initialize
method. It is used to instantiate Rails models.
1
|
|
If you really want to override it with your own version, you would want to do this:
1 2 3 4 5 6 7 8 |
|
This should build a new AR for you (if you have a defined my_records table in database).
Rails provides a cleaner way to handle this via after_initilize callback.
1 2 3 4 5 6 |
|
after_initialize
is called when ActiveRecord is instantiated and before it is saved.


It's amazing to me the number of problems that can be solved or avoided completely with communication. For example, the prevailing attitude of the day is that children should not be let out of an adult's sight, in spite of an all-time low in the history of violent crime. Towards that end, and since tomorrow is the first day of school, my oldest boy is currently testing the range of our walkie-talkies to see if he and his younger brother can walk to school. The reason? Because I can communicate with him to know that they got to school OK. I need that communication so that I can continue to be paranoid while still letting him walk the half-mile to school.
Here's another example: Recently at work there was a minor fracas when group A published their planned work based on group B's input aka *implicit* buy-in, but without group B's *explicit* buy-in. This made group B unhappy, because they felt that their input wasn't been taken (even though it was). The solution? Group A set up a regular meeting to communicate on their various projects with group B, making sure to get everyone's buy-in explicitly.
Here's another one: My co-author on the VB version of my WinForms book has been working like a dog on his new job and his new baby and the VB port of my book. However, since most of his communications were with the publishing company directly, I didn't see most of the work that he was doing and, because of our tight schedule, that caused me to worry that we wouldn't make it. The solution? I asked him about it and he told me of the pile of work he'd done that I didn't know about. He also volunteered to make sure to cc me on all of his email related to the book.
And here's my favorite example: For a long, long time, MS was labeled (and is often still labeled) as an "evil" because of a perceived uncaring about developer's hopes and dreams. Ironically, with a software engineer at the helm, all of Microsoft's decisions are driven by that need to meet the needs of 3rd party developers. The issue was communication, both in letting internal folks make their intentions known to the external folks and in getting the hopes and dreams of external folks into the planning processes of internal folks. It's my belief that the reason that Adam, Becky, Brad, Brian, Chris, Chris, Don, Duncan, Ed, Eric, Kent, Lutz, Martin, Sara, Scott, Tommy, and tons of other MS employees are not only not reprimanded for our blog posts, but encouraged, is so that our intentions can be known to external folks. And believe me, when someone external puts a substantive comment into their blog and one of the thousands of MS employees finds it, it makes its way into the inboxes of the internal MS employees that use that feedback. This need for bi-directional communication between internal and external folks at MS has driven all kinds of new ways of doing things and you're going to see a whole lot more of that at the PDC.
I could keep going on for days about problems in my life that are solved with communication and could have been avoided with communication up front. In fact, I'm started to get a feel for it when I realize that my communication could have been better and what problem I'm going to have because it wasn't. Also, I've recently started to try to really concentrate on what my friends and family are saying when they start conversations with me while I'm working. (Previously I would continue working, giving a grunt now and again, as necessary.) This little thing has made a big difference. Of course, lots of folks way smarter than I already know this stuff, but to a geek who only learned how to communicate with other humans relatively recently, this is deep thinking! BTW, don't tell my sister-in-law with the Master's degree in communications. We give each other crap all the time on any number of topics and the idea that she knows more about what's really important in the world would give her all kinds of extra ammunition (which she rarely needs anyway... : )


1. Getting started with Jupyter Notebooks¶
In [1]:
2+2
Out[1]:
4
In [2]:
var = 25
var + 10
Out[2]:
35
1.1. My chat bot¶
- Ask for name
- Return greetings
In [3]:
import time
print("Hi, my name is Vincent.")
time.sleep(1)
print("What´s your name?")
user = input()
if user == "Joachim":
print("Good morning my creator!")
else:
print("Nice to meet you {}.".format(user))
time.sleep(1)
Hi, my name is Vincent.
What´s your name?
Bernie
Nice to meet you Bernie.
1.2. Markdown¶
1.2.1. The normal distribution¶
The **normal distribution** is used extensively in probability theory, statistics, and the natural and social sciences. It is also called the Gaussian distribution because Carl Friedrich Gauss (1777-1855) was one of the first to apply it for the analysis of astronomical data.
The normal probability distribution or the normal curve is a bell-shaped (symmetric) curve. Its mean is denoted by \(\mu\) and its standard deviation by \(\sigma\). A continuous random variable \(X\) that has a normal distribution is called a normal random variable.
The notation for a normal distribution is \(X \sim (\mu, \sigma)\). The probability density function is written as
where \(e \approx 2.71828\) and \(pi \approx 3.14159\). The probability density function \(f(x)\) gives the vertical distance between the horizontal axis and the normal curve at point \(x\).
1.2.2. Images¶
Source: Wiki commons
1.2.3. pdf-files¶
In [4]:
from IPython.display import IFrame
IFrame("../slides/slides_krois_2018-04-18.pdf", width="100%", height=600)
Out[4]:


Providing engaging Social Engineering games for high school and up.
Recon and Dialog
Here you create your character and interact with fictional character Alexander Coleman as a Social Engineering trying to hack Alex.
Provided with his name, age, and a link to his facebook, sleuth his socials to find out more about him and eventually hack him.
Dictionary Building
Part Two of Recon and Dialog, using the same fictional character Alexander Coleman and what you now know about him,
continue to sleuth and use a password hacking algorithm to hack his accounts...
Social Engineering Game
This is a phone based game that can be played multiplayer or solo.
The only thing you need to get started is a phone and your newfound skills as a Social Engineer!
TBD
This is where you can add your own Social Engineering Game!
Disclaimer* This game is designed provide awareness about Social Engineering, not to promote malicious hacking.
Contribute
Discussions


Chocolate Pizza
POSTED ON 15 DEC 2013/DESSERTS
For the fig-swirl: Melt Botter over medium heat in a saucepan. Add brown sugar and stir to dissolve. Halve all of the figs and toss in the saucepan with water and lemon juice. Cook over medium heat, stirring frequently, until you have a chunky-jammy mixture. Add salt with one or two stirs, set aside and let cool completely.
Ice cream: In a small pot over medium heat, combine milk, and granulated sugar until sugar is completely dissolved and the milk is just barely lukewarm. Whisk in the egg yolks. Set mixture in the fridge and wait until the fig mixture is cooled.
Using an ice cream machine, pour liquids into the frozen basin and process according to manufacturer instructions, i.e., let spin and thicken for 20 minutes before adding mascarpone, fig jam mixture, and the nuts. Continue to process for +/- 10 minutes. Pour semi-frozen mixture into a pyrex dish or glass tupperware. Freeze for at least two hours before serving.
Delicious © 2013 All Rights Reserved Proudly published with Ghost.


2006.10.13Contents
1 Summary
2 Install
3 Server
4 Client
5 Datatypes
6 Insert and Upsert
7 Select and Update
8 Default Column Names
9 Parameterized Queries
10 Table Arithmetic
11 Foreign Keys
12 Joins
13 Q from SQL
14 Stored Procedures
15 Rename, Rearrange
16 Correlated Subquery
17 Performance
18 Layout
19 Small
20 Medium
21 Large
22 Limits
23 Partition
24 Parallel
25 Logs
26 Load
27 Archive
28 User
29 Grid


A PaaS for
Continuous Delivery
of
Cloud Native
Apps
https://github.com/atx2016/openstack-summit-austin-2016
Tech Stack
- OpenStack ( BlueBox Cloud ) - IaaS
- Terraform - Orchestration
- DEIS - PaaS
- Docker Swarm - Adhoc Container Scheduling
- Jenkins - CI/CD tasks / webhooks
- Docker Registry - Docker Image Storage
- Github (external service - source control)
Architecture
OpenStack
BlueBox Cloud - Private Cloud as a Service
- Keystone
- Nova
- Neutron
- Cinder (Ceph)
- Swift
- Heat
- LBaaSv2
Terraform
About Terraform
No vendor lock-in
Multi-cloud
Hybrid cloud (resources can be on multiple clouds)
Terraform Config File
resource "openstack_compute_instance_v2" "atx2016_swarm_primary" {
name = "swarm-${var.cluster_name}-0"
image_name = "${var.image_name}"
flavor_name = "${var.flavor}"
key_pair = "${openstack_compute_keypair_v2.atx2016.name}"
network { name = "${openstack_networking_network_v2.atx2016.name}" }
security_groups = [
"${openstack_compute_secgroup_v2.atx2016_swarm.name}",
"${openstack_compute_secgroup_v2.atx2016.name}"
]
floating_ip = "${openstack_networking_floatingip_v2.atx2016_swarm.address}"
user_data = "${template_file.swarm_cloud_init.rendered}"
depends_on = [
"template_file.swarm_cloud_init",
"null_resource.write_ssh_config",
"openstack_networking_router_interface_v2.atx2016"
]
}
https://github.com/atx2016/openstack-summit-austin-2016/blob/develop/terraform/swarm.tf
DEIS
- PaaS built on top of Docker and CoreOS
- Scale, Rollback, etc. easily
Docker Swarm
https://docs.docker.com/swarm/overview/
Docker Swarm
Docker Registry
https://docs.docker.com/registry/
Jenkins
https://jenkins.io/
Jenkins Job - Deploy Dev Environment
#!/bin/bash
APP="dev-${ghprbPullId}"
git checkout ${ghprbSourceBranch}
deis create ${APP} || \
git remote add deis ssh://git@deis.atx2016.paulcz.net:2222/${APP}.git
git push -f deis ${ghprbSourceBranch} | tee deis_deploy.txt
Our Application
FROM jumanjiman/caddy
ADD . /demo
WORKDIR /demo/presentation
ENTRYPOINT ["/usr/sbin/caddy", "-conf", "/demo/presentation/caddyfile", "-root", "/demo/presentation"]
EXPOSE 8080
Development Workflow
Links
Thank You!
Questions?


#include <spiceweasel.h>
Collaboration diagram for TRawFrame:
Data Fields | |
| int | bpp |
| int | rowbytes |
| int | channels |
| int | allocated |
| int | width |
| int | height |
| unsigned char ** | data |
Definition at line 39 of file spiceweasel.h.
Definition at line 43 of file spiceweasel.h.
Referenced by read_bmp(), read_init(), read_png(), write_frame(), and write_init().
| int TRawFrame::bpp |
Definition at line 40 of file spiceweasel.h.
Referenced by read_bmp(), read_frame(), read_png(), write_frame(), and write_png().
Definition at line 42 of file spiceweasel.h.
Referenced by read_frame(), read_png(), write_frame(), and write_png().
| unsigned char** TRawFrame::data |
Definition at line 47 of file spiceweasel.h.
Referenced by read_bmp(), read_frame(), read_png(), write_frame(), and write_png().
Definition at line 45 of file spiceweasel.h.
Referenced by read_bmp(), read_frame(), read_png(), write_frame(), and write_png().
| int TRawFrame::width |
Definition at line 45 of file spiceweasel.h.
Referenced by read_bmp(), read_frame(), read_png(), write_frame(), and write_png().


$500 / Hour
Hire Me
About Me
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.
Contrary to popular belief, Lorem Ipsum is not simply random text.
Personal Details
-
GenderMale
-
Date of Birth01 - 02 - 2000
-
Where did you hear about us?Through web search
Qualification
-
Undergraduate CollegeCoimbatore University
-
Undergraduate MajorMathematics
-
Graduate CollegeCoimbatore University
-
Type of DegreeB.Sc (Maths)
Location
-
Address 1No : 5 ABC Avenue
-
Address 2National highway road
-
CountryIndia
-
CityCoimbatore
-
StateTamil Nadu
-
Postal Code641001


--- layout: post title: no title date: '2014-10-04T07:30:45+02:00' categories: - Sketches picture_url: https://film-Storyboards.tumblr.com/post/99130558043 ---


2) Have your character rotate right when the right arrow key is pressed, and and left when the left arrow key is pressed.
4) When the character passes the edge of the screen, have it appear on the opposite edge.
5) Every few seconds, have an object for your character to collect appear on the screen.
7) Create a score variable, have it increase every time you collect an object. Display the score variable on the screen.
8) Create obstacles for your character to avoid. Have them appear in set intervals of time. Have each obstacle be a random size. Also, create a message that only stays visible for a few seconds that tells the player how to play the game.


This page generates a sample card sheet using an input field. Each card generated can be edited by double-clicking on it; a double-sized version will appear in a modal window. Fields that can be edited will highlight; click into a field to modify its values. To generate a cardsheet, enter one or more defintions in the field below. Here are some examples:
6 //Generate 6 random characters ... all Males 6x-? //Generate 6 random characters either Male or Female 1xMilitary //Generate 1 Military character *xPolice //Generate a Star Police character 2xSurvivor-F //Generate 2 Survivor characters - all Female 4xCivilian-? //Generate 4 Civilian characters - up to half are Female 1xGanger, 2xMilitary //Generate 1 Ganger and 2 Military characters
To properly view the generated cards, the "Lots of Dead Crack Babies" font will need to be installed into your system's "Fonts" folder. Download the font from here. Otherwise, the generated cards default to Google Fonts API for 'Metal Mania'.
Before printing, adjust the printer margins to 0.25 inch or 1 CM or greater. This will fix weird layout issue. Also, remove 'Shrink to Page'; cards are 2.5"x3.5". Do not print headers, footers, or other meta data on page. To save the image for later, select the printer as 'Adobe PDF' if Acrobat is installed.


on
HTTP on Roku
Category: Patterns
After getting your development environment all set up for Roku dev and creating your first Hello World!
app, one of the first 'real' things you will need to do when developing a proper app is to fetch data from the network. However, Roku's HTTP stack is a little different than you might be used to on other platforms, so this post aims to walk through how it works and how to perform common operations.
Overview
The object that you use to fetch data from the network in BrightScript is called roUrlTransfer. This class implements several interfaces, the most important of which are ifUrlTransfer and ifHttpAgent. The Roku docs explain how to create an instance and what each of the methods do (though they can be a little bit sparse and don't include many real-world examples). One important thing to note is that the roUrlTransfer
object can only be used from a Task
node - since network calls are inherently asynchronous, Roku forces you to do these operations in a Task
to avoid blocking the UI thread.
Preparing a request
To make a request, the general steps are:
- Create an instance of the
roUrlTransfer
object - Configure it appropriately, including setting the url
- Call one of the built-in methods to actually fetch the data
Let's start with some simple usage:
GET
request
To make a simple GET
request, you can do this:
request = CreateObject("roUrlTransfer")
request.SetUrl("http://your.url/goes.here")
response = request.GetToString()
In this case, response
will be the actual HTTP body. The docs say that GetToString
will "connect to the remote service as specified in the URL and return the response body as a string. This function waits for the transfer to complete and it may block for a long time. This calls discards the headers and response codes. If that information is required, use AsyncGetToString instead."
We will get to AsyncGetToString
in a moment, but let's look at another example first.
POST
request
To POST
data, the code looks similar:
request = CreateObject("roUrlTransfer")
request.SetUrl("http://your.url/goes.here")
response = request.PostFromString(body)
Although the code is not much different, there are a couple of things to note here. The first is that the return value is not the same as GetToString
. Instead, the docs say: "The HTTP response code is returned. Any response body is discarded." Probably not super useful in most cases, so we will see how to get the entire HTTP response (including body and headers) a little later on.
The second is that body
is a string and is the exact HTTP body that you want to send. If your server is expecting application/x-www-form-urlencoded
values (like would be received from an HTML <form>
), then you need to format the data appropriately. MDN says "the keys and values are encoded in key-value tuples separated by '&', with a '=' between the key and the value. Non-alphanumeric characters in both keys and values are percent encoded". You can use the Escape function to url-encode the keys and values like this:
request = CreateObject("roUrlTransfer")
body = "firstname=" + request.Escape("Mary Ann") + "&lastname=" + request.Escape("Smith-Jones")
request.SetUrl("http://your.url/goes.here")
response = request.PostFromString(body)
If your server is expecting JSON, you can build an object and then use [FormatJSON][]
to produce the string to send:
request = CreateObject("roUrlTransfer")
data = {
firstname: "Mary Ann"
lastname: "Smith-Jones"
}
body = FormatJSON(data)
request.SetUrl("http://your.url/goes.here")
response = request.PostFromString(body)
In most cases, you will also need to specify the Content-Type
header as well, which brings us to...
Request headers
To add headers to a request, you can either add them individually using the AddHeader
method like this:
request = CreateObject("roUrlTransfer")
data = {
firstname: "Mary Ann"
lastname: "Smith-Jones"
}
body = FormatJSON(data)
request.AddHeader("Content-Type", "application/json")
request.AddHeader("X-Api-Key", "ABC-123-DEF")
request.SetUrl("http://your.url/goes.here")
response = request.PostFromString(body)
Or you can set them all at once by passing an AA to SetHeaders
like this:
request = CreateObject("roUrlTransfer")
data = {
firstname: "Mary Ann"
lastname: "Smith-Jones"
}
body = FormatJSON(data)
headers = {
"Content-Type": "application/json"
"X-Api-Key": "ABC-123-DEF"
}
request.SetHeaders(headers)
request.SetUrl("http://your.url/goes.here")
response = request.PostFromString(body)
Some headers (like User-Agent
and Content-Length
) are set automatically for you but can be overridden in special cases.
Other HTTP verbs
Along with GetToString
and PostFromString
, there is also a built-in Head
method that will do a HEAD
request. But for all other HTTP verbs (such as PUT
, DELETE
, etc) you must use the SetRequest
method:
request = CreateObject("roUrlTransfer")
request.SetRequest("DELETE")
request.SetUrl("http://your.url/goes.here")
response = request.GetToString()
Confusingly, you still have to use either GetToString
or PostFromString
to actually send the request, depending on if you need to also send a message body or not.
HTTPS and SSL
Unlike most other HTTP stacks that you may be familiar with, roUrlTransfer
does not support HTTPS in the default configuration. You must explicitly call SetCertificatesFile
and pass it the local file path of a .pem
file that contains the certificates from the Certificate Authority. You can provide your own .pem
file, but for most scenarios it is easier to use the file provided by Roku with this special path: common:/certs/ca-bundle.crt
. So the full usage would be:
request = CreateObject("roUrlTransfer")
request.SetCertificatesFile("common:/certs/ca-bundle.crt")
request.SetUrl("https://your.secure.url/goes.here")
response = request.GetToString()
If for some reason your server returns an invalid SSL certificate and you want to accept it anyway (perhaps in a testing or staging situation), you can set use EnableHostVerification(false)
and EnablePeerVerification(false)
to disable the SSL check.
Note that there is also a method called InitClientCertificates
but all that does is cause the Roku to send its own client cert to your server. There are cases where that might be useful (for authenticating a specific Roku device, for example), but it is not related to HTTPS.
Handling a response
As mentioned earlier, GetToString
will return the HTTP body, so if you:
- are making a
GET
call, and - dont need the status code to know it was a success, and
- dont need any HTTP response headers, and
- dont mind the synchronous nature of
GetToString
...then you can just use GetToString
and grab the response and go about your business. However, in most cases, you will want to know if the request succeeded or not, or want to access the headers, or want to make the request asynchronously. In those cases, we need to move away from GetToString
(and PostFromString
) and use the asynchronous versions instead: AsyncGetToString
and AsyncPostFromString
(and AsyncHead
if for some reason you need that).
For all of these methods, the request is sent asynchronously and later a roUrlEvent
will be dispatched to the message port when the response is ready. This has several benefits:
- the call returns immediately so it does not block further execution
- the
roUrlEvent
contains not only the response body, but also access to the response status code and headers
In most non-trivial apps, these are the methods you will want to use.
Handling the roUrlEvent
message
In order to handle the asynchronous events, you need to configure the roUrlTransfer
object to send its messages to a message port. Like other objects that implement the ifSetMessagePort
interface, you do it like this:
port = CreateObject("roMessagePort")
request = CreateObject("roUrlTransfer")
request.SetMessagePort(port)
request.SetUrl("http://your.url/goes.here")
request.AsyncGetToString()
Then, in your port-monitoring code, you can listen for the roUrlEvent
message like this:
msg = wait(0, port)
if (type(msg) = "roUrlEvent")
'TODO: handle response here
else
'Not a roUrlEvent
end if
Once you have the roUrlEvent
message, you can access the status code, body, and headers. The roUrlEvent documentation lists all available methods, but let's cover the common scenarios.
Linking requests & responses
Note that the docs also have this to say about asynchronous requests:
"Each roUrlTransfer object can perform only one asynchronous operation at one time. After starting an asynchronous operation, you cannot perform any other data transfer operations using that object until the asynchronous operation has completed, as indicated by receiving an roUrlEvent message whose GetSourceIdentity value matches the GetIdentity value of the roUrlTransfer. Furthermore, the roUrlTransfer object must remain referenced until the transfer has completed. That means that there must be at least one variable containing a reference to the object during the transfer. Allowing the variable to go out of scope (for example, by returning from a function where the variable is declared, or reusing the variable to hold a different value) will stop the asynchronous transfer."
If you use asynchronous requests, make sure that you keep a reference to the roUrlTransfer
object until the response is complete or else the request will be cancelled. One approach is to create a dictionary of in-flight requests that will hold the references and can be used to look up the request when the response message comes in.
Each request generates a unique ID that can be read using the GetIdentity
method like this:
port = CreateObject("roMessagePort")
request = CreateObject("roUrlTransfer")
request.SetMessagePort(port)
request.SetUrl("http://your.url/goes.here")
request.AsyncGetToString()
id = request.GetIdentity().ToStr()
When you receive a roUrlEvent
message, it has a GetSourceIdentity
method (I dont know why they have different names) that will return the ID of the response. You can use these IDs to correlate response messages with requests.
msg = wait(0, port)
if (type(msg) = "roUrlEvent")
responseId = msg.GetSourceIdentity().ToStr()
'If responseId = requestId, then this response goes with that request
end if
You can use this ID as the key in the lookup dictionary to track multiple concurrent HTTP requests.
HTTP status codes
When you get the roUrlEvent
message, usually the first thing you want to do is check the status code to see if it succeeded. You can use the GetResponseCode
method to read the status code:
msg = wait(0, port)
if (type(msg) = "roUrlEvent")
responseId = msg.GetSourceIdentity().ToStr()
statusCode = msg.GetResponseCode()
'If statusCode >= 200 and < 300, then it was a success
end if
If the status code is a positive value, it will represent the HTTP status code of the response. However, if the status code is a negative value, it indicates a low-level failure. These error codes are documented here (and notice that roUrlTransfer
is really just a thin wrapper over curl
).
Handling the response body
You can get the actual response body with the GetString
method. This will be the raw HTTP body so if you are expecting a structured format like JSON or XML, you will need to parse it accordingly:
msg = wait(0, port)
if (type(msg) = "roUrlEvent")
responseId = msg.GetSourceIdentity().ToStr()
statusCode = msg.GetResponseCode()
body = msg.GetString()
json = ParseJSON(body)
end if
Note that if the status code is not in the 200-299 range, the body will be empty. You can change this behavior (so that you can get the full body for non-200 responses as well) by setting the RetainBodyOnError(true)
method on the request
port = CreateObject("roMessagePort")
request = CreateObject("roUrlTransfer")
request.SetMessagePort(port)
request.SetUrl("http://your.url/goes.here")
request.RetainBodyOnError(true)
request.AsyncGetToString()
Response headers
Strangely, there are two different ways to read the response headers. The first is GetResponseHeaders
which returns an AA with the header names as the keys and the header values as the values. However, the documentation states: "Headers are only returned when the status code is greater than or equal to 200 and less than 300.". Also note that some headers are allowed to appear in the HTTP response multiple times, and since they are represented as an AA here (which cannot have duplicate keys), only the last HTTP value is represented.
msg = wait(0, port)
if (type(msg) = "roUrlEvent")
responseId = msg.GetSourceIdentity().ToStr()
statusCode = msg.GetResponseCode()
if statusCode >= 200 AND < 300
headers = msg.GetResponseHeaders()
etag = headers["Etag"]
end if
end if
The alternative is GetResponseHeadersArray
. This returns and array of AAs instead and the documentation states: "Each associative array contains a single header name/value pair. Use this function if you need access to duplicate headers, since GetResponseHeaders() returns only the last name/value pair for a given name. All headers are returned regardless of the status code." The down side of this is that you cannot directly access the header value by name (you have to loop over the array instead).
msg = wait(0, port)
if (type(msg) = "roUrlEvent")
responseId = msg.GetSourceIdentity().ToStr()
statusCode = msg.GetResponseCode()
headers = msg.GetResponseHeadersArray()
for each headerObj in headers
for each headerName in headerObj
?headerName, headerObj[headerName]
end for
end for
end if
Putting it all together
data = {
firstname: "Mary Ann"
lastname: "Smith-Jones"
}
body = FormatJSON(data)
port = CreateObject("roMessagePort")
request = CreateObject("roUrlTransfer")
request.SetMessagePort(port)
request.SetCertificatesFile("common:/certs/ca-bundle.crt")
request.RetainBodyOnError(true)
request.AddHeader("Content-Type", "application/json")
request.SetRequest("PUT")
request.SetUrl("https://your.secure.url/goes.here")
requestSent = request.AsyncPostFromString(data)
if (requestSent)
msg = wait(0, port)
if (type(msg) = "roUrlEvent")
statusCode = msg.GetResponseCode()
headers = msg.GetResponseHeaders()
etag = headers["Etag"]
body = msg.GetString()
json = ParseJSON(body)
end if
end if
Helper Libraries
As you can see, Roku's HTTP handling is quite different than many of the other implementations you might be familiar with. If all of this roUrlTransfer
stuff is confusing, you might consider using one of the open-source libraries out there that wrap it all up into a more user-friendly package. A couple to consider are:
roku-requests - Python-inspired library that includes client-side caching. Lets you write code like:
r = Requests().request("PUT", "https://httpbin.org/put", {"key":"value"})
roku-fetch - Inspired by Javascript's fetch
functionality, you can write code like:
response = fetch({
url: "http://example.url",
timeout: 5000,
method: "PUT",
headers: {
"Content-Type": "application/json",
"If-None-Match": "abc123"
}
body: FormatJson({id: "xyz", amount: 8.29})
})
NOTE: Full disclosure - I am the author of the roku-fetch library
Wrapping up
Hopefully that gave you a better understanding of how Roku's HTTP handling works and how to use it. If you have questions, head over to the Roku Slack channel and ask away.


The code has grown haphazerdly to encompass many other data processing jobs -- basically anything I thought would muddle the basic Fusion3D code.
C:\\Fusion3D\\bin\\lasFormat.exe -igrid Name of first input .las file -igrid Name of second input .las file, if present ... -igrid Name of last input .las file, if present -oa2 Name of output a2-DEM file in GeoTiff (a1-DEM and intensity files are made from this using BuckEye conventions) WARNING -- the name must contain the sequence '_a2_' in order to make the other output names -res Output resolution (post spacing) for DEMs -tauth Used only where the quality metric TAU is available for the point cloud, uses only points above this threshold -a1th 3.0 Used iff high-noise sensor, this -imax Max intensity for output intensity file
One way to crop and write is using a MrSID utility mrsidgeodecode. This does the reading, cropping and writing in one operation. Another way is to use my MrSID classes to do the reading and writing. This is more coding but may be more flexible.


Before Change
g = create_test_graph()
mrw = UniformRandomMetaPathWalk(g)
nodes = ["0"]
n = 5
length = 5
metapaths = [["s", "n", "n", "s"], ["n", "s", "n"], ["n", "n"]]
After Change
assert all(np.array_equal(w1, w2) for w1, w2 in zip(run_1, run_2))
def test_benchmark_uniformrandommetapathwalk(self, benchmark):
g = example_graph_random(n_nodes=50, n_edges=500, node_types=2)
mrw = UniformRandomMetaPathWalk(g)
// this should be made larger to be more realistic, when it is fast enough
nodes = np.arange(0, 5)


Summary
As punishment for his actions, a young prince is transformed into a monstrous beast by a mysterious enchantress. Only condition is if he can learn to love someone and earn their love in return, the curse will be lifted. Enter young bookworm Belle, who stumbles upon the castle and is taken prisoner by the Beast while rescuing her father. With help from the Beast's servants, Belle comes to appreciate and love the Beast all while evading a stalking hunter who wants to marry her.


Please take your phone off of silent and turn your sound all the way up.
Use the toggle switch to start playing a melody. Everyone's phone will be playing a different melody.
If you don’t like your melody, turn the toggle switch off and back on again. You will then hear a new melody.
The amount of time you listen to a melody affects whether aspects of that melody are generated on another person’s phone. The longer you listen, the greater the chances.
You control the outcome of the installation. Through choosing sounds you like and skipping ones you don’t, we will create a work of collective sound art.
From the chaos will emerge A more perfect union.
Please feel free to move around the space to experience the piece from different perspectives


As winter approaches, we’ll be spending more time indoors. This will increase the risk of coronavirus spreading.
The following reconstructions of everyday environments show why washing hands regularly, wearing a face covering and keeping at least 2m apart is vital in controlling the spread.
Coronavirus can live for more than 24 hours indoors.
You could pick up or pass on the virus by touching a contaminated surface.
Washing your hands with soap and water, or using hand sanitiser, regularly throughout the day will reduce the risk of catching or passing it on.

 This means if you have it, you’re less likely to pass it on to others.
Larger droplets can land on other people or on surfaces they touch. Spreading the virus through droplets is most likely to happen when you are less than 2m apart.
Smaller droplets called aerosols can stay in the air for some time, especially if there is no ventilation.
So when you are with people not from your household, you must keep at least 2m apart.
The risk of spreading the virus through smaller droplets is much less outdoors, where there is more ventilation.
Wash your hands, cover your face, make space. These are the three most effective ways we can all control the spread of the virus.
Remember if you have any coronavirus symptoms; high temperature, a new continuous cough, or a loss or change in your sense of taste or smell, get a free test by calling 119 or visiting NHS.uk.
Together, we will control the virus and stop the spread.
Don’t forget, Hands, Face, Space.


A "How might we" (HMW) question is both an insight about what the core issue is as well as a focus aid for the design process. This question will serve as inspiration during the development and delivery phases of the project. If your development strays too far from the HMW question, the solution you deliver might be solving a different set of issues from the ones you set out to solve. Refer back to the HMW question often throughout the process.
Use the following pattern for creating the sentence: How might we ( positive action ) ( a description of specific challenge ) ( a specific context ) ?
In this example, let's say that I discovered that a friend was anxious about socializing. The HMW question could be phrased like this:
How might we ( relieve the stress of social interaction from ) ( a person who has trouble feeling comfortable in groups ) ( when they socialize with friends )?
Use the file format indicated in each step. You must obtain prior approval to deviate from these upload requirements. Please check that your work has uploaded properly.
.jpg
or .png
format.


[Ryan] has a friend with a birthday coming up, and being inspired by ever 12-year-olds favorite game, he decided to make a Minecraft ore block with RGB LEDs. The block can change from diamonds to emeralds via commands send from an Android phone.
After a few false starts, [Ryan] eventually had his ore cube laser cut at Acess Space, a hackerspace-ish group in Sheffield. The box was constructed out of 3mm MDF, while the windows were laser cut out of frosted acrylic, while the stone pattern on the cube is one giant custom-made sticker.
With the tedious part of the build out of the way, [Ryan] set to work on the electronics. He used a PIC attached to a few very large RGB LEDs, and a Bluetooth module that allows him to connect his phone to an ore block. Dialing in the right colors took some work, but eventually, [Ryan] had an Android-controlled Minecraft ore block, able to transmutate between gold, iron, diamond, emerald, lapis, and redstone.
You can check out a video of [Ryan]‘s ore block in action after the break.
Recent comments


The very very short version is: webmockr
helps you stub
HTTP requests so you don’t have to repeat yourself.
More details
You tell webmockr
what HTTP request you want to match
against and if it sees a request matching your criteria it doesn’t
actually do the HTTP request. Instead, it gives back the same object you
would have gotten back with a real request, but only with the bits it
knows about. For example, we can’t give back the actual data you’d get
from a real HTTP request as the request wasn’t performed.
In addition, if you set an expectation of what webmockr
should return, we return that. For example, if you expect a request to
return a 418 error (I’m a Teapot), then that’s what you’ll get.
What you can match against
Plus any single or combination of the following:
hello world
to
hello%20world
)message = hello world
to
message = hello%20world
)list(H1 = "value1", content_length = 123, X_CuStOm_hEAder = "foo")
list(h1 = "value1", "Content-Length" = 123, "x-cuSTOM-HeAder" = "foo")
Real HTTP requests
There’s a few scenarios to think about when using
webmockr
:
After doing
library(webmockr)
webmockr
is loaded but not turned on. At this point
webmockr
doesn’t change anythning.
Once you turn on webmockr
like
webmockr::enable()
webmockr
will now by default not allow real HTTP
requests from the http libraries that adapters are loaded for (right now
only crul
).
You can optionally allow real requests via
webmockr_allow_net_connect()
, and disallow real requests
via webmockr_disable_net_connect()
. You can check whether
you are allowing real requests with
webmockr_net_connect_allowed()
.
Certain kinds of real HTTP requests allowed: We don’t suppoprt this
yet, but you can allow localhost HTTP requests with the
allow_localhost
parameter in the
webmockr_configure()
function.
Storing actual HTTP responses
webmockr
doesn’t do that. Check out vcr


The concept of the Current Header and Data Unit, or CHDU, is fundamental to the use of the CFITSIO library. A simple FITS image may only contain a single Header and Data unit (HDU), but in general FITS files can contain multiple Header Data Units (also known as `extensions'), concatenated one after the other in the file. The user can specify which HDU should be initially opened at run time by giving the HDU name or number after the root file name. For example, 'myfile.fits[4]' opens the 5th HDU in the file (note that the numbering starts with 0), and 'myfile.fits[EVENTS] opens the HDU with the name 'EVENTS' (as defined by the EXTNAME or HDUNAME keywords). If no HDU is specified then CFITSIO opens the first HDU (the primary array) by default. The CFITSIO routines which read and write data only operate within the opened HDU, Other CFITSIO routines are provided to move to and open any other existing HDU within the FITS file or to append or insert new HDUs in the FITS file.


---
layout: page
title: Rick Farouni
subtitle: Dedicated to Rigorous Science in the Public Interest
---
About Me
I am an applied statistician with expertise in the statistical modeling and analysis of genomics, single-cell transcriptomics, and CRISPR genome editing data. Currently, I am bioinformatics scientist at the Department of Biosystems Science and Engineering at the Swiss Federal Institute of Technology in Zurich (ETH Zurich). Previously, I was a post-doctoral researcher in computational biology working with Dr. Najafabadi in the Department of Human Genetics, McGill University/Génome Québec Innovation Centre and before moving to Canada, I was a research fellow in the lab of Dr. Pinello at the Massachusetts General Hospital/Harvard Medical School. I received a PhD in Quantitative Psychology (statistics applied to modeling psychological and neuroimaging data), a masters degree in Mathematical Statistics, and a masters degree in Psychometrics from the Ohio State University. This website contains blogposts, code, and links to several resources that I hope you might find useful.
My CV can be accessed here.
A list of my publications can be found here.
An example of my teaching philosophy and approach can be accessed here.


I enjoy kittens. They are adorable.
Let's look at some kittens
Reasons why kittens are cute.
Puppies rule!


Something went wrong and we could not register or log you in. Please contact<EMAIL_ADDRESS>if this was unexpected.


Calendar
Welcome to Your Calendar
The calendar shows the events synced from all your linked calendars. Click on event to see or edit the details. You can create new event by clicking on "Create New event" button or any cell available in calendar below.


A responsive site is a site that changes depending on the screen size that the user is viewing it on.
It is important because if the site didn't adapt to a mobile screen from a desktop screen, it would be very difficult for mobile users to navigate around the site. They would have to scroll left and right and up and down a lot, it would be very difficult to read the very large text, and to push on small links.
Mobile first design is designing the page for a mobile screen first, and then using media queries to change things as the screen gets larger, rather than designing the site for desktop users, and editing the site as the screen gets smaller.
This is important because it is much harder to get rid of content than adding content, so it is easier to decide what makes it onto the mobile site.
Frameworks are a standardised collection of code. You can use frameworks to help buid a website.
Frameworks are useful as they make it easier to build a website, and to keep the code neat.
However, frameworks aren't all good. They resolve common issues which means that although it's easier to make the site, you don't learn how to resolve the issues yourself.
It also mixes content and style rather than keeping them completely separate.
Wireframes are sketches of what you want the page to look like.
Wireframes can make it easier to code the site because you have a reference to look at. You can rearrange and make decisions on the layout and styling before beginning to code which saves a lot of time changing the code afterwards.
My wireframes are below. I couldn't implement the separate squares for the nav bar because I couldn't figure out how to line them up and space them out. I also found it difficult to implement the background picture as it took a really long time to figure out how to do it where the image took up the entire background, and it wasn't repeating itself.


{% extends "base.html" %} {% block title %}Assignment Grades{% endblock %} {% block content %} {{ grade['name']}}/ SESSION: {{ grade['class_session']}} / ASSIGNMENT: {{grade['assign_name'] }}/ ID #{{grade ['assign_id']}} STUDENT SUBMISSION: {{grade['submission']}} FEEDBACK: {{grade['feedback']}} earned possible grade {{grade['earned'] }} {{grade['total'] }} {{grade['assignment_grade'] }}% {% endblock %}
{{grade['submission']}}
{{grade['feedback']}}


This page does not exist!
Well obviously it does, but this probably isn't the page you're looking for.
{{ partial "header" . }} {{ partial "svg/inline" . }} {{ partial "navError" . }}
Well obviously it does, but this probably isn't the page you're looking for.


These are all the static methods that exists directly on the page
-object.
See the Event-page for list of events.
start([id: String / {noGo:Boolean}])
This method will start to listen to hashchange-events. Works only for newer browsers (not IE7/IE8).
Include jQuery Hashchange
plugin to get support for IE7/IE8.
This method should be called after ko.applyBindings(...)
.
If an ID is supplied that ID will be set as initial location.hash
.
If start({noGo: true})
then the initial path will be ignored - not triggering a navigation.
// your view model var viewModel = { }; // extend viewModel with a $__page__ that points to pager.page that points to a new Page pager.extendWithPage(viewModel); // apply your bindings ko.applyBindings(viewModel); // run this method - listening to hashchange pager.start();
startHistoryJs([id: String / {noGo:Boolean}])
This method will start to listen to statechange and anchorchange-events using History.js.
You'll need to load History.js before calling this method.
This method should be called after ko.applyBindings(...)
.
If an ID is supplied that ID will be set as initial History.pushState
.
If start({noGo: true})
then the initial path will be ignored - not triggering a navigation.
// your view model var viewModel = { }; // extend viewModel with a $__page__ that points to pager.page that points to a new Page pager.extendWithPage(viewModel); // apply your bindings ko.applyBindings(viewModel); // run this method - listening to hashchange pager.startHistoryJs();
extendWithPage(viewModel : Object)
Create a new Page-object and set it on pager (pager.page
) as well as the
viewModel (viewModel.$__page__
). This page-object works as the root page.
You must call this method (or do the identical thing yourself) before calling
ko.applyBindings(...)
showChild(route : String[])
Will trigger pager.page.childManager.showChild
, i.e. route
to the correct pages. You should call this method if you are using your own
event listener for user navigation (e.g. History.js)
or in some other way need to call the routing.
page : pager.Page
The root page. Got no ID. Using this reference (or $__page__
in the view model)
it is possible to e.g. get a hold of all the pages on the site using pager.page.children()
useHTML5history: Boolean
Default to false
. If set to true
the custom binding page-href
will use true URLs instead of
hash bangs. If History.js is used (by setting pager.Href5.history = History
after loading
History.js) a fallback solution with hash bangs will be used for older browsers.
getParentPage(BindingContext) : Observable(Page)
Supplying the method with a bindingContext will return the first Page-instance in the context hierarchy. If no self-defined Page-instance can be found the root Page-instance will be returned.
ko.bindingHandlers['lorem-ipsum'] = { init:function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) { // get the Page-instance that this element resides in var page = pager.getParentPage(bindingContext); // bind the text of the element to the page title ko.applyBindingsToNode(element, { text: page.val('title') }); } };
Href.hash: String
Defaults to #
. Can be set to #!/
if google style hash bangs are preferred.
Href5.history: Object
Defaults to window.history
. Can be set to History
if
History.js is loaded. This object will be used by page-href
when useHTML5history === true
.
goTo: Function(String)
Go to the page at the path. Will not update the URL.
var path = "#!/this/is/a/path"; pager.goTo(path);
navigate: Function(String)
Update the URL to the path (as a String
), triggering a navigation.
This is the preferred way to trigger navigation from the code.
var path = "#!/this/is/a/path"; pager.navigate(path);
activePage$: Observable(pager.Page)


@* * Copyright 2023 HM Revenue & Customs * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *@ @import views.html.partials.create_case_button @import views.html.components.atarCaseTable @import views.html.components.liabilityCaseTable @import views.html.components.correspondenceCaseTable @import views.html.components.miscellaneousCaseTable @import models.request.AuthenticatedRequest @import config.AppConfig @import models.viewmodels.CasesTabViewModel @import views.html.components.heading @(cases : CasesTabViewModel)(implicit request: AuthenticatedRequest[_], appConfig: AppConfig, messages: Messages) @heading(messages(cases.headingMessageKey)) @if(cases.caseType == ApplicationType.LIABILITY) { @create_case_button(ApplicationType.LIABILITY.prettyName.toLowerCase()) } @if(cases.caseType == ApplicationType.CORRESPONDENCE) { @create_case_button(ApplicationType.CORRESPONDENCE.prettyName.toLowerCase()) } @if(cases.caseType == ApplicationType.MISCELLANEOUS) { @create_case_button(ApplicationType.MISCELLANEOUS.prettyName.toLowerCase()) }


Run a dump format plugin.
FILE
The plugin command enables the generation of a custom dump format. The command receives a file to be executed as a Lua script.
rbxmk dump plugin script.lua
If -
is given as the file, then the script will be read from
standard input instead.
echo 'print("hello world!")' | rbxmk dump plugin -
The script receives as arguments a table and a function.
local dump, write = ...
The table contains a complete description of the rbxmk Lua environment. The
structure of the table matches the structure of the json
dump
format.
The function is used to build the output. It receives any number of values, converts them to strings, and concatenates them directly to the result.
-- List all libraries.
local dump, write = ...
for _, library in ipairs(dump.Libraries) do
write(library.Name, "\n")
end
After the script finishes, the result is written to standard output.
Unlike the run command, the script runs in a limited environment that includes only the following libraries:


Display Property
display: inline;
Cupcake ipsum dolor sit amet jelly. Jelly oat cake jelly-o tiramisu
chocolate cake ice cream powder lemon drops. Jelly beans muffin gummi
bears sugar plum gingerbread.
This element's display setting is inline.
Lemon drops candy canes jelly lollipop candy pie chocolate cake apple pie
candy. Dessert liquorice pastry brownie ice cream sesame snaps biscuit
bonbon.
This element's display setting is inline.
Icing fruitcake gingerbread chocolate cake carrot cake. Caramels sweet
roll chocolate bar bonbon gummi bears sesame snaps pie.
display: inline-block;
Marzipan pie cheesecake tiramisu. Halvah lollipop pie chupa chups
chocolate cake ice cream. Tiramisu tiramisu bonbon sweet caramels pastry
chocolate wafer.
This element's display setting is inline-block.
Gummi bears gingerbread tart carrot cake. Fruitcake carrot cake carrot
cake lemon drops topping.
This element's display setting is inline-block.
Halvah caramels gingerbread. Bonbon danish biscuit cookie gummi bears
wafer. Powder macaroon powder. Muffin icing muffin chupa chups.
display: block;
Jelly-o macaroon bonbon gummies gummies biscuit lollipop. Jelly beans
gummi bears croissant. Sweet roll fruitcake cake cake. Fruitcake sugar
plum wafer cheesecake chocolate bar tart bonbon sesame snaps.
This element's display setting is block.
Candy canes jelly beans candy canes jelly. Topping pudding fruitcake
cookie marshmallow gingerbread wafer. Tootsie roll pudding sweet roll
fruitcake gummies dragée.
This element's display setting is block.
Bear claw jelly beans jelly beans.
Developer's Choice
Sweet cookie tiramisu soufflé chocolate danish. Powder chupa chups ice
cream tootsie roll pastry cake.
Pastry pie marzipan tootsie roll pie tart dessert jelly-o.
Topping lemon drops bear claw jelly beans.
Danish lollipop chocolate bar danish halvah sugar plum gummi bears
cheesecake.
Pudding gummies soufflé sugar plum dessert donut cake fruitcake candy.


A Conference About Privacy and Surveillance
Priv DC is an exciting conference about the future of privacy and surveillance in our ever-changing world. It will take place August 4-5, 2018 in Washington, DC. Featuring well-known speakers such as Edward Snowden and Tim Berners-Lee, it will be an interesting conference for anyone interested in privacy.


Titles In PDFs
There are actually multiple ways to fix or add a title in a PDF. Two ways are shown in the video below. Note that an empty title will reveal itself as a problem to fix in the first video; fixing doesn't just mean changing a title, it can mean adding a title to where there is none presently. Also, don't do what I did in the second video...if you have only one keyword, don't add a comma after it... but multiple keywords are separated by commas, and that is the point I was trying to make! Oh, and also, don't mis-spell the title, like I did, in the second video...


Inmates at HMP Addiewell torch jail cells in protest over prison conditions
A prison source said staff shortages have led to prisoners being kept in their cells for long periods of time.
by Norman Silvester, https://www.dailyrecord.co.uk/authors/norman-silvester/Prisoners in a high security prison have set fires in the building in protest at being locked up for 22 hours a day .
Inmates caused the damage at HMP Addiewell in West Lothian after it was hit by staff shortages.
At least two fires have been started in the privately run jail as tensions increase over conditions.
Prisoners also staged a protest by refusing to go back to their cells on Friday night.
Operator Sodexo Justice Services says the jail is about 47 officers short.
Last month, it emerged five trainee officers had left their jobs after failing drug tests.
A family member of one prisoner said: “There are not enough staff to let the prisoners out of their cells and put them back in again.”
Another source said: “The same officers are trying to run multiple halls, it’s an impossible job.”
An HMP Addiewell spokesman said: “Due to a very short notice set of staffing circumstances, we have had to regrettably restrict the amount of time out of cells in the prison over the last couple of days.
“Restricting the daily routine is always a very last resort for us and has been done purely to ensure the safety and wellbeing of all those who live and work in Addiewell.”


Some requests returns multiple Resources, for that reason the Github API paginate it and pygithub3 too
It’s a very lazy paginator beacuse only do a real request when is needed, besides it’s cached, so never repeats a request.
You have several ways to consume it
Iterating over the result:
result = some_request()
for page in result:
for resource in page:
print resource
With a generator:
result = some_request()
for resource in result.iterator():
print resource
As a list:
result = some_request()
print result.all()
Also you can request some page manually
Each Page is an iterator and contains resources:
result = some_request() assert result.pages > 3 page3 = result.get_page(3) page3_resources = list(page3)
Get Page of resources
| Parameters: | page (int) – Page number |
|---|
Total number of pages in request
It’s a middle-lazy iterator, because to get a new page it needs make a real request, besides it’s cached, so never repeats a request.
You have several ways to consume it
Iterating over the result:
result = some_request()
for page in result:
for resource in page:
print resource
With a generator:
result = some_request()
for resource in result.iterator():
print resource
As a list:
result = some_request()
print result.all()