Typr is a touch typing app designed to help you increase your typing speed
This app has been developed by Shikhar Sahdev and Rishabh Aggarwal and is
our first html web app. We hope you like using this app and it helps increase your typing speed.
P.S. This being a typing app, we request you to keep your MICE ASIDE.
Press Right Arrow to continue.
You would be required to type the random text shown on the screen.
Don't even touch the Caps Lock button, set it to lowercase before beginning and type everything in lower case.
You will be given a report on how your typing is after completion of the given text.
Enter text in this field which can be selected by pressing Tab. Please enter only alphabets and press
ctrl key to continue


Enter the $VOID
No team | No project | Only on Avalanche
This is a community governed token.
Launched on the 17th November 2021, the contract and liquidity were burned.
As well 33.3% of the token supply was burned.
Now it is up to YOU what is to be done next. Enter the $VOID at your own perail.


And more specifically, the prettiest disc ever made, my Purple/Pink Swirled DX Roc:
If you could only own one disc, this is probably the one to get. It's a slightly overstable mid-range disc, but the more you throw it, the more you realize you can make it do pretty much everything you want. Lots of players keep three or four of these in their bag, with differing levels of wear. The more beat-in your DX Roc gets, the straighter it will fly. And eventually, after it hits tons of trees and gets super beat-in, when you throw it flat, it'll glide gently to the right and finish dead straight.


| Apache Struts 2 Documentation > Home > Guides > Core Developers Guide > Annotations |
In many places, applications can use use Java 5 annotations as an alternative to XML and Java properties configuration. This page serves as a reference for all annotations across the framework.
Action annotations are available when the framework scans the classpath for Action classes, rather than specifying individual mappings through XML configuration.
| Annotation | Description |
|---|---|
| Namespace Annotation | Overrides the namespace of an action |
| ParentPackage Annotation | Defines an existing configuration package for the action's package to extend |
| Result Annotation | Defines an action Result |
| Results Annotation | Defines multiple Results |
To use these annotations, you have to specify the AnnotationWorkflowInterceptor to your interceptor stack.
| Annotation | Description |
|---|---|
| After Annotation | Marks a action method that needs to be executed after the result. |
| Before Annotation | Marks a action method that needs to be executed before the main action method. |
| BeforeResult Annotation | Marks a action method that needs to be executed before the result. |
To use annotation-based validation, annotate the class or interface with Validation Annotation.
| Annotation | Description |
|---|---|
| ConversionErrorFieldValidator Annotation | Checks if there are any conversion errors for a field. |
| DateRangeFieldValidator Annotation | Checks that a date field has a value within a specified range. |
| DoubleRangeFieldValidator Annotation | Checks that a double field has a value within a specified range. |
| EmailValidator Annotation | Checks that a field is a valid e-mail address. |
| ExpressionValidator Annotation | Validates an expression. |
| FieldExpressionValidator Annotation | Uses an OGNL expression to perform its validator. |
| IntRangeFieldValidator Annotation | Checks that a numeric field has a value within a specified range. |
| RegexFieldValidator Annotation | Validates a regular expression for a field. |
| RequiredFieldValidator Annotation | Checks that a field is non-null. |
| RequiredStringValidator Annotation | Checks that a String field is not empty. |
| StringLengthFieldValidator Annotation | Checks that a String field is of the right length. |
| StringRegexValidator Annotation | Invokes a regular expression to validate a String field. |
| UrlValidator Annotation | Checks that a field is a valid URL. |
| Validation Annotation | Marker annotation for validation at Type level. |
| Validations Annotation | Used to group validation annotations. |
| VisitorFieldValidator Annotation | Invokes the validation for a property's object type. |
| CustomValidator Annotation | Use this annotation for your custom validator types. |
By default, type conversion for Maps and Collections using generics is directly supported.
In short, instead of specifying the types found in collections and maps as documented in Type Conversion, the collection's generic type is used. By using annotations, an application should be able avoid using any ClassName-conversion.properties files.
To use annotation-based type conversion, annotate the class or interface with the Conversion Annotation.
| Annotation | Description |
|---|---|
| Conversion Annotation | Marker annotation for type conversions at Type level. |
| CreateIfNull Annotation | For Collection and Map types: Create the types within the Collection or Map, if null. |
| Element Annotation | For Generic types: Specify the element type for Collection types and Map values. |
| Key Annotation | For Generic types: Specify the key type for Map keys. |
| KeyProperty Annotation | For Generic types: Specify the key property name value. |
| TypeConversion Annotation | Used for class and application wide conversion rules. |


{% extends "templates.jinja/base.page-with-navbar.html" %} {% block title %} Hesperian - Pregnancy & Birth{% endblock %} {% block id %}Baby_is_lying_sideways{% endblock %} {% block content %}
If a baby is sideways near the end of the pregnancy, make a plan for the mother to give birth in a hospital. A baby lying sideways cannot be born without an operation.
If labor has already started and the baby is sideways, take the mother to a hospital to save her and her baby's life.
{% endblock %} {% block footer %} {% endblock %}


{{Multiple issues| {{refimprove|date=July 2009}} {{no footnotes|date=July 2009}} }}
{{Infobox prepared food | name = Paris buns | image = | caption = | alternate_name = | country = | region = Scotland | creator = | course = | type = Sweet bread | served = | main_ingredient = | variations = | calories = | other = }}
Paris buns are a sweetened breadlike cake similar to currant buns. Paris buns are popular in poorer areas of Scotland and Ireland for being cheap and filling.
{{bread-stub}}


Tailwind is different from frameworks like Bootstrap, Foundation, or Bulma in that it's not a UI kit.
It doesn't have a default theme, and there are no built-in UI components.
Lorem ipsum dolor sit amet consectetur adipisicing elit. Iusto, vero. Totam eligendi consequatur sequi officia fuga amet possimus ea itaque, explicabo ipsa qui minus est laudantium quasi voluptatibus nulla obcaecati!
next
- Lorem ipsum.


The Brain Trust is proud to introduce you to it's online school called BTInstitute. BTInstitute is dedicated to make education available to every child. Our curriculum is concerntrated on creating the world's next generation of social entrepreneurs and world leaders, which will be vital in achieving the global SDGs.
We believe that Afrika's economic future can be found in agriculture and tourism, thus we are putting together learning courses in organic agriculture to serve as a basic of our curriculum. This base will prepare us to tackle the second SDG of "zero hunger". We are also working with the Yakhisizwe Community Development Center on the Yakhisizwe(Build a nation) Initiative, a curriculum in Philisophy, Economics and Technology to prepare our youth to lead the 4th industrial revolution.
Afrika is on the rise with economic development. Education is the key to creating The Afrika We Want. If you are young and want success in the future reading is important. The first book we reccommend for youth(especially young women) is The Green Book. Click here for audiobook
{% include "Home/proverb/p18.html" %}
{% endblock %}


IMPORTANT: These instructions no longer work. We are working on fixing them.
These instructions are intended for QIIME 2 and plugin developers. If you are just using QIIME 2, you probably don’t need to, but are welcome to read these notes.
Publishing a Plugin on Conda¶
You’ll need to have conda-build
and anaconda-client
installed to perform these steps. Both can be conda-installed. First, log into anaconda with your anaconda username using the following command. You should have access to push to the anaconda account through your account (if you don’t, get in touch with the owner of that account).
anaconda login
Due to the fact that Conda is a binary distribution manager, an osx-64
package will need to be built on OS X, and a linux-64
package will need to be built on 64-bit Linux. These steps will be the same on all platforms, so you should repeat them for every platform you want to release for.
First we need to create the recipe, we can use the --manual-url
flag to base it on a github release:
conda skeleton pypi --manual-url <url to github release .zip>
Next you should expect to run conda build
to see what is not available on conda, those packages you should place pip install
commands for in build.sh
file in the generated recipe. For some dependencies you may need to specify multiple channels to get them from for example:
conda build -c <dependency1> -c <dependency2> <project name> --python 3.5
The order in which the channels are specified are very important, as soon as conda finds the package, it will use that channel, even if the package does not meet the version requirements.
Once the build completes successfully you will have a bdist of a 3.5 package. The absolute path to the packages will be provided as output from the conda build
command.
anaconda upload -u <your-conda-channel> <package-filepath>
<package-filepath>
should be replaced with the path to the package that was was created above.
After uploading, you should create a new environment for the package you uploaded, install the package, and re-run the tests. You can install the package you uploaded as follows:
conda install -c <your-conda-channel> <your package>
NOTE: an admin must be the first user to upload to a conda channel, then other users on a release-manager list can upload


--- title: RStudio 1.4 is a Game Changer author: Nik Agarwal date: '2021-01-26' slug: [] categories: - R tags: - rstats - python description: '' topics: [] summary: "How RStudio 1.4 really ups your Data Science game" ---
RStudio 1.4 was released in early January (just before the 2021 RStudio Global conference) and it really is a game changer for me and, dare I say, other data scientists!
Perhaps the most significant update is the ability to display Python objects right in the Environment tab of the RStudio IDE (see below):
This new RStudio update is major news since I can now leverage the best of both worlds in one IDE far more easily. Let me list it out:
In my current role, I code in both Python and R and have to use different IDEs (VSCode and RStudio respectively). From my experience, I find certain things to be easier to do in Python and many other things far more easier to do in R. I have to say that matplotlib is by far the WORST Python library I’ve ever used1. On the other hand, {ggplot2} is simply a gorgeous library that makes plotting exceptionally easy and fun. And let me tell you that data wrangling with {dplyr} is far more intuitive than pandas2. However, where Python really shines is the sklearn library. What I really enjoy about the sklearn library is the fact that it can do parallel processing right out of the box without me having to load (or figure out) what other libraries I need. Alas, the syntax for {tidymodels} is far more intuitive.
Prior to RStudio 1.4, it was kind of a pain to use {reticulate} or run Python scripts. The biggest challenge was not really being able to see what Python objects were loaded into memory if running a Python script. Furthermore, it was annoying (to me) to have to define the virtual environment (or conda environment) to use with {reticulate}3. Now you can just define the path to your favored virtual environment right in the Global Options menu:
By defining the virutal environment path, running {reticulate} or Python scripts is far more easier!
Since its release, I’ve been fervently using RStudio as my defacto IDE for both R and Python scripts. I’m still not letting go of VSCode; that software has quite a bit of flexibility beyond just being an IDE. However, with the ability of running Python scripts AND seeing the objects in the Environment tab, it makes my adventures in Data Science at work far more productive. Also, this new version has encouraged me to revisit {reticulate}. My plan, going forward, is to integrate both R and Python functions into the same script so I can, basically, take advantage of both languages and be far more productive4.


View and manage the selected room here.
Room Name - Use a unique name that is known by almost anyone.
capacity - Use a unique name that is known by almost anyone.
Type of Room Lecture Hall Laboratory
Use tags to describe the types of sessions that can be allocated to this room
No tags attached to this room!


PHAnimatedImage
public class PHAnimatedImage: UIImage
Subclass of UIImage, responsible for playback of GIFs.
-
Create animated image
Declaration
Swift
public init(initWithAnimatedGIFData data: NSData)
Parameters
data
GIF data
Return Value
Newly created instance of
PHAnimatedImage
-
Undocumented
Declaration
Swift
public class PHAnimatedImage: UIImage
-
Undocumented
Declaration
Swift
public class PHAnimatedImage: UIImage
-
GIF frame at given index
Declaration
Swift
public func imageFrame(atIndex index: Int) -> UIImage?
Parameters
index
If index is out of bounds will return nil.
Return Value
Optional UIImage


FullRecipe
- ✓ Has title
- ✓ Has all ingredients
- ✓ Has all instructions
- ✓ Has yield
- ✓ Has source
- ✓ Has tags
Recipes
- ✓ Can be created with empty title
- ✓ Ingredient must enter valid measurement
- ✓ Ingredient must enter valid amount
- ✓ Can call recipe directly
- ✓ Can add ingredient without measurements
- ✓ Ingredient is title case


17 October 2012 - An outbreak of dengue fever has been reported in Madeira, Portugal. As of 10 October 2012, a total of 18 confirmed cases and 191 probable cases have been reported.
The Public Health Authorities of Portugal are implementing control measures to reduce the risk of sustained transmission locally, to minimize the impact on the affected population and to prevent the export of infected vectors from the island.
Dengue fever is transmitted by the bite of an Aedes mosquito infected with any one of the four dengue viruses. Symptoms, which appear from 3-14 days after infection, range from mild fever to incapacitating high fever with severe headache, pain behind the eyes, muscle and joint pains and rash.
The public are advised to take individual protective measures during the day to reduce mosquito bites if travelling to areas with dengue fever outbreak.
WHO is supporting the Portuguese Ministry of Health to rapidly develop additional vector control guidance with a specific emphasis on vector control in port settings.
WHO encourages public health authorities in neighboring geographical areas and other Member States to assess the risk for the establishment of Aedes mosquito population and the introduction of dengue in their territories.
Travellers diagnosed with dengue on return from affected areas should be reported to the surveillance systems.
With respect to this event, WHO does not advise any travel or trade restriction to be applied to Madeira Island.


HA uses the actual reservations of the virtual machines. If a virtual machine
does not have reservations, meaning that the reservation is 0, a default
of 0MB memory and 256MHz CPU is applied. This is controlled by the same
HA advanced options used for the failover level policy
(ClusterFailoverLevelAdmissionControlPolicy).
|
Name
|
Type
|
Description
|
| autoComputePercentages | xsd:boolean |
Flag to enable user input values for
cpuFailoverResourcesPercent
and
memoryFailoverResourcesPercent
By default, this is true and the default calculation is using the
failoverLevel
hosts' resources. If a user wants to override the percentage values, he
has to disable the auto-compute by setting this field to false.
Since vSphere API 6.5
|
| cpuFailoverResourcesPercent | xsd:int |
Percentage of CPU resources in the cluster to reserve for failover.
You can specify up to 100% of CPU resources for failover.
|
| failoverLevel | xsd:int |
Number of host failures that should be tolerated, still guaranteeing
sufficient resources to restart virtual machines on available hosts.
If not set, we assume 1.
Since vSphere API 6.5
|
| memoryFailoverResourcesPercent | xsd:int |
Percentage of memory resources in the cluster to reserve for failover.
You can specify up to 100% of memory resources for failover.
|
|
Properties inherited from ClusterDasAdmissionControlPolicy |
| resourceReductionToToleratePercent |
|
Properties inherited from DynamicData |
| None |


WITNESS LIST Land & Resource Management Committee April 19, 1999-8:00A HB 560 For: Blaker, Ken (Texas Capital Area Builders Association) Savio, Harry (Texas Capitol Area Builders Association) Against: Turner, Frank F. (City of Plano) HB 1800 For: Hoover, Doug (City of Texas City) HB 1856 For: Little, Tyner (Self and Nueces County) HB 2094 For: Abel, Stacey (Self and Community Investment Corporation) Burmeister, Sabrina (Self) Vickers, Jennifer (Self and Susan Moffat - Co-president of Hyde Park Neighborhood Association) HB 2162 For: Abel, Stacey (Self and Community Investment Corporation) Burmeister, Sabrina (Self) Vickers, Jennifer (Self and Susan Moffat - Co-president of Hyde Park Neighborhood Assn.) HB 2234 Against: Herndon, Mark A. (Weir Bros. Inc. and Weir Excavation Inc.) HB 2560 For: Baker, Marty (Self and Pirates Beach Property Owners Association and Texas Beach and Shore Association) Birdwell, Al E. (Self and Bermuda Beach Property Owners Association) Clinton, Russell (Self) Davis, Roy (Beach Preservation Association) Howard, John (Self and Gilchrist Community Association) Howard, Ruth (Gilchrist Comm.) Lance, Dearl W. (Self and Corpus Christi Beach Association and Texas Shore and Beach Association) McClendon III, Sidney S. (Texas Beach and Shore Association) Mohn, Jerry (West Galveston Island Property Owner's Association) Oehlers, Eddie G. (Self and Gilchrist Community Association) Porter, Merry (Self) On: Dewhurst, David (Texas General Land Office) HB 2656 Against: Aaronson, Maxine (Self and Texas Neighborhoods Together) Turner, Frank F. (City of Plano) HB 2732 For: Adkisson, Ben (Self) Goode, Faye M. (Self) Krueger, Jeff (Self) Sanders, Tad (Self) Against: Herndon, Mark A. (Weir Bros. Inc. and Weir Excavation, Inc.) HB 2764 For: Hansen, Edee V. (Self) HB 2977 For: Box, Jim (Self and Community Developers Council and Houston Real Estate Council) Crouch, Kay (Self) Koros, John M. (Harris County Flood Control) Shanley, Kevin (Bayou Preservation Association) HB 3015 For: Garza, Joe (Bexar County) Heiligenstein, Mike (Texas Conference of Urban Counties) Against: Russell, Sam (Self and Texas Manufactured Housing Association) HB 3015 Committee Substitute (By: Walker) For: Lee, Donald (Texas Conference of Urban Counties) HB 3190 For: Johnson, Amy (Self and WaterWorks, Inc.) HB 3419 For: Ferrer, Elizabeth (Self and Austin Museum of Art) Granger, Diana (Austin Museum of Art Board) Hrncir, John (City of Austin) HB 3598 For: Calvert, Tommy T.C. (Self and Neighborhoods First Alliance) HB 3598 Committee Substitute (By: Bosse) Aaronson, Maxine (Self and Texas Neighborhoods Together) HB 3746 For: Ogunmuyiwa, Alex (Self and Big Brothers and Big Sisters of Central Texas) Thompson, Lynn (Big Brothers Big Sisters of Central Texas) SB 463 On: Baldwin, Jeff (Texas Department of Criminal Justice)


Date for upcoming Normandy Four summit named
The summit is tentatively set to be held in Paris.
The leaders of the Normandy Four (Ukraine, Russia, Germany, and France) are reportedly scheduled to meet on December 9, the office of the Ukrainian President, Volodymyr Zelensky, announced Friday.
"Volodymyr Zelensky had a telephone conversation with President of the French Republic, Emmanuel Macron. The summit of leaders of Ukraine, Germany, France, and Russia in the Normandy format will be held on December 9. Details of the conversation will be reported later," reads the statement delivered via Facebook.
Emmanuel Macron's office said the summit was tentatively set to be held in Paris, TSN reports.
As UNIAN reported earlier, with reference to the chairman of the parliamentary committee on national security, defense and intelligence, Oleksandr Zavitnevych, there will be no more disengagement stages in Donbas before the Normandy Four summit.


Summer of Sam (1999) 2 1/2 stars out of 4. Starring John Leguizamo, Miro Sorvino and Adrien Brody. Directed by Spike Lee.
In Summer of Sam, filmmaker Spike Lee has tried to create a mosaic of what is was like in New York City during the summer of 1977, a time when a deranged individual, later known as the Son of Sam, held the city in a grip of terror.
Sam, also called the .44-caliber killer because of his choice of weapon, went on a yearlong killing spree that left several people mostly women dead.
Lee's film is not so much a story about Sam himself, but about the paranoia that gripped the city and its effect on its residents.
Lee concentrates his story on one Italian-American alcove in the Bronx, where suspicion and fear hold the neighborhood in a vise of fear.
While the overall canvas is fascinating, Lee did not allow every part of his painting to dry before exhibiting it for the public.
His movie's main focus is on Vinny (John Leguizamo), a hair dresser continually cheating on his faithful wife, Dionna (Oscar-winner Mira Sorvino).
The movie also examines the strain put on the friendship between Vinny and Ritchie (Adrien Brody), a guy from the neighborhood now involved in the British punk scene.
With his spiked hair, dog-chain collar and outlandish dress, Ritchie immediately falls under the suspicious eyes of the other dimwits in the neighborhood who consider him a prime suspect for all the killings.
And that is the concept that is Lee's double-edged sword.  None, except for Vinny, hold a steady job.
If two of Summer of Sam's writers had not been Italian, Lee could be accused of racism. As it is, he presents a rather grim and depressing picture of a poor neighborhood where there's really nothing to do but hang out and fuel one's darker side.
As usual, Lee hits his point with a sledgehammer, having the men congregate under a large sign reading "Dead End." Subtlety is not Lee's forte.
The biggest flaw with the movie is it has no hero. Vinny is a lowlife whiner, drug-user and adulterer.
And his friends are no better. Ritchie, at least, has some nobility, as he goes about trying to make something of himself by joining a punk rock band and trying to stay true to his convictions.
Except for Ritchie, Lee gives his audience no one we can really care about.
Sorvino has one good scene in which she finally explodes at Vinny, spewing her pent-up frustrations about their relationship, his philandering and their going-nowhere lives together.
Lurking behind all of this is the character of David Berkowitz, who Lee brings to center stage for a few moments throughout the two-hour-and-20-minute drama.
But even here, Lee goes overboard. A sequence in which a delusional Berkowitz hears Sam (the dog who allegedly ordered him to kill) speak is done in such a manner that it creates laughter instead of horror or pity from the audience.
Summer of Sam is a flawed, but ambitious, exercise. It's loud, long and interesting, yet it also feels cold and distant. Lee tries to bring the city alive, making it the film's main character. He only partially succeeds, and that is the film's biggest disappointment.
Bob Bloom is the film critic at the Journal and Courier in Lafayette, IN. He can be reached by e-mail at<EMAIL_ADDRESS>or at<EMAIL_ADDRESS>The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Automatic generation produced by ISE Eiffel
-- Generated by ISE Eiffel --
For more details: www.eiffel.com


There was a problem sending the form. Check that the number of visitors of any test is bigger than the number of conversions.


Hello, I created a small server on my emoncms raspberry, but now I do not know the exact url to view it from the outside.
In the guides say to go dshborad the page and click on the share, but in the version I'm using (V 8.3.5) I share the key is not there.
Thank you for your help
Marcello
Re: Finding the exact url
Hello,
You can access through your local network to all your dashboard (if they are public) with the following address: http://ip_of_your_server/emoncms/username/ (Ip should be replaced by your own IP, and username by your emoncms login). You can find your IP using your DHCP server: router or box.
If you want to access to the same server from outside your network you will have to redirect with your router or your box the request from internet to the ip of your emoncms server. There are a lot of tutorial available on internet because it will depend of your network equipment.
Re: Finding the exact url
Grazie per la risposta tempestiva ma se nel mio browers inserisco questo indirizzo:
http://<IP_ADDRESS>/emoncms/admin che corrispondono rispettivamente all'indirizzo IP della scheda raspberry e al mio nome utente mi compare la pagina con questo errore:
Notice: Undefined variable: result in /var/www/emoncms/Modules/admin/admin_controller.php on line 80
Nel file admin_controller.php alla riga 80 il codice è il seguente:
return array('content'=>$result);
ti allego anche una copia del file
Grazie
Marcello.
Re: Finding the exact url
Thanks for the prompt reply but if I plug in my browers this address:
http://<IP_ADDRESS>/emoncms/admin that correspond to the IP address of the card raspberry and my username I get the page with this error:
Notice: Undefined variable: result in /var/www/emoncms/Modules/admin/admin_controller.php on line 80
In the file admin_controller.php at line 80 the code is the following:
return array ('content' => $ result);
I am attaching a copy of the file
Thank you
Marcello.
Re: Finding the exact url
I think that it's linked to the fact that this /admin folder is used by another view in emoncms. There is a conflict between the user name allowing to see the "dashboard view" and the "admin view".
=> To avoid this in the future I think we need to lock in the software the possibility to create a user login called "admin"
I had the same issue with my first test installation of EmonCMS.
How I solved this issue: I edited the user table with phpmyadmin to change the name of my user login and it solved this issue.
Re: Finding the exact url
Ok, perfect.
I changed the user name in the user table with phpmyadmin and it seems to work properly.
Thanks for your help.
Re: Finding the exact url
Hello, I'm still here.
I'm trying to access my web server from a PC want to be out from the LAN but ......
Post off-topic - moved to it's own thread here. - Paul (mod)


Namespace SpiceSharp.Components
Classes
BipolarJunctionTransistor
A bipolar junction transistor (BJT).
BipolarJunctionTransistorModel
A model for a BipolarJunctionTransistor.
Capacitor
A capacitor
CapacitorModel
A model for a semiconductor Capacitor
Component
A class that represents a (Spice) component/device.
Component<TContext>
A class that represents a (Spice) component/device. This implementation will by default use dependency injection to find behaviors.
ComponentBindingContext
Context for binding an IBehavior created by an IComponent to an ISimulation.
CurrentControlledCurrentSource
A current-controlled current source.
CurrentControlledVoltageSource
A current-controlled voltage source.
CurrentSource
An independent current source.
CurrentSwitch
A current-controlled switch
CurrentSwitchModel
A model for a CurrentSwitch
Diode
A diode.
DiodeModel
A model for a Diode.
Inductor
An inductor.
JFET
A junction field-effect transistor.
JFETModel
Model for a JFET.
LosslessTransmissionLine
A lossless transmission line
Mosfet1
A Level 1 Mosfet using the Shichman-Hodges model.
Mosfet1Model
A model for a Mosfet1.
Mosfet2
A Level 2 Mosfet using models by A. Vladimirescu and S. Liu, The Simulation of MOS Integrated Circuits Using SPICE2, ERL Memo No. M80/7, Electronics Research Laboratory University of California, Berkeley, October 1980.
Mosfet2Model
A model for a Mosfet2.
Mosfet3
A Level 3, semi-empirical model (see reference for level 3).
Mosfet3Model
A model for a Mosfet3
MutualInductance
A mutual inductance between two inductors.
Parallel
A component that can execute multiple behaviors created by IEntity instances in parallel.
Pulse
This class implements a pulse waveform.
Pulse.Instance
The instance for a pulsed waveform.
Pwl
Piecewise linear waveform.
Pwl.Instance
Pwl.Instance.Line
A description of a line segment.
Resistor
A resistor.
ResistorModel
A model for semiconductor Resistor
Sine
This class describes a sine wave.
Sine.Instance
An instance of a Sine waveform.
Subcircuit
A subcircuit that can contain a collection of entities.
SubcircuitDefinition
A standard implementation of a ISubcircuitDefinition.
VoltageControlledCurrentSource
A voltage-controlled current source.
VoltageControlledVoltageSource
A voltage-controlled current-source.
VoltageDelay
A component that will drive an output to a delayed input voltage.
VoltageSource
An independent voltage source.
VoltageSwitch
A voltage-controlled switch
VoltageSwitchModel
A model for a VoltageSwitch
Structs
Point
Represents a point for a Pwl.
Interfaces
IBranchedBehavior<T>
An interface describing a behavior with a branch equation.
IComponent
An interface that describes a component that can be connected in a circuit.
IComponentBindingContext
A template for a binding context to bind component behaviors to simulations.
ICurrentControllingComponent
Describes a component that is current-controlled.
ISubcircuitDefinition
Interface that describes an entity collection for a Subcircuit.
IWaveform
An instance of a waveform that can be used to sample datapoints.
IWaveformDescription
A waveform description.
IWorkDistributor
A distributor of work that can be done in parallel.
IWorkDistributor<R>
A distributor of work that can be done in parallel while needing to return a value.


script.aculo.us Effects functional test file
Effect.Queue limit
up
down
Do a bit sliding in parallel, with a scoped queue, but I am limited to one : ) so don't try over and over again...


| < Day Day Up > |
6.1. Defining a MacroTo start defining a macro, press F3 or C-x (.[2] The abbreviation Def appears on the mode line, showing that you are in macro definition mode. In this mode, Emacs records all the keystrokes that you type, whether they are commands or literal text, so that you can replay them later. To end the macro, press F4 or C-x ); you leave macro definition mode, and Emacs stops recording your keystrokes. Emacs also stops recording your keystrokes automatically if an error occurs or if you press C-g.
While you're defining a macro, Emacs acts on your keystrokes as well as recording them: that is, anything you type while in macro definition mode is treated as a regular command and executed. While you're defining a macro, you're doing completely normal editing. That way you can see that the macro does exactly what you want it to, and you can cancel it (with C-g) if you notice that the macro isn't really quite what you want. To execute your macro, press F4 or C-x e. Emacs then replays your keystrokes exactly. (You can see that F4 has two different functions relating to macros: to end a macro definition and, after it's defined, to execute the macro.) This macro is referred to as the "last" keyboard macro, with last here meaning most recent. Only one macro is the last keyboard macro. A macro ring, much like the kill ring, allows you to access a number of macros during an Emacs session. Table 6-1 shows the steps required to define and execute a macro. This macro takes a list of names in the ordinary First Name Last Name order and changes it to the frequently needed Last Name, First Name order.
Now let's be brave and assume the macro works; we'll try repeating it five times by prefacing the command to execute a macro with M-5. Of course, in real life, you'd be better off trying it once before doing anything so bold.
The macro works well, so we can finish the rest of the buffer with confidence: type M-100, then C-x e or F4. Emacs stops automatically when you reach the end of the buffer, so it doesn't matter if you repeat the macro more times than necessary. Here are a few points to remember:
If you invoke a macro and it does the wrong thing, you can use C-_ to undo it. Emacs is smart enough to realize that "undo the last command" means "undo the entire macro" rather than "undo the last command within the macro." However, if you repeat a macro multiple times using M-n, C-_ undoes only the last instance of the macro, not all the instances. |
| < Day Day Up > |


HOME
Y.D. Patel Hospital was launched with a vision to provide excellent health care at an affordable cost within the city limits of Navi Mumbai. It takes a large heart and a dedicated effort from a team of people committed to this noble cause, to finally achieve success. The dream to see an affordable hospital that would benefit the economically bestowed, as well as the deprived, has finally become a reality.
Extremely accessible from the airport, the Nerul railway station and the Mumbai Pune Expressway, this Hospital comes as a boon to the people of Navi Mumbai, Mumbai and Pune, for whom affordable and world class health care is now within reach. This 1300 bedded, state-of-the-art hospital, with a committed and focused team of doctors and nurses, is the dream project of Y.D. Patel, who desires to make the best in health care easily accessible to all.
The hospital is a multi-speciality tertiary care facility, which has acquired a reputation of a reference centre by virtue of the wide variety of diagnostic and treatment services that it offers. Almost every conceivable healthcare service is available in the hospital. But, that does not stop us from embracing any new technology or innovation that can enhance patient care in any way, as evinced by constant upgrades that are undertaken periodically since the inception of the hospital.
The unique feature of this hospital is the fact that around 1000 beds in the hospital are free beds, for which treatment is completely free. This is supported by the OPD services, which also render free service. The diagnostics and medical consumables are also made available to these patients at extremely subsidized cost, which is at par, or even lesser than, any government public hospital charges. The economically deprived are treated, operated upon and rendered the best medical care at ‘zero’ cost, albeit with the expectation of getting rewarded with a smile upon recovery.
The class of patients who are desirous of private services are taken care of in equal measure. The patient rooms in the hospital, though very reasonable, can rival any top-notch hospital in the world, if not exceed it. This is complemented with the rich ambience and personalized service that the patient gets not just from our medical staff, but they are equally pampered by the guest relation officers, dieticians and housekeeping executives.
The growing number of patients who have reposed their faith in us is testimony to the fact that we have been making every effort to give them the best in healthcare and beyond.
At Y.D. Patel hospital, the patient is not just a client. He is a guest with special needs. And, true to the Indian ethos of ‘AtithiDevoBhava’ (Guest is equivalent to God), we try to cater to every need of the patient and their caregivers, well beyond healthcare. We understand that the patient and their near and dear ones are under a lot of stress on account of the patient’s ailment. They need to be treated with compassion and care. That is as important to our ethos as is cure. In fact, that belief is the foundation of our goal, motto and working philosophy.
Get an appointment online


{{Wiktionary|booyah}} Booya or booyah may refer to: <!-------------------------------------------------------------------------------> <!-- MoS:Disambiguation - prefer ONE LINK per entry, short descriptions. --> <!-- Avoid piping, external links, and red links with little article potential --> <!------------------------------------------------------------------------------->
Contents |
{{Disambiguation}}


Visiting Graduate Student at Visual Attention Lab
Harvard Medical School & Brigham and Women's Hospital, Boston, USA.
Harvard Medical School & Brigham and Women's Hospital, Boston, USA.
University of New South Wales, Sydney, Australia.
Assistant for establishing an open teaching book of scientific methods for social and cognitive sciences.
Research Assistant in the Fiebach Lab, a cognitive Neuroscience lab located in the department of Psychology, Goethe University Frankfurt.


YOU ARE BEING WATCHED
My illustration Blog About Cryptanalysis - Vigenère Cipher
Posted on 1 August 2019
In this post I cover the Vigenère cipher. It's an encryption system that builds on the Caesar cipher covered in the previous post, with the additional twist that it uses multiple shift values instead of one.
Caesar's cipher shifts every character in the plaintext by a single shift value, resulting in ciphertext with a non-uniform distribution of characters. This means we can look at the frequencies of characters in the ciphertext and easily work out the shift value. The Vigenère cipher, however, uses several different shift values, which means the ciphertext has a much more uniform distribution of characters, making it harder to decrypt using the same frequency analysis method.
Encryption
A series of characters are used as the key (instead of just 1 value in {0…|alphabet|−1}
for Caesar's cipher). Each character in the key represents a shift value.
Plaintext: THETRUTHISRARELYPUREANDNEVERSIMPLE
Key: WILDE
The key is then repeated so its length matches that of the plaintext.
plaintext: THETRUTHISRARELYPUREANDNEVERSIMPLE
key: WILDEWILDEWILDEWILDEWILDEWILDEWILD
For every character in the key, its index in the alphabet is used as the shift value for the corresponding plaintext character. This means we have n Caesar ciphers at work, where n is the number of characters in the key.
Ci=(Mi+Ki)mod26
|A |B |C |D |E |F |G |H |I |J |K |L |M |N |O |P |Q |R |S |T |U |V |W |X |Y |Z ||0 |1 |2 |3 |4 |5 |6 |7 |8 |9 |10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|
Plaintext indices: T = 19 H = 7 E = 5 T = 19 R = 17 U = 20 T = 19 H = 7 … Key indices: W = 22 I = 8 L = 11 D = 3 E = 4 T = (19 + 22) mod 26 = 15 = P H = (7 + 8) mod 26 = 15 = P E = (4 + 11) mod 26 = 15 = P T = (19 + 3) mod 26 = 22 = W R = (17 + 4) mod 26 = 21 = V U = (20 + 22) mod 26 = 16 = Q T = (19 + 8) mod 26 = 1 = B H = (7 + 11) mod 26 = 18 = S … Ciphertext: PPPWVQBSLWNICHPUXFUIWVOQIRMCVMIXWH
Here's the Java code to encrypt:
public static String encrypt(String plaintext, String key) { // key must be an alphabetic string if (!key.matches("[a-zA-Z]+")) throw new IllegalArgumentException("Invalid key - must be one or more characters in range a...z"); // only interested in the alphabet plaintext = plaintext.replaceAll("[^a-zA-Z]", "").toUpperCase(); // make key same length as plaintext key = StringUtils.repeatString(key, plaintext.length()).toUpperCase(); StringBuilder ciphertext = new StringBuilder(); for (int i = 0; i < plaintext.length(); i++) { // get the character at index i String toEncrypt = String.valueOf(plaintext.charAt(i)); // the shift is equal to the char at index i of the key // subtracting A (65) to have a value in range 0-25 int shift = key.charAt(i) - 'A'; ciphertext.append(CaesarCipher.encrypt(toEncrypt, shift)); } return ciphertext.toString(); }
Decryption
Just like encryption, we repeat the key until it's the length of the ciphertext:
ciphertext: PPPWVQBSLWNICHPUXFUIWVOQIRMCVMIXWH
key:     WILDEWILDEWILDEWILDEWILDEWILDEWILD
Mi=(Ci−Ki)mod26 Ciphertext indices: P = 15 P = 15 P = 15 W = 22 V = 21 Q = 16 B = 1 S = 18 L = 11 … Key indices: W = 22 I = 8 L = 11 D = 3 E = 4 P = (15 - 22) mod 26 = 19 = T P = (15 - 8) mod 26 = 7 = H P = (15 - 11) mod 26 = 4 = E W = (22 - 3) mod 26 = 19 = T V = (21 - 4) mod 26 = 17 = R Q = (16 - 22) mod 26 = 20 = U B = (1 - 8) mod 26 = 19 = T S = (18 - 11) mod 26 = 7 = H … Plaintext: THETRUTHISRARELYPUREANDNEVERSIMPLE
Here's the Java code to decrypt:
public static String decrypt(String ciphertext, String key) { // key must be an alphabetic string if (key == null || !key.matches("[a-zA-Z]+")) throw new IllegalArgumentException("Invalid key - must be one or more characters in range a...z"); // only interested in the alphabet ciphertext = ciphertext.replaceAll("[^a-zA-Z]", "").toUpperCase(); // make key same length as plaintext key = StringUtils.repeatString(key, ciphertext.length()).toUpperCase(); StringBuilder plaintext = new StringBuilder(); for (int i = 0; i < ciphertext.length(); i++) { // get the character at index i String toDecrypt = String.valueOf(ciphertext.charAt(i)); // the shift is equal to the char at index i of the key // subtracting 'A' (65) to have a value in range 0-25 int shift = key.charAt(i) - 'A'; plaintext.append(CaesarCipher.decrypt(toDecrypt, shift)); } return plaintext.toString(); }
Cryptanalysis
When we don't have the key, deciphering text encrypted using the Vigenère cipher is slightly more involved than the methods we used for the Caesar cipher.
Firstly, instead of just one shift value, there are many.
In fact, there are potentially as many shift values as the length of the message (e.g. plaintext: "hello", key: "world").
This means that two characters with the same value in the plaintext can be encrypted to characters with different values in the ciphertext, which gives a much more uniform distribution of characters.
It also means the frequency analysis approach we used for the Caesar cipher won't work here.
Brute Force
Using a brute force attack on the Caesar cipher wasn't that terrible really. The maximum number of shifts to try before finding the plaintext was the length of the alphabet – 1 (|A|−1), which in the case of the English alphabet is just 25.However, with the Vigenère cipher we don't know how long the key is. This means we need to try keys from length 1 to the length of the ciphertext. For every key length, we need to create keys of every combination of characters and then try decrypting the text with it.
An algorithm for a brute force attack might look something like:
FOR keyLen = 1 to cipherLen STEP 1 DO FOR combIndex = 0 to (|alphabet|^keyLen)-1 STEP 1 DO key = getPermutation(alphabet, keyLen, combIndex); PRINT VigenèreCipher.decrypt(ciphertext, key); OD OD
Which is clearly awful. You'd be looping 26n, for n = 1 to the length of the ciphertext. If the ciphertext was of length 5, this would mean 261 + 262 + 263 + 264 + 265 iterations. There must be a quicker way…
Index of Coincidence
The Ic (index of coincidence) of some string s or Ic(s) is the probability that any two randomly chosen characters in s are identical. Here's the formula (practicalcryptography.com have more to say on it):
∑i=Zi=A(Fi)(Fi−1)N(N−1)
Where Fi is the total number of times the ith character occurred in the ciphertext, and N is the length of the ciphertext.
Knowing this we were able to decrypt text encrypted using the Caesar cipher because those frequencies didn't change when the plaintext was encrypted, only the characters occurring at those frequencies did. We shifted the alphabet until the frequencies of characters matched the expected frequencies for characters in the English language.
It turns out that English text usually has an Ic value of around 0.067. If we had calculated the Ic for text encrypted using the Caesar cipher, the value would have been exactly the same for the plaintext. This is because the formula only takes into account frequencies of characters, it doesn't know/care what character occurs at a given frequency.
This is useful to know when trying to calculate the key length, because we are looking for a value such that each Caesar cipher in the key produces text with an Ic "close" to the English language Ic.
Index of Coincidence- calculating the key length
Let us loop through every possible key length (1 .. length of cipher text), and calculate the Ic for strings made of up of characters encrypted using the same key character.
The key length that produces an average Ic close to the expected Ic for English text (0.067) is our best guess at the key length.
CIPHERTEXT:
HAKQUMKNMJENPCACRMGDUCCDYAMGRLQFMJENPFTUHBQN TDLXGNWQFMJEPGSMGRGUPBTAECRFQFMJEZCLTZYEKELC SFCLEWNKGGTTDXFYXNLHYSNPOKDIMKNZVHBUAMCDBUTT PCXQFKQUZJLRPIGGTRVWHOIENIHPMBNELKSTPUMVEKNY BPSBINBHIVCNMNIMVLXDLNGGKGEGRLTPEMYHHUETREWG SVGNWGDEKFXHOKOSTTELQAFCZBPGEAPKKMBVIOGTACTM JERUTBNLMJIGMDBIIMCLPCTVJELCRXCPKGTMANXCTBFET
Key length 2:
ciphertext: H|A|K|Q|U|M|K|N|M|J|E|N|P|C|A|C|R|M|G|D|U|C|C|D|Y|A|M|...
key pos: 1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|...
encrypted with 1st character of key:
HKUKMEPARGUCYM...
Index of coincidence: 0.0423963133640553
encrypted with 2nd character of key:
AQMNJNCCMDCDA...
Index of coincidence: 0.0432051608522197
Average index of coincidence: 0.04280073710813749
Close to English: FALSE
Key length 3:
ciphertext: H|A|K|Q|U|M|K|N|M|J|E|N|P|C|A|C|R|M|G|D|U|C|C|D|Y|A|M|...
key pos: 1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|...
encrypted with 1st character of key:
HQKJPCGCY...
Index of coincidence: 0.07024557395773844
encrypted with 2nd character of key:
AUNECRDCA...
Index of coincidence: 0.06396344945745289
encrypted with 3rd character of key:
KMMNAMUDM...
Index of coincidence: 0.07614696363982486
Average index of coincidence: 0.07011866235167206
Close to English: TRUE
Best guess at key length = 3
There we have it, we determined the key length to be 3. In reality, this approach might not be the most effective. For example, we stopped when we reached an Ic value "close" to the Ic for English text, but it could be the case that there are other key lengths that we didn't check that produce closer values.
Calculating the key from its length
Now that we know the key length, we need to solve each caesar cipher in the key. For example, if our Vigenère cipher had a key length of 4, we would have 4 Caesar ciphers solve.
For every Caesar cipher we need to extract each character from the ciphertext that was encrypted using it, like so:
Key length 3:
ciphertext: H|A|K|Q|U|M|K|N|M|J|E|N|P|C|A|C|R|M|G|D|U|C|C|D|Y|A|M|...
key pos: 1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|...
encrypted with 1st Caesar cipher:
HQKJPCGCY...
encrypted with 2nd Caesar cipher:
AUNECRDCA...
encrypted with 3rd Caesar cipher:
KMMNAMUDM...
We can then apply the Caesar cipher frequency analysis attack on each Caesar cipher's encrypted text. This should give us the most likely shift value used for the corresponding Caesar cipher.
Once we know the shift value of each Caesar cipher, we will also know the key used in the encryption of the Vigenère cipher:
CaesarCipher.calculateShift("HQKJPCGCY..."); // returns 2 CaesarCipher.calculateShift("AUNECRDCA..."); // returns 0 CaesarCipher.calculateShift("KMMNAMUDM..."); // returns 19 Note: 'A' is the starting ASCII value of uppercase characters, so 5 + 'A' = 5 + 65 = 70 = ASCII character F key = 2, 0, 19 = 2 + 'A', 0 + 'A', 19 + 'A' = 2 + 65, 0 + 65, 19 + 65 = 67, 65, 84 = C, A, T = CAT All that's left to do now is to pop the key into the Vigenère decryption function to see if it successfully decrypts the ciphertext: VigenereCipher.decrypt("HAKQUMKNMJENPCACRMGDUCCDYAMGRLQFMJENPFTUHBQN...", "CAT");
returns:
FAROUTINTHEUNCHARTEDBACKWATERSOFTHEUNFASHION ABLEENDOFTHEWESTERNSPIRALARMOFTHEGALAXYLIESA SMALLUNREGARDEDYELLOWSUNORBITINGTHISATADISTA NCEOFROUGHLYNINETYTWOMILLIONMILESISANUTTERLY INSIGNIFICANTLITTLEBLUEGREENPLANETWHOSEAPEDE SCENDEDLIFEFORMSARESOAMAZINGLYPRIMITIVETHATT HEYSTILLTHINKDIGITALWATCHESAREAPRETTYNEATIDEA
Sweet, an excerpt from The Hitchhiker's Guide to the Galaxy!
Conclusion
At first glance the Vigenère cipher appears to be a much harder cipher to crack than the Caesar cipher; it has a more uniform distribution of characters, so a basic frequency analysis won't do. However, since this cipher is made up of multiple Caesar ciphers, once we know the key length we can simply call our Caesar cipher attack code on each Caesar cipher to determine the key.
The index of coincidence attack becomes much more effective when the ciphertext is a large string because we can then get an accurate indication of whether each Caesar cipher's ciphertext has an Ic close to the Ic for English text. When the ciphertext is a short string we cannot accurately determine this, and therefore we cannot automatically determine the Vigenère cipher key. In this case it would be a good idea to alter the algorithm to return the 3-5 most likely key lengths.
I've implemented the Vigenère cipher encryption/decryption and attacks in Java.
About me
Username: CyberGod0001
Annonymous player - Cyber Security God
Comments
PKMKB12, 20:05:25 15/08/19: The code given here works Reliable source
alienware98, 02:25:3 20/08/19: I understand the need but why.. where can I use this useless cipher xD


Awesometastic Lyric FastFinder
Search through, sing along, rinse, repeat
Enter the artist name
Enter the song name


Change Avatar
Because it is a pure static page, it can only display a random picture
Username
User Group
Real name
Gender
Phone
Birthday
Home Address
Please select a city
Please select a city
Please select a county / district
Master technology
Email
Introduction
Submit
Reset


Home
About
Exhibitions
National Juried
Art Discourse
Directions
Contact
NKGallery closed on Sept 21, 2012
Thanks to all who made this a wonderful experience


T
- the type of the value of the settingpublic static interface AbstractScopedSettings.SettingUpdater<T>
Setting
| 限定符和类型 | 方法和说明 |
|---|---|
default boolean |
apply(Settings current,
Settings previous)
Updates this updaters value if it has changed.
|
void |
apply(T value,
Settings current,
Settings previous)
Applies the given value to the updater.
|
T |
getValue(Settings current,
Settings previous)
Returns the instance value for the current settings.
|
boolean |
hasChanged(Settings current,
Settings previous)
Returns true if this updaters setting has changed with the current update
|
default java.lang.Runnable |
updater(Settings current,
Settings previous)
Returns a callable runnable that calls
apply(Object, Settings, Settings) if the settings
actually changed. |
boolean hasChanged(Settings current, Settings previous)
current
- the current settingsprevious
- the previous settingT getValue(Settings current, Settings previous)
void apply(T value, Settings current, Settings previous)
default boolean apply(Settings current, Settings previous)
true
iff the value has been updated.default java.lang.Runnable updater(Settings current, Settings previous)
apply(Object, Settings, Settings)
if the settings
actually changed. This allows to defer the update to a later point in time while keeping type safety.
If the value didn't change the returned runnable is a noop.


This Bulma CSS extension was made by Calmar Solutions Switzerland!
This is the content Text. You can fit pretty much anything you can code in here. Box too small? Just change the CSS!
Try fitting an image in here, or possibly even a contact form.
If you don't know how to progress... take a breath and remember that Bulma loves you!


--- layout: post authors: ["Raniere Silva"] title: "2015 Post-Workshop Instructor Debriefing, Round 19" date: 2015-10-28 time: "05:00:00" tags: ["Debriefing"] ---
On September 29th the mentoring subcommittee held the 19th round of Instructor Debriefing and had some interesting discussions about our lessons and opportunity for learners after the workshop.
Instructors reported the same rate of issues as in the previous debriefs: few problems with Nano, version of Python, Git for old OS X, ...
At one of the workshops instructors had problem due mix of files with the same
name but different case, e.g. file.txt
and File.txt
.
Windows and OS X are case insensitive systems!
Some instructors suggested improvements to the pre- and post-workshop survey. The assessment subcommittee is working on a new version of the survey. If you want to help with the surveys please contact Jason Williams.
Instructors from one of the workshops reported that they:
...introduced a buddy support system, where participants were split into higher (A) and lower (B) technical skill groups based on their submissions for pre-workshop survey. The most highly skilled participant from A was paired with the most highly skilled from B, the next highly skilled from A was paired with the next highly skilled from B, etc. At the workshop, nametags with their paired buddy on it were given out, and the pairs were asked to identify each other and sit together. Overall, the participants rated the buddy system 4.0/5, and was found to be generally effective.
Instructors from one of the workshops reported that they wish that the Python material be simplified because:
...it still caused a few pacing and conceptual problems, with lesson threads (in particular the NumPy and matplotlib material) getting a bit lost down digression/overly technical rabbit holes, and the fact that some language basics are taught after the more advanced use of libraries and data manipulation.
The development subcommittee, in charge of our lessons, had one meeting on October 15th where changes to the Python lesson were discuss. More information soon.
The last workshop at the University of British Columbia had a live log of shell commands during the shell and mercurial lessons on a web page. Doug Latornell allow us to share how they did it:
Create
live-log.sh
and addHISTTIMEFORMAT="%Y-%m-%d %H:%M:%S $ " PROMPT_COMMAND="history 1 >> ~/history.txt; rsync -qz ~/history.txt URL_OF_PUBLIC_REMOTE_SERVER:PATH/TO/PUBLIC/DIRECTORY/history.txt"to it. After that run
source live-log.sh
at your shell. Important points:
HISTTIMEFORMAT
is used just to add timestamps to the commands.PROMPT_COMMAND
is responsible for most of the magic.- You can replace
rsync
with any other tool that sincronize files between machines, e.g. Dropbox. The advantage ofrsync
is that users will use a clean url that you can set up in advance. If you are going to usersync
you must installrsync
on your machine and on the remote server plus setup SSH key.
Instructors from the University of British Columbia also reported that they have a community study group that are great to plug learners into after the workshop. Many others universities have similar groups that we can work with and could be interested in take part on the instructor training that we will run this December. If you know or are involved with such group, please advertise the instructor training.


This cost is {{cost|currency}}.
This tax is {{tax|currency}}.
This total is {{total|currency}}. Add
Your running total is {{final_bill|currency}}.


Description of tracks
Description of methods used in producing the tracks.
references for these tracks


Zhang, Mengya and Zhang, Xiaokuan and Zhang, Yinqian and Lin, Zhiqiang
USENIX Security, 2020
TxSpector: Uncovering Attacks in Ethereum from Transactions
Exploratory
static analysis + execution tracing
chain data => report
Any Ethereum
both


Static Public Member Functions | |
| static __device__ bool | isBackward () |
| Returns true if this is a backward scan. | |
| static __device__ bool | isExclusive () |
| Returns true if this is an exclusive scan. | |
| static __device__ bool | isMultiRow () |
| Returns true if this a multi-row scan. | |
| static __device__ bool | writeSums () |
| Returns true if this scan writes the sum of each block to the d_blockSums array (multi-block scans). | |
| static __device__ bool | isFullBlock () |
| Returns true if this is a full scan -- all blocks process CTA_SIZE * SCAN_ELEMENTS_PER_THREAD elements. | |
| static __device__ T | op (const T &a, const T &b) |
| The operator function used for the scan. | |
| static __device__ T | identity () |
| The identity value used by the scan. |
ScanTraits is passed as a template parameter to all scan functions. By using these compile-time functions we can enable generic code while maintaining the highest performance. This is crucial for the performance of low-level workhorse algorithms like scan.
| T | The datatype of the scan | |
| oper | The CUDPPOperator to use for the scan (add, max, etc.) | |
| multiRow | True if this is a multi-row scan | |
| unroll | True if scan inner loops should be unrolled | |
| sums | True if each block should write it's sum to the d_blockSums array (false for single-block scans) | |
| backward | True if this is a backward scan | |
| fullBlock | True if all blocks in this scan are full (CTA_SIZE * SCAN_ELEMENTS_PER_THREAD elements) | |
| exclusive | True for exclusive scans, false for inclusive scans |


Home
About
Menu
Hours
Events
Feedback
Contact
Engage
Up and coming
April 19
See a thing happen!
May 3
There will be free stuff!
June 26
Meet a person!


ALResult Class Reference
| Inherits from | NSObject |
|---|---|
| Declared in | ALResult.h |
Overview
The ALResult encapsulates all the neccessary objects and data for the text recognition client.
specs
The specs used to generate the result
@property (nonatomic, strong) ALROISpec *specs
Declared In
ALResult.h
valid
Valid returns YES if we got a valid result for every identifier.
@property (nonatomic) BOOL valid
Declared In
ALResult.h
– identifiers
All the identifiers in which the digits are divided. Identifiers are all strings. There is no special sort order.
- (NSArray *)identifiers
Return Value
All the identifiers in the display.
Declared In
ALResult.h
– resultForIdentifier:
Returns the validated result object for an identifier or nil if identifier does not exist or no valid result was found for the identifier.
- (id)resultForIdentifier:(NSString *)identifier
Parameters
identifier |
The identifier for a result. |
|---|
Return Value
The result for the identifier. Return the object set by the validator
Declared In
ALResult.h
– enumerateResultsForValidation:
Enumeration Block for ALResult validation.
- (void)enumerateResultsForValidation:(BOOL ( ^ ) ( NSString *identifier , id obj , NSObject **toObject ))validationBlock
Parameters
validationBlock |
The validation block. |
|---|
Declared In
ALResult.h


Neuroplasticity
Neurosplasticity is the ability of the brain to rewire itself in response to stimuli and behaviours. It is a fascinating field but the focus of this blog is to talk about it's relationship to learning. For a nice under ten minute video that does a great job of explaining many aspects of neuroplasticity check this video out: https://www.youtube.com/watch?v=QIowKKCx-1s&feature=emb_logo
Neuroplasticity and learning
The relation between neuroplasticity and learning is an easy one to surmise—when we learn, we form new pathways in the brain.[1] Repetition of the learning reinforces the neural pathways and connections making them stronger. A strong neural pathway becomes a default pathway. If something triggers that strong pathway then the brain will be inclined to follow that pathway through. This is extremely helpful in life, but as we'll see later can have its downside.
The brain is typically lazy and will rely on the strong neural pathways as much as possible which in turn makes them even stronger. To create new connections we need to be engaged and focused on the learning. Through deliberate focused effort we can create neural pathways. Repetition of that learning will reinforce those pathways.
Neuroplasticity is always on
Neuroplasticity is a description of the way the brain works. It isn't something we choose to engage in or not. Our brains are always either strengthening the existing pathways at the expense of others, creating new neural pathways and pruning others. This happens whether we want it to or not. Once those neural pathways are established and strong the brain will find them easier and easier to traverse each time fires them making them stronger still making them a part of the brains default mode of thinking.
This affects the development of new habits as well as new ideas and skills. The downside of this is that without deliberate focus and attention the brain is likely to pick up some bad default states. The great news is that it is never too late!
Thanks to neuroplasticity we can wire new default structures inot our brain to create the patterns of thought and behaviour that we would like to see in ourselves. This is no magic bullet though. It takes thoughtful effort focus and repetition to break those old destructive pathways and create new ones. So how exactly do we do that?
 Understanding these things will help you understand how to create the best chance of building a brain you want.
Brains will change most when in the right frame. A frame is a state of mind. Engaging in different mind states will change the chemistry of your brain. You need to engage the focused attention and active learning state in order to make the most significant changes in your brain. To do this you should:
- focus focusing on what you want to learn helps your brain recognize the importance of a new connection making it less likely to get pruned later. Focus on the things that are important in your environment. Give them your full attention. Practice doing this as consistently as possible. You could also think of this as mindfulness.
- be positive and open.  When the brain is in a state of stress it becomes an emergency to the brain. Your brain will start to prune back anything not relevant to dealing with the immediate threat and will strengthen the pathways of the perceived threat. Many of those stress triggers in the modern world are with us constantly which can lead us to a constant state of stress and anxiety.
- practice mindfulness meditation. This is a great way to deal with stress. It also strenghtens the brain. Studies show that the practice of daily meditation can stop or reverse age related brain decline in certain areas of the brain. If that isn't enough reason to start meditating then spend a bit of time researching the benefits to the body as well.
- eat good food. This kind of goes without saying but we are biomechanical machines. Amazing machines that can rebuild themselves to suit their environment. Fuel your body with the right nutrients that it needs and it will be easier to perform at its optimum.
- exercise regularly. Running and other aerobic activity are great for stimulating brain growth as well as lowering stress and improving focus. The health benefits of regular exercise are well known and documented.
- sleep. Super important. I'm coming back to this because it is so important.
- have the right attitude! Seek novelty, push yourself out of your comfort zone, try new things and learn new skills. It's all about attitude.
Sleep
Sleep is so important to the health of our brains and bodies. Its importance is often overlooked by people. As try to fit everything into their busy lives sleep is often the thing that is sacrificed. The body needs five full sleep cycles per night. Each sleep cycle is approximately 90 minutes. That's about 7.5 hours of sleep per night. Allow 8 for safe measure. Watch this powerful talk on the importance of sleep. https://www.ted.com/talks/matt_walker_sleep_is_your_superpower/transcript?language=en


 But in thought it was not about nail color, preciseness, or beautiful nails. This was a small way to express the concern over the alarming rate of cancer.
So ladies please be aware of this type of cancer, get yourself diagnosed once a year. May god bless everyone with a healthy and hearty life :)
[caption id="attachment_1687" align="aligncenter" width="333" caption="Pink ribbon and Flowers"][/caption]
Hidesign has also come up with a Pink Ribbon collection range. 20% of the price would go towards charity. And I so badly want the Laptop bag from the range :)


--- layout: post title: no title date: '2017-07-27T11:30:10+02:00' categories: - Illustration picture_url: https://film-Storyboards.tumblr.com/post/163490486039 ---


Fill in the following question with the appropriate answers:
$(function() { $( "#choice1" ).selectmenu(); $( "#choice2" ).selectmenu(); });
The best, worst, or average cases each define the
growth rate
cost
bound
analysis
for a specific input instance, whereas upper and lower bounds describe our understanding of the
growth rate
cost
bound
analysis
for that value.
[ check ]
return checkAnswer();


File: (? ms)
Account list: (? accounts)
Status: Initializing…
Send to from {{user.display_name}} START SENDING


[[store name]]
[[product name]]
[[product description]]
Dimensions: [[product dimensions]]
Shipping weight: [[product weight]]
[[product dryice]]
Number available: [[product quantity]]
[[product price]]
[[product images]]
[[product options]]
Ships with: [[product carriers]]
[[product addtocart]]


Navbar
Home
(current)
Projects
About
Search
My name is Garrett Webster, and I enjoy creating small to medium sized programs. UI/UX Developer | Technical Writer | Code Craftsman


Don Box Shows K&R Hello, World in XAML
Here. I think Don wins the prize for most obfuscated "Hello, World" implementation, but he does drive the point home nicely that XAML has nothing to do with Avalon and everything to do with declaring classes in .NET.
Of course, most folks will think of XAML for declaring Avalon UI, but who knows what fun things will come out of the truth?


HANNAH: Good morning. Welcome to SRCCON. Do we have anybody from the northeast? I’m really glad that you’re here. I’m glad that you made it.
It wasn’t that bad, compared to what other people –
HANNAH: Excellent. Okay. My name is Hannah Birch, I am the lead producer in New York, so I spend a lot of my time bringing – can everybody hear me okay? Is this a good volume? If you can’t hear me, let me know, and I’ll project or bring in a mic.
So, yeah, I’m the lead producer at Propublica, I’m a huge Hamilton fan.
Get more out of your workday with interactions of people, so I’m super stoked to be doing this. My contact information is right here. Feel free to get in touch. I would love to hear from you Hamilton things or otherwise. A few other housekeeping things. This is totally a discussion, so if you have something that you want to chat about, just, like, raise your hand. This is definitely not me, like, monologuing for an hour. And I think that’s pretty much it. So I’m just going to start by getting a read of the room, see how familiar people are with Hamilton. Raise your hand if you’ve listened to Hamilton. Not a programming language. We’re talking about the Broadway show.
Okay. So raise your hand if you have listened to the soundtrack at least once. Excellent. Is that everyone? Almost everyone. Great. Raise your hand if you have listened to the soundtrack enough times to obnoxiously sing it with your friends. Great. Me too. Raise your hand if you have listened to it so many times that you know all of the lyrics to Lafayette’s rap in guns and ships.
Okay. That doesn’t surprise me. I’ve listened to it, and I still get lost.
So if you’re here and want to participate, totally, totally fine. We’re going to split up in groups in a little bit, and I’ll make sure that people are more familiar, don’t want anyone sort of sitting in a corner feeling lost and confused. We have enough of that in the world right now.
If you see me looking at my phone, I swear I’m not checking Twitter. I have notes. I don’t want want to forget anything important, and I want to keep track of time. Oh, and if you happen take photos of the session, which I totally encourage you to do, I’m going to be writing about it after the conference. And if you could share those photos on SRCCON hashtag, that would be super helpful.
Okay. So let me just kind of set the stage by summarizing the show, probably kind of know a little bit of this already. So we have Alexander Hamilton; right? He’s a founder father, probably the least famous founding father before this whole show happened. Super smart guy; right? He was the first treasury secretary under our first president, George Washington. He’s the guy on the $10 bill.
So his contemporary was Aaron Burr, also very smart and very ambitious. Very different from Hamilton in some ways, but he was a lawyer, he ended up being a senator and vice president, eventually. So he and Hamilton spent their entire careers as rivals. They were bugged heads constantly; right? Up until the end. So if you don’t know how the show ends, maybe plug your ears right now. Spoiler alert.
Burr ended up killing Hamilton in a dual in 1804, and that’s how the show ends. Take your fingers out of your ears if you were worried about spoilers.
So big crux of the show is this personality difference between Hamilton and Burr right you have Hamilton, he’s super hot headed and emotional. He has this reputation for having a really hot temper, and he was completely relentless. 100% totally got it, like, remedial. And then Burr, who like Hamilton like I said very smart, very ambitious, but he had a different style. So he was more willing to wait back and let for his moment to maneuver in the situation and get what he wanted. Hamilton was literally stealing canons from the British during the Revolutionary War. Burr was waiting for the right moment for him to change political parties.
So that’s what we’re going to kind of focus on because, you know, we all the work in newsrooms or something similar to newsrooms; right? And they’re super social places. You work with, you know, people, probably a lot of people, probably people with personalities different from yours, maybe people who have kind of extreme personalities sometimes, and that can be really challenging. A lot of stuff that can come up that is not exactly journalism work; right? But I certainly know the feeling of feeling like the inner personal stuff is more difficult to deal with on a day-to-day basis than just, like, sitting down and doing the work itself.
So that’s what we’re going to talk about here. I’m going to give you a quick rundown on how we’re going to spend the next 70 minutes or so. I’ve been talking for about five minutes. Just so you know where we are in space. We’re going to stay as a big group for a little bit and talk about the personality differences between Hamilton and Burr in a little bit more detail. And then we are going to talk about challenging situations we found in newsrooms with kind of the emphasis on the social and personal and stuff.
And then we’ll break into groups and brainstorm in groups some solutions to those problems. Or maybe just approaches if there’s not an obvious solution. And then we will sort those solutions into our Hamilton and or Burr categories here. And you’ll use that process to determine if your group is more Hamilton or Burr or somewhere in between. And then we’ll come back together as a big group and discuss.
So markers are here.
Why don’t we start with defining some of the more specific character traits that Hamilton has.
So I through out he’s hotheaded. Impulsive, what else can we say?
Ambitious.
What else?
Unapologetic.
That’s a good one. That’s really good.
The word relentless up there.
Opinionated.
Very opinionated.
Confident.
Good. That’s great. Anything else come to mind?
Calculating.
That’s pretty good.
Okay. Does that feel like a pretty good list? Okay. Cool. Move over to Burr here. That’s the wrong color. That’s the right color.
So we also said that Burr was calculating. That’s interesting. We have the similarities between them as well.
All right. What else about Burr?
Patient.
Patient. Super patient. Wait for it; right?
Opportunistic.
Opportunistic. Really good point. What else?
He has a season. He’s experienced.
Experienced. Yeah, I like that. He’s got kind of a good sense of the world and how it works already.
What else?
He’s also ambitious.
Cautious.
Cautious. I think that makes sense. What’s kind of fun of the show too is seeing the evolution in act two where he suddenly realizes or decides to try things Hamilton’s way and see what happens. I think that’s an interesting turn that his character takes.
Anything else we want to add to Burr?
He’s very jealous.
He is very jealous. Yeah. That’s an excellent point.
Does entitled work? I feel like he belongs higher up than he is.
Yeah.
I feel like there’s a specific word for that. I think entitled works. Let me jot that down. He’s kind of always hustling.
Okay. I feel like these are pretty complete.
With Hamilton, I might put in the word scrappy as opposed to seasoned.
Yeah. That’s a good counter point because he came up from a very different background. Excellent.
Okay. Let’s change gears a little bit. We can add to these two if something pops in your brain. We can move over to some of the challenging situations here. So I can try a couple of these so we can know what vein we’re talking about. I’m going to say things, like – oh, I’m going to number these also because we’re going to use these when we’re in groups. So don’t let me forget if I stop doing that.

Maybe you need something from someone on a deadline, and they’re not paying attention. And it maybe hard if the person outranks you or operating on a different level of detail than you do.
I’m going to say needing something. from someone on a deadline.
Can you think of other examples? Some other sort of challenging situations?
When you step on someone else’s tows like core competences. Like you do someone else’s job.
Is it so – just so I’m clear. Feeling like you have the skills, and you need to help, like, sort of work with someone who doesn’t.
Maybe the person that has them is busy or whatever, so you do them yourself. And then they take offense to it.
Got it so, like, doing things that are not exactly your job, but you’re capable of.
Overstepping.
Overstepping. Okay. All right. That makes sense.
Or by contrast maybe being overstepped on.
Uh-huh. » What else?
Being caught between two different managers. Maybe someone is your manager. But there’s another person who is a manager at the same level of your manager.
Uh-huh. Puts you in a bad position.
Totally. What else?
People asking for something that you’ve already been told is never going to happen.
I see. So are you thinking –
It could be a product feature. It could be a, you know, part of the story. It could be anything.
Can you say that one more time?
People asking for something that you already know is never going to happen. That’s a good one. What else?
Someone pitches an idea or presentation, and you think it’s terrible.
And, like, how to react to that?
Yeah. What to do.
All right. Test.
Good one. What else?
Figuring out how to say “no” to an idea that’s maybe good, but you don’t have time for.
Okay. Yeah. That’s a tricky one.
What about someone taking credit for your ideas?
That’s a great one.
These are incredible, by the way. If you have a chance to go in another room. Enormous Post-It notes. Really, really fun.
All right. So you said someone taking credit for your work.
Yes. Or your ideas.
Or your ideas.
What else? This is a pretty good list.
Trying to get stakeholders to keep their eye on the big picture or stay on the big picture.
Uh-huh. That’s a good one.
Okay. Anything else anyone wants to add?
Being avoided.
Being avoided. That’s great. I mean, terrible. But. Good idea.
Oh, this happens to me a lot. Several people ask me for things at the same time. Being on a deadline for multiple people and understanding why you can’t prioritize.
Okay. Anything else we want to add here? In the back? Is that a hand?
No.
Just a scratch.
It was just a scratch.
Why don’t we leave it here for now. We can always add to things if stuff pops in your head as we’re having conversations. Okay. So this is the point that we’re going to break into groups. I’m going to give you instruction on how to do that and volume level increases, probably.
So what we’re going to do in our groups is write down on Post-It notes solutions or approaches to each – even some of these problems. You don’t have to get to all of them. If you have multiple approaches per problem, you can always write down multiple ideas. Just keep it to one idea per Post-It note. Also, include the number of problem that you’re addressing here, so we know, basically, which solution goes with which problem.
Those are the Post-Its that we’re going to sort into our Hamilton versus Burr approaches. Also I will have a sheet for the in between category. Because I’m totally aware that some of these things are not binary at all.
Let’s see. So we’ll plan on spending half an hour on this session. Make sure I’m not missing anything here.
No, I think we’re good. Does anyone have any questions about that?
Do you want approaches that we think are good, productive approaches, or just, like, an approach?
That’s a great question. I’m open to anything.
Okay.
Sometimes it can be really fun to think of super, extreme version of just going in guns blazing. Recognizing that that’s probably not something that you would actually do in real life. But sometimes recognizing extremes can help you sort of find the better middle ground.
But the goal is to come up with workable.
Honestly, the goal of all of this is for you guys to go back to your newsrooms and feel like when these challenges come up – because this is really tough stuff, and it can be emotionally degrading and tiring. When one of these situations comes up, you can think about it in a productive way and figure out that you have difficult things, instead of feeling small and powerless and like you don’t know what to do. So whatever you do that helps you get there is okay with me.
This is a great room for this exercise because we have these nice, small tables.
Why don’t we shoot for groups of maybe three or four people. And do me a favor. Folks who are super familiar with Hamilton, can you raise your hands with me? It seemed moth people were, at least familiar enough to have this conversation. But I want to make sure everyone who is less familiar, so our knowledge is evenly distributed.
So find two or three other people, break up into groups. I’m going to go over here and grab Post-Its and walk those around to your groups.
Is there a Hamilton expert that wouldn’t mind swapping into this group?
We can swap.
You wouldn’t mind?
Do you want to – do some of you want to swap over here?
Just a reminder, we have about ten more minutes.
Okay. Folks, we’re about 20 minutes through this session. Take about five minutes or so, and after that five minutes, I’m going to send you up here. How is everybody doing? Any more questions? Great. Go for it. [Group Discussion]
Okay. We have about ten minutes left. We’re going to get to our discussion here.
Great. We’re done. Congrats. Excellent job, everyone.
So this is interesting. I did not know how this was going to shake up. If Burr was the way to go or if Hamilton was more popular or this in between space.
So did you guys land on Hamilton versus Burr as a group? Like, are you more team Hamilton or more team bur Baton Rouge? Or was it a mix of two or three? Like, Burr, Hamilton, and then our Peggy group?
More of a mix? How about you guys?
Yeah, everyone is kind of – who had the darker blue Post-Its? That was you guys, because I think you have the most in the in between category.
We had a lot of things, like, being kind or listening.
Yeah. We had equal numbers but, like, many of the Hamilton ones are not advisable.
[Laughter]
I’m just going to jot some notes down here. So can you give me an example that you thought of that you’re, like, that’s just a terrible idea.
Yeah. We were, like, how could you react to this? And one of them was, like, you could get really angry and yell at the person. Because we had seen that happen.

That was us.
We had something similar to that.
But we also had a Burr one that was, like, kill it quietly and don’t tell them why.
[Laughter]
Yeah. That wasn’t good either.
Interesting.
And then all the really good ones seem to be in between because we didn’t think either of them would have come up with that because it was too sane or something.
Too measured.
Too measured, you said? That’s interesting.
And too eager to, like, make it better for everyone in the end.
Emotionally aware.
Yeah.
So it sounds like you came to the conclusion that there’s a self interest in Hamilton and Burr that makes working with other people more difficult.
I at least didn’t think of any of them as particularly, like, collaborative and open.
They were successful.
They were very successful., yeah.
So maybe that’s a –
What about you guys? Where did you shake out on the – it looks like you were pretty evenly distributed too. Maybe more on the Hamilton side than the Burr side.
We – we talk these things through and we kind of went with the same thing where you have these nice solutions and these good solutions, and then we were, like, well, let’s talk about looking at it through Hamilton’s eyes and Burr’s eyes, what would be the decisions that they would make?
Yeah. So if you – you know, a lot of these questions are sort of informed by experiences that we all had. And when you guys say that there are – that there’s a distinct pattern in newsrooms of more Hamptons versus more Burrs, it differs from newsroom to newsroom.
Whether there are more Hamptons and Burrs.
I think reporters are Hamptons and anchors are Burrs. And many people go back and forth, but I think, yeah, I think, you know, – I think it’s easier to maneuver as a Burr in a newsroom as an editor when you’re dealing with lots of pieces.  You’re going to have a lot of people unhappy or who feel threatened. Whereas reporters, I feel like their ambition is much easier to sort of run free. And I feel like tech people are often more, like – I don’t know. I mean, I – you know, came in through the editorial side of all of this – or the writing side or reporting side.
When you say they’re more like Peggy.
Well, I think they’re more able to be – their ambition is really different. It’s more collaborative. Their ambition or, you know, maybe it has to do with something in the code that their peers will understand but not something that the audience reading the story will perceive. I also think that they’re able to redirect without being personal. And that’s much easier to do – and it’s not even tech. I think anywhere but, you know, like, if you’re dealing with a writer, if you’re dealing with a photographer, dealing with an illustrator or something like that, then I think you’re dealing with – then some of this work is really personal. And I think if you’re dealing with a content management system, then often it just – it’s a little different.
I think that’s a really distinction.
I’m sorry?
I think that’s a really interesting distinction. So it’s maybe a more successful strategy in sort of a general way is making the solutions more about the problem, if possible, than about the person that you’re talking to or talking with.
We kind of had an ocean counter to that because two of us were from tech and people’s code is very personal, and we’ve seen cases where people totally go to that for their code to the death because they made it. So we have a parallel there.
Yeah. That makes sense.
There’s also this idea in the swore world of, like, the brilliant packer programmer who’s going to sit in the corner and just turn out a lot of code, which I think used to be tolerated much more than it is now. But there’s sort of this hack the Hamilton version, which there’s sort of a renegade and, like, they might be hard to work with, but they’re genius. I don’t know.
So kind of in that category of not collaborative at all but successful and moving away from that to a more collaborative space.
Yeah.
Interesting. So did anyone have kind of a very clear idea – we have, like, two minutes left here. Unless you want to hang out and chat afterward, which I would love. Are there any epiphanies, like, wow, Burr is the person to relate to here when it comes to solving problems, or they’re both self interested, and that’s not helpful in most situations, so maybe somewhere in the middle.
I don’t think Burr is. He seems like the real winner.
[Laughter]
It really feels like when we were brainstorming that there’s, like, things to be learned from both Hamilton and Burr. But if you really go full Hamilton or full Burr in these situations, there’s always, like, not recommended.
So useful as a experiment, not so much as a role model.
I actually want disagree with what she said, and it’s closer to what you said about we had a lot of ideas in equal parts. But the Hamilton ones were more bad or dangerous or whatever. And I think it’s easier to be full Burr than full Hamilton in an organization. And, like, being full Burr is probably not a healthy strategy, but it is a sustainable strategy or a more sustainable strategy than being full Hamilton.
So when you say being full Burr, like, what are you thinking?
Being entirely – well, congressional is the word that Cece came up with earlier when we were talking. Like, acting congressional, never say what you mean, playing the long game all the time, all of your ambition.
Manipulating the system; right?
Right. Understanding the system so well that you can game it. Instead of being Hamilton, which is, like, I’m walking into the system. I’m going to win. And then let them come at me.
Yeah. I think – I would agree with that because I think Hamilton is more transparent, like, what his beliefs are. And I find – it’s very – we had a lot of conversations about how to confront somebody. If you disagree, you have to give negative feedback. These things are hard and oftentimes don’t happen. And then they happen through side channels. It can be really hard just to say what you mean and, you know, sometimes that goes off the Rails, but I feel like that happens where oftentimes people say what they mean.
A lot of confronting somebody but Hamilton would have confronted them in public at whatever moment it was. Where, like, confronting somebody in private is what Burr did eventually, but that’s not really a Burr trait, so confront somebody in private or after the moment was in between.
Interesting. So where would you say, like, Hamilton or Burr confronts somebody?
Well, it seems Hamilton would confront somebody in the moment battle style.
Right.
Whereas, like, Burr did not participate in that and was much more, like, he wrote a letter to Hamilton outlining all the ways he had slighted him after 30 years or whatever.
Good point. And then Peggy would –
Would have, like, maybe had a conversation off to the side a day later or something.
Uh-huh.
I feel there’s much more push back too if you go full Hamilton because it’s so obvious. Like, it’s just easy – it’s easy to be, like, oh, that was inappropriate in that meeting or you were too aggressive or something like that whereas if you’re kind of doing the negotiating, calculating side channels thing, like, you’ll rarely get direct.
That’s a really interesting point, and that’s probably more true for women –
Yeah. I think women get much more negative push back if you go the Hamilton way. It’s seen as very inappropriate.
That’s actually interesting. So I hadn’t thought about the two extremes are dudes and the middle is female. That he was a complete accident, but that’s an interesting way to think about it.
I was thinking of a phrase that you just through out, which is collateral damage. And made me wonder as you’re evaluating these guys, to measure one. The level of collateral damage that comes with that success – and, again, I don’t know about specifically as these two. But what I’m gathering from this is it sounded like Hamilton sounded like he accomplished what he was set out to accomplish. Whereas Burr was, like, how do we accomplish this and what’s the collateral damage?
It’s interesting to think about that outcome not just in terms of success but –
Yeah. That is really interesting.
Okay. Well, we are about four minutes over time. If you want to hang out and keep talking, more than welcome. But session is officially over. Thank you very much for coming. This was super fun. I hope it was useful in some way.
Thank you.
Now I’m going to think of everyone I know where I work.
[Laughter]


---
name: Contributing
title: Contributing Content
abstract: Instructions on how to get content added to this website
layout: default
display:
home: 100
nav: 100
---
Contributing content
{% for section in site.sections %}
World Tour
Request a world tour stop by submitting a google form


Twitter popularized the term "firehose API", to mean a realtime stream of data sent through a persistent connection. But even if you're not a realtime service, streaming APIs are great for pushing data from the backend to clients. They reduce resource usage because the server can decide when it's a good time to send a incremental chunk of data. They can also improve the responsiveness of your user experience. The same HTTP API can be reused to power multiple different apps. For example, you could write your web frontend with a Javascript frameworks like Backbone.js, but reuse the same API to power a native iOS application. Follow the jump to read about how streaming APIs work, and how you can write one with Rack::Stream.
Rack::Stream is rack middleware that lets you write streaming API endpoints that understand HTTP, WebSockets, and EventSource. It comes with a DSL and can be used alongside other rackable web frameworks such as Sinatra and Grape.
Normally, when an HTTP request is made, the server closes the connection when it's done processing the request. For streaming HTTP, also known as Comet, the main difference is that the server doesn't close the connection and can continue sending data to the client at a later time.
To prevent the connection from closing, rack-stream uses Thin's 'async.callback' to defer closing the connection until either the server decides to close the connection, or the client disconnects.
Rack::Stream is rack middleware that lets you write streaming HTTP endpoints that can understand multiple protocols. Multiple protocols means that you can write an API endpoint that works with curl, but that same endpoint would also works with WebSockets in the browser. The simplest streaming API you can make is:
# config.ru
# run with `thin start -p 9292`
require 'rack-stream'
class App
def call(env)
[200, {'Content-Type' => 'text/plain'}, ["Hello", " ", "World"]]
end
end
use Rack::Stream
run App
If you ran this basic rack app, you could then use curl to stream it's response:
> curl -i -N http://localhost:9292/
HTTP/1.1 200 OK
Content-Type: text/plain
Transfer-Encoding: chunked
Connection: close
Server: thin 1.3.1 codename Triple Espresso
Hello World
This isn't very exciting, but you'll notice that the Transfer-Encoding
for the response is set to chunked
. By default, rack-stream will take any downstream application's response bodies and stream them over in chunks. You can read more about chunked transfer encoding on Wikipedia.
Let's spice it up a bit and build an actual firehose. This next application will keep sending data to the client until the client disconnects:
require 'rack-stream'
class Firehose
include Rack::Stream::DSL
def call(env)
EM.add_periodic_timer(0.1) {
chunk "\nChunky Monkey"
}
[200, {'Content-Type' => 'text/plain'}, ['Hello']]
end
end
use Rack::Stream
run Firehose
The first thing to notice is the Firehose rack endpoint includes Rack::Stream::DSL
. This are convenience methods that allow you to access env['rack.stream']
, which is injected into env
whenever you use Rack::Stream
. When a request comes in, the #call
method schedules a timer that runs every 0.1 seconds and uses the #chunk
method to stream data. If you run curl, you would see:
> curl -i -N http://localhost:9292/
HTTP/1.1 200 OK
Transfer-Encoding: chunked
Connection: close
Server: thin 1.3.1 codename Triple Espresso
Hello
Chunky Monkey
Chunky Monkey
Chunky Monkey
# ... more monkeys
rack-stream also allows you to register callbacks for manipulating response chunks, and controlling when something is sent with different callbacks. Here's a more advanced example with callbacks added:
require 'rack-stream'
class Firehose
include Rack::Stream::DSL
def call(env)
after_open do
chunk "\nChunky Monkey"
close # start closing the connection
end
before_chunk do |chunks|
chunks.map(&:upcase) # manipulate chunks
end
before_close do
chunk "\nGoodbye!" # send something before we close
end
[200, {'Content-Type' => 'text/plain'}, ['Hello']]
end
end
use Rack::Stream
run Firehose
If you ran curl now, you would see:
> curl -i -N http://localhost:9292/
HTTP/1.1 200 OK
Transfer-Encoding: chunked
Connection: close
Server: thin 1.3.1 codename Triple Espresso
HELLO
CHUNKY MONKEY
GOODBYE!
For details about the callbacks, see the project page.
Up until this point, I've only used curl to demonstrate hitting the rack endpoint, but one of the big benefits of rack-stream is that it'll automatically recognize WebSocket and EventSource requests and stream through those as well. For example, you could write an html file that accesses that same endpoint:
<html>
<body>
<script type='text/javascript'>
var socket = new WebSocket('ws://localhost:9292/');
socket.onopen = function() {alert("socket opened")};
socket.onmessage = function(m) {alert(m.data)};
socket.onclose = function() {alert("socket closed")};
</script>
</body>
</html>
Whether you access the endpoint with curl, ajax, or WebSockets, your backend API logic doesn't have to change.
For the last example, I'll show a basic chat application using Grape and Rails. The full runnable source is included in the examples/rails
directory.
require 'grape'
require 'rack/stream'
require 'redis'
require 'redis/connection/synchrony'
class API < Grape::API
default_format :txt
helpers do
include Rack::Stream::DSL
def redis
@redis ||= Redis.new
end
def build_message(text)
redis.rpush 'messages', text
redis.ltrim 'messages', 0, 50
redis.publish 'messages', text
text
end
end
resources :messages do
get do
after_open do
# subscribe after_open b/c this runs until the connection is closed
redis.subscribe 'messages' do |on|
on.message do |channel, msg|
chunk msg
end
end
end
status 200
header 'Content-Type', 'application/json'
chunk *redis.lrange('messages', 0, 50)
""
end
post do
status 201
build_message(params[:text])
end
end
end
This example uses redis pubsub to push out messages that are created from #post
. Thanks to em-synchrony, requests are not blocked when no messages are being sent. It's important do the redis subscribe after the connection has been opened. Otherwise, the initial response won't be sent.
socket.io is great because it provides many transport fallbacks to give maximum compatibility with many different browsers, but its pubsub interface is too low level for capturing common app semantics. The application developer doesn't have nice REST features like HTTP verbs, resource URIs, parameter and response encoding, and request headers.
The goal of rack-stream is to provide clean REST-like semantics when you're developing, but allow you to swap out different transport protocols. Currently, it supports normal HTTP, WebSockets, and EventSource. But the goal is to support more protocols over time and allow custom protocols. This architecture allows socket.io to become another protocol handler that can be plugged into rack-stream. If you wanted to use Pusher as a protocol, that could also be written as a handler for rack-stream.
rack-stream aims to be a thin abstraction that lets Ruby developers write streaming APIs with their preferred frameworks. I plan to broaden support and test against common use cases and popular frameworks like Sinatra and Rails. If you have any questions or comments, feel free to submit an issue or leave a comment below!


In recent 2 years, I have switched my own working environment from Windows to Ubuntu and Mac. For the reason that I switched C/C++ development for Windows to Java development for Android. But I still prefer C++, so I won’t give up C/C++ programming. In this article I will write down detail steps that how I build working environment. This working environment on Mac is a general working environment, not just for Android development but also C/C++ development. Let’s start!
First, I would install some universal tools.
Universal Tools
Install and configure Oh my zsh
- Install via curl or wget
via curl
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
via wget
sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
- Configure my prefer feature via edit .zshrc file
Add this line to .zshrc file
plugins=(git vi-mode adb)
Install and configure iTerm
-
Install lastest release dmg
- Clone solarized git project from github and import color scheme for iTerm2
git clone https://github.com/altercation/solarized.git cd iterm2-colors-solarized ./Solarized Dark.itermcolors
Install userful command line tools
-
Install brew -
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
-
Install ctags -
brew install ctags
-
Install cscope -
brew install cscope
-
Install ag -
brew install ag
- Install grip -
brew install grip
Install and configure Vim
- Install vim via source
git clone https://github.com/vim/vim.git cd vim ./configure --with-features=huge --enable-gui=gnome2 --enable-pythoninterp=yes --enable-cscope --enable-gui=auto \ --enable-gtk2-check --enable-gnome-check \ --enable-fail-if-missing --enable-multibyte --enable-fontset \ --with-x --with-compiledby="Tao He" make sudo make install
- Configure vim
cd ~ git clone https://github.com/longlinht/vimrc.git ~/.vim_runtime sh ~/.vim_runtime/install_awesome_vimrc.sh
Utilities
-
Install Alfred
-
Install Dropbox
- Install NutsCloud
Install IDE
Install and configure Android Studio
-
Install Android Studio via dmg
-
Install and configure ideavim plugin
Install ideavim in Android Studio git clone https://github.com/longlinht/VimForIDEs.git In Android Studio -> File ->Import Settings -> Choose VimForIDEs/ideavim/monokai/settings.jar
There are some userful application I have installed, but I don’t want to list them becasue their easy installation. Until now, I work comfortably in this woking environment. Maybe I will develop a script to automate this process in the future. If I make it done, I would update this article and supply this script.