Continuous thinking: just ship it - the story of NerdBeers
Note
This is the first in a series of posts :
- Continuous thinking: just ship it - the story of NerdBeers (this post)
- Continuous thinking: Nerdbeers continued - We all win !!
- Continuous thinking: Nerdbeers - Providing business value by issue tracking
Introduction
Ok, I will admit it: I am a software architecture junkie. I love thinking about it, and try to use it in every app I can. I am an avid fan of CQRS (more info here), and I try to use it as much as possible.
Next to this, I am also a very big fan of BDD; to me it feels like there is nothing that even comes close to the process of describing a problem domain using the example stories.
I spend a huge amount of time on reading as much relevant articles as possible, joining discussions in newsgroups, on blogs. This has provided me quite a broad knowledge about software approaches one should use. (Think SOLID,BDD. ...)
Ok, stop bragging please, what is your point here ?
A while ago I got together with someone on a new idea (yes Geert, I am talking about you). We talked it through and started prototyping. So I set up a basic project, and built a CQRS architecture in order to get started, so we would have better scalable/testable/more maintainable code. In the mean time, the other person had already started prototyping, so I spend a few days converting his ADO code into a more appropriate model for CQRS, and convert everything.
I heard about the latest version of enitity framework, which had a code-first approach, and since I had been using fluent-nhibernate in the past for view storage, I decided to go for the new player on the block. Unfortunately, the EF apparently did not support Enum storage, so we had to adjust about 80% of the viewmodels.
After migrating everything, it seemed like the other person was implementing code in the wrong places. He has always been a DAL/ORM kind of person, so the whole CQRS thing was really confusing to him. (which is completely normal; cqrs requires a different mindset than CRUD, and I did not take in to account the rather steep learning process I had made in the past).
I can go on and on about this, but to cut a long story short, the project was temporarily postponed to an undefined later date...
I also quit another project like this because I lost intrest in the project while building up the whole required architecture setup and a few basic screens.
So a lot of effort resulted in ... absolutely nothing
Fast-Forward to a few months later
As time progressed, I read even more about architecture, learned some new frameworks on the way, and tried out a few things from which most did not even get to a usable phase. My software hobby projects were all seeded quickly, but abandoned even more quickly.
Until I read an article on the blog of Matt Mullenweg. The one phrase that kept lingering around in my mind was this one:
if you’re not embarrassed when you ship your first version you waited too long.
Wow! That is a strong statement !! So I decided that my next project would respect this statement; I was just waiting for the perfect opportunity to come along
And there it was...
I discovered NancyFx, a .Net web framework loosely inspired by the ruby/sinatra approach, as well as Simple.Data, which one can compare to the ruby ActiveRecord approach. If there is one web platform that is known for it's productivity, it has to be RubyOnRails. So I decided to give it a go, and merge the two in a new project.
As I was looking for an idea on an app to implement, @grumpydev told me he had been thinking about trying to implement something like NerdDinner.com, but maybe a bit more limited, and that I was free to try it.
So I came up with NerdBeers
After taking a few hurdles (cloning the NancyFx git repo,installing ruby, building, installing sqlce, building, installing F#, building, cloning the simple.data repo, building it, finding an SQLCE editor, finding a Migrator.Net that supported SQLCE 4.0 and building it), I started a basic web project, where I had an index screen showing all upcoming nerdbeers and the possibility to add a new one, and a details screen where one could edit a nerdbeer.
I ditched Migrator.Net, since it was making things to complicated at this phase of the project.
I published it at github, tweeted about it, and got some very enthousiastic reponses from the creators as well as from the community, even inluding some people whom I consider to be impossible to reach...
As I published my sourcecode to github, I was thinking about my idle appharbor test account that I requested a few weeks before... Continuous deployment is required if one wants to approach lean development....  Luckily the people from appharbor were there to help me, and pointed out what was wrong.
So after a few attempts and sleepless nights, I had a pretty useless app online, but it looked kind of cool due to the tersness of the code.
NerdBeers... The story continues
Since I got so much positive responses to an app which was basically an empty shell, but showed a lot of potential, I was motivated enough to start hacking together something usable. After trying out a few things, checking out the Nancy sourcecode and bothering @GrumpyDev, @TheCodeJunkie and @MarkRendle with all my noob questions, I finally got around to publishing something usable - allbeit in a very limited way - .
It still looks ugly as hell, but I am a developer, not a designer. Strings are being pulled currently to help me out (=replace) the design.
Conclusion
For me, this approach was WAY OUT of my comfort zone, but apparently it does work... If I take out the time to build the libs and workaround the bugs, check the source, bothering people about it, I have published a usable app in about a day...
It still looks really ugly (both the design and the code), but it works in a very basic way. I also cut out every possible feature not needed (i.e. currently one does not even have a login), so I would be able to ship it fast. And I have to say it worked: the short cycles kept me productive/motivated, and the small featureset helped me to focus on what was really important.So I did ship something !!
As the libs for NancyFx and Simple.Data progress, we will get a very mature platform which will enable truly lean development.
You can see the demo application at https://NerdBeers.apphb.com.
For me this has been a valuable lesson, and from now on, I will try to respect these principles more and more... I hope you found this an interesting read, and if you have had a similar experience, do not hesitate to let me know...
Update!!
There is a followup post here.


|
Please fill out all appropriate fields, then submit: |
| ITEM: |
COLOR: |
SIZE: |
QUANTITY: |
UNIT PRICE: |
| |
| K500 Polo |
Black
|
|
|
$22.00 |
| |
| L500 Polo (Ladies) |
Black |
|
|
$22.00 |
| |
| K500 Long Sleeve Polo |
Black |
|
|
$25.00 |
| |
| L500 Long Sleeve Polo (Ladies) |
Black |
|
|
$25.00 |
| |
| S608 Long Sleeve Work Shirt |
Black
|
|
|
$26.00 |
| |
| S508 Short Sleeve Work Shirt |
Black
|
|
|
$25.00 |
| |
| L608 Long Sleeve Work Shirt |
Black
|
|
|
$26.00 |
| |
| L508 Short Sleeve Work Shirt |
Black
|
|
|
$25.00 |
| |
| 18000 Crew 7.75 oz. |
Black |
|
|
$22.00 |
| |
| 6800 T-shirt |
Black
|
|
|
$10.00 |
| Add $2.00 for size 2X-Large and $3.00 for size 3X-Large. |


--- layout: post title: The Drive by Download and Mobile Botnet Seen As Top Threats for 2012 date: '2012-01-03T13:16:03-08:00' tags: tumblr_url: http://alexhwilliams.tumblr.com/post/15255637219/the-drive-by-download-and-mobile-botnet-seen-as-top ---
http://bit.ly/x8BeNC


Functions module.
- Source:
Methods
(inner) checkGroup(group)
A function used to check the information that a client submits about a group.
Parameters:
| Name | Type | Description |
|---|---|---|
group |
Object | The object representing a group. |
|
- Source:
(inner) localAuth(username, password) → {Promise}
A function for authenticating existing users to the application.
Parameters:
| Name | Type | Description |
|---|---|---|
username |
string | The username of the user trying to authenticate. |
password |
string | An unhashed version of the user's password. |
- Source:
Returns:
Returns either the user object, or an error relevant to the client.
- Type
- Promise
(inner) localReg(username, password, userObject) → {Promise}
Function to register a new user, which in turns calls the validation function.
Valid users are entered into the database.
Parameters:
| Name | Type | Description |
|---|---|---|
username |
string | The username of the user to be added to the database. |
password |
string | The unhashed password of the user to be added to the database. |
userObject |
Object | The Object representing the user being added to the database. |
user.username |
string | The username of the user. |
user.password |
string | The password for the user. |
user.email |
string | The user's email address. |
user.forename |
string | The user's forename. |
user.surname |
string | The user's surname. |
- Source:
Returns:
A promise which either represents the database entry for the user, or a relevant error.
- Type
- Promise
(inner) validateUser(user) → {Promise}
Function to validate the user object submitted by the client.
Parameters:
| Name | Type | Description | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
user |
Object | The user object submitted by the client.
Properties
|
- Source:
Returns:
A promise representing either the rejected field or simply a true Boolean value if the user is valid.
- Type
- Promise


|
Nifty
0.4.0
|
Classes | |
| class | Bounds |
| class | Bounds< 2 > |
| class | Cell1BasicGeometricFeatures2D |
| class | Cell1BasicTopologicalFeatures |
| class | Cell1Cell2CurvatureFeatures2D |
| class | Cell1CurvatureFeatures2D |
| class | Cell1GeoHistFeatures |
| class | Cell1LineSegmentDist2D |
| class | CellBoundedBy |
| class | CellBoundedBy< 2, 1 > |
| class | CellBoundedBy< 2, 2 > |
| class | CellBoundedByVector |
| class | CellBoundedByVector< 2, 1 > |
| class | CellBoundedByVector< 2, 2 > |
| class | CellBounds |
| class | CellBounds< 2, 0 > |
| class | CellBounds< 2, 1 > |
| class | CellBoundsVector |
| class | CellGeometry |
| class | CellGeometry< 2, 1 > |
| class | CellGeometry< DIM, 0 > |
| class | CellGeometryVector |
| class | CellVector |
| class | FilledTopologicalGrid |
| class | FilledTopologicalGrid< 2 > |
| Class for cartesian grid partitioning for 2d images. More... | |
| class | Geometry |
| class | Geometry< 2 > |
| class | TopologicalGrid |
| class | TopologicalGrid< 2 > |
| Class for cartesian grid partitioning for 2d images. More... | |
Functions | |
| template<T > | |
| void | cell1ProbabilityPropagation2D (const nifty::marray::View< T > &probabilitiesIn, const CellBoundsVector< 2, 0 > &cell0Bounds, const CellBoundedByVector< 2, 1 > &cell1BoundedBy, nifty::marray::View< T > &probabilitiesOut, const float thresholdLow=0.3, const float thresholdHigh=0.5, const float damping=0.1) |
| a handcrafted thing to hopefully close tiny gaps in edge_probos] More... | |
| void nifty::cgp::cell1ProbabilityPropagation2D | ( | const nifty::marray::View< T > & | probabilitiesIn, |
| const CellBoundsVector< 2, 0 > & | cell0Bounds, | ||
| const CellBoundedByVector< 2, 1 > & | cell1BoundedBy, | ||
| nifty::marray::View< T > & | probabilitiesOut, | ||
| const float | thresholdLow = 0.3 , |
||
| const float | thresholdHigh = 0.5 , |
||
| const float | damping = 0.1 |
||
| ) |
a handcrafted thing to hopefully close tiny gaps in edge_probos]
| [in] | probabilitiesIn | The probabilities in |
| [in] | cell0Bounds | The cell 0 bounds |
| [in] | cell1BoundedBy | The cell 1 bounded by |
| [out] | probabilitiesOut | The probabilities out |
| [in] | thresholdLow | The threshold low |
| [in] | thresholdHigh | The threshold high |
| [in] | damping | The damping |
| T | float or double |


I'll skip the big credibilty introduction by just saying I've experimented with quite a few drugs (I'm the 'explorer' type) and know pretty well what I am doing.
So I was celebrating the end of the semester at D's house over a few bongloads when the pillhead next door, H, comes back from the porn store with 3 cartons of nitrous, a cracker, and some balloons. I was flooded with visions of the old days of hunching over the Reddi-Whip as an eager 13 year old, and I begin to prepare myself for the glee ahead. We start small with a 2 cart. load for everyone. This gives everyone else a hearty giggle, but fails to give me the psychonaut exploration I crave, so as my companions laugh their asses off, I devise a way to get higher. My eyes drift to the bong beside me (nicknamed 'Ike Turner, Cause He Hits So HARD'). There was some crystal in the house, but mixing meth and nitrous didn't sound like much a trip, so picked up Ike.
I begin by completely filling the bong's chamber (relatively large) and clearing it in one hit, holding for a bit, then fully exhaling.  After the first balloon I grab the other 2 cart. prepared for me by H and heartily inhale it while standing up briskly.....
The audio flanging escalates to the point of oblivion, as I wander around like a zombie, stumbling around D's apartment, mouth gleefully agape in that nitrous induced nirvana we all know so well, too wigged out to actually laugh.
After about 30 seconds, the flanging escalates to the point that my brain quits hearing it as noise and accepts it as reality, and I collapse on the ground as I wonder to myself, 'Is this real? Can I really be experienceing this? Is this just a vivid imagination?' My mind checks all my senses and firmly answers YES to the first question, which voids all the others, after barely recognizing my friends faces through the flanging haze.
After about a minute of shattered reality, I muster up the self-control to laugh as the flanging slows down and begins to blend with the raucous laughter of the audience at my outlandish behavior (we go in turns, more fun that way). Finally I pop up back into consciousness and mutter about how cool that was, and patiently wait for my next hit.
Third time around, I kick it up a notch, taking a double-chamber hit from Ike, moving straight to a 3 catridge balloon, and then taking a double balloon as I stand. I quickly realize that standing is not a part of the universe I am entering, and collapse on the couch as the opening bass taps of 'Jerry Was A Racecar Driver' by Primus drift through the ringmod tapeloop of my auditory perception.
As my body gradually slows its spinning speed down from infinity, the aforementioned ringmod tapeloop slows down and meshes with reality, my connection with reality somehow perfectly synching with the break section of the previously mentioned song, and gives the whole experience a sense of blessing from on high, as if it was meant to happen this way.
As I touch down on Earth, I'm greeted by the hysterical faces of my friends, followed by the sounds of their laughter a few seconds later, and I step out into the cool brisk air to peice my mind together over a cigarette...
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


LOOK: Michelle Dee's Miss World 2019 national costume
Michelle's costume is made by Francis Libiran
by Rappler.comKWENTONG KAAKBAY: Gina & Sammy
KWENTONG KAAKBAY: Avee & Jonathan
KWENTONG KAAKBAY: Dane & La Verne
KWENTONG KAAKBAY: Jenny & Jimuel
“Every bottle matters. Help us in collecting and recycling our plastic bottles so they do not end up as waste in our environment. Be part of our journey towards a World Without Waste.”


balloon
red
sky
blue
Hot air balloon
balloons
houses
train
harborside
balloons
inflating
green
blue
balloon
sun
sky
summer
bright


Every (almost) Java EE based application needs configuration — local, test or production — it does not matter. What matters — how easily this configuration solution is maintained and how easily the environment may be changed.
There are many ways to achieve the requirement, however in this blog I will cover one of possible CDI based configuration solutions — Owner by http://owner.aeonbits.org/.
Usually there are several stages when properties used in production:
- Hardcoded properties (usually done by novice programmers, otherwise I would treat such properties as constants);
- Properties file inside application war file (different properties configured during build time. It is not correct, because the same build cannot be deployed on different environments);
- Properties file stored in server file system (properties are independent from war and is environment specific).
Java EE lacks easy configuration functionality. There are many discussions related to this topic
- HOW TO CONFIGURE JAVA EE 6+ APPLICATIONS …WITHOUT XML
- Storing and editing configuration for Java EE applications at Stack Overflow
- Configure Java EE applications or “Putting Bien into practice” and more others.
However they need custom actions to take into account:
- You need to manage property injection yourself;
- You need to use Spring framework, which has flexible configuration management mechanism. But do you need Spring only for property loading? I believe — no ☺
Preconditions
You need this environment setup in order to successfully complete the provided guide:
- Apache Maven 3.x
- Eclipse Luna
- Java EE 7 profile
- Aeonbits Owner
Implementation
Defining an interface
/**
* Application configuration properties are defined here.
*
* @author vicento.ramos
*
*/
@HotReload
@Sources({ “file:/etc/my-app.properties”, “file:~/.my-app.properties”, “classpath:/my-app.properties” })
@Named(“applicationConfig”)
public interface ApplicationConfig extends Accessible {
@DefaultValue(“50”)
@Key(“app.timeout”)
int getInitialTimeout();
}
Creating a producer
/**
* Application scope based configuration file producer.
*
* @author vicento.ramos
*
*/
@ApplicationScoped
public class ApplicationConfigProducer {
@Produces
@ApplicationScoped
public ApplicationConfig produceSportsConfig() {
return ConfigFactory.create(ApplicationConfig.class);
}
}
Creating a properties file
my-app.properties file may be stored in one of these locations:
- /etc/my-app.properties
- .my-app.properties
- /my-app.properties
And the content of the file:
app.timeout=30
Usage
/**
* Sample injection point of properties.
*
* @author vicento.ramos
*
*/
@Named
public class SampleService {
@Inject
private ApplicationConfig applicationConfig;
public void method() {
System.out.println(String.format(“Config value: %d”, applicationConfig.getInitialTimeout()));
}
}
Features
- Multiple configuration locations — you may configure multiple lookup locations where configuration files may be fetched from;
- CDI Injection — Java EE based CDI injection using @Named and @Inject annotation
- Default values — you may configure default values easily using @DefaultValue
- Hot reload — you may easily define the interval for properties hot reloading using @HotReload
- And many more if required


WITNESS LIST Appropriations Committee (Subcommittee on Education) February 5, 1997-8:00A Budget Overview/Education For: Bizzell, Lynn (TX Fire Chief Assn) Sullivan, Dick (State Firefighters Assn) On: Adams, Greg (Auditor) Bennett, G. Kemble (TX Engineering Service) Bowen, Ray (A&M) Carpenter, Zerle (TX Ag Extension Sys) Danigole, Scott (LBB) DePaula, Dominick (Baylor Col of Dentistry) Eugster, Konrad (TX Vet Med Diagnostic) Florez, Vi (TAMUG) Friedland, Michael (TAMU HSC) Furgason, Robert (A&M Corpus Christie) Haden, Clovis Roland (TX Engr Exp Station) Hensley, Stephen (A&M Texarkana) Hiler, Edward (A&M Ag Experiment) Hines, Charles (A&M Prairie View) Hull, James (TX Forest Service) Ibanez, Manuel (A&M Kingsville) Jeffers, Glenn (Tarlton Pol Sci Assn) Jennett, Charles (A&M) Lindsay, Richard (TAMUS) Long,Russell (WT A&M) McCabe,Dennis (Tarlton State U) McCutcheon, James (Tarlton Student) Morris, Jerry (A&M) Nunley, Gary (TX Animal Damage Contro) O'Connor, Michael (TAMV Sytem) Playter, Bob (A&M Vet Med) Redwine, Lynn (Comptroller) Richardson, Herbert (TX Transportation Inst.) Smock, Cathy (Auditor) Thompson, Barry (A&M Chancellor)


A plain starter template for using Tailwind with Sass (without Next, Gatsby, Laravel, etc).
I personally like using Tailwind altogether with Sass because it
makes me able to nest the styles. Also, the @mixin
and
@extend
features really help me to avoid writing the
same styles again and again, so the stylesheet is a bit more
readable.
Use the package manager npm to use this template, or hit the "Use this template" button above.
npm install
npm start
In development CSS output is not optimized since it doesn't make sense to compress and purge everything on every change.
npm run build
In production CSS output is optimized using Tailwind default purging and cssnano compression.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.


http://www.susangranger.com/
Susan Granger's review of "BEST IN SHOW" (Warner Bros./Castle Rock Entertainment)
There's something about dog shows that's terribly amusing. I know those who show off their purebreds take them very, very seriously, but for onlookers, like Christopher Guest, the possibilities for comedy are endless. In fact, sanity goes to the dogs where Best of Breed trophies are concerned. This wacky mockumentary, a worthy successor to "Waiting for Guffman," centers on Philadelphia's annual Mayflower Dog Show, similar to New York's Westminster Dog Show. Diverse contenders include, from Illinois, a bickering, neurotic yuppie couple (Parker Posey, Michael Hitchcock) with Beatrice, their depressed Weimaraner; from Florida, a milquetoast menswear salesman (Eugene Levy) with, literally, two left feet and bubbly, his promiscuous wife (Catherine O'Hara), showing Winky, their Norwich Terrier; from North Carolina, a fly-fishing shop owner (Christopher Guest) with his beloved Bloodhound Hubert; from New York, a flamboyantly gay couple (John Michael Higgins, Michael McKean) with Miss Agnes, one of their Shih Tzus; and from the Main Line, a trashy trophy wife (Jennifer Coolidge) and her hired handler (Jane Lynch) with their two-time champion Standard Poodle, Rhapsody in White. Plus there's the show's President (Bob Balaban), chairman (Don Lake), and mis-matched commentators (Jim Piddock, Fred Willard), along with a long-suffering hotel manager (Ed Begley Jr.) Guest and his co-scripter Eugene Levy obviously encouraged their ensemble cast into improvisational riffs that are executed with somewhat predictable but barkingly loony, fast-paced finesse, particularly the one-liners and non-sequiturs. On the Granger Movie Gauge of 1 to 10, "Best in Show" is a dementedly funny 9. It's a hilarious howl - a walloping woof!
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


Accumulo supports the ability to present an isolated view of rows when scanning. There are three possible ways that a row could change in accumulo :
At this time there is no client side isolation support for the BatchScanner. You may consider using the WholeRowIterator with the BatchScanner to achieve isolation though. This drawback of doing this is that entire rows are read into memory on the server side. If a row is too big, it may crash a tablet server. The IsolatedScanner buffers rows on the client side so a large row will not crash a tablet server.
When writing server side iterators for accumulo isolation is something to be aware of. A scan time iterator in accumulo reads from a set of data sources. While an iterator is reading data it has an isolated view. However, after it returns a key/value it is possible that accumulo may switch data sources and re-seek the iterator. This is done so that resources may be reclaimed. When the user does not request isolation this can occur after any key is returned. When a user request isolation this will only occur after a new row is returned, in which case it will re-seek to the very beginning of the next possible row.


This broadphase uses a pair of binary trees with objects inserted based
on containment of their AABB.
This is a general purpose broadphase which does not suffer for objects
of varying sizes, or objects moving very quickly and is well set for such
acts as ray casting and spatial queries like objectsInAABB of the Space type.
This is a very simple broadphase using the x-axis to keep objects
sorted by their minimum x coordinate.
Performance of this broadphase is generally good and in some circumstances
superior to the DYNAMIC_AABB_TREE broadphase.
This broadphase will however be much slower for things such as ray casts and
spatial queries like objectsInAABB on the Space type.
Also in cases where lots of objects are moving very quickly or when there is a
large variety in the size of objects.
Due to the simplicity of this broadphase, it serves as a good test should you
ever feel there might be something going wrong with the DYNAMIC_AABB_TREE
broadphase type.
This broadphase uses a pair of binary trees with objects inserted based on containment of their AABB.
This is a general purpose broadphase which does not suffer for objects of varying sizes, or objects moving very quickly and is well set for such acts as ray casting and spatial queries like objectsInAABB of the Space type.
This is the default broadphase nape will use.


circular.averaging.Rd
circular.averaging
calculates the average direction (0 - 360) given a
vector of directions.
vector.averaging
calculates the average
distance and direction given a vector of directions and a vector of
distances.
circular.averaging(direction, deg = TRUE) vector.averaging(direction, distance, deg = TRUE)
| direction | a vector of directions given in degrees (0 - 360) if `deg == TRUE` or in radians if `deg == FALSE` |
|---|---|
| deg | a boolean object defining if `direction` is in degrees (`TRUE`) or radians (`FALSE`) |
| distance | a vector of distances associated with each direction |
circular.averaging
returns the average direction while
vector.averaging
returns a list with 2 elements distance & direction
functions return `NA` if the average distance or direction is not valid... e.g., when averaging directions of 0 & 180 degrees, the result could theoretically be 90 or 270 but is practically neither.
This function was taken from the now archived, as of 08/03/2020, SDMtools.
Jeremy VanDerWal<EMAIL_ADDRESS>& Lorena Falconi<EMAIL_ADDRESS>#> [1] NA#> [1] 99.68147#> $distance #> [1] 8.035995 #> #> $direction #> [1] 57.38924 #>#> $distance #> [1] 0.3009788 #> #> $direction #> [1] 236.6898 #>


We all have worked with data at some point of our work. Now, depending on the source, sometimes the data may not be regular, smooth and uniform and requires refinement before applying for any practical use. This software lets you do that very easily and efficiently in a graphical way. Using Interactive Data Editor one can
- Plot any 2D and gridded 3D data.
- Edit/Refine data including many useful data operations.
- Fit a function to the data.
If you are on a terminal, then the software can be quickly opened to load a file running , where the for linux is and for windows its the file inside the installation folder.
After edits you can save your modified data from . When saving for first time, the application will ask for name and location of the file to save the data. Any consecutive saves will save the data in that same file. As usual use to save in a different file. If you are working with multiple files then this will save the primary working data file only. Also plots can be exported in any desired resolutions in five file formats including, pdf, jpeg, png, svg and webp.
The main window has basically 3 parts, Menu bar, Tool bar, Plot area and the Plot list dashboard. Most of the menubar options are self-explanatory and are detailed in the following sections. Toolbar contains the column selector and slider. Appropriate columns can be set from the column selector, while setting primary editable plot and adding or removing plots is done from the Plot list dashboard. The slider, available only when working with 3D data, is used to change the X/Y value for which the corresponding 2D cut is plotted.
The Plot area is where you view the 2D plot and make your edits. It has few useful buttons which become visible when the mouse is over this area. This plot window is fully responsive, and you can select points, zoom, pan, set axis ranges, labels etc. interactively with mouse. The right click context menu, appear only when some data points are selected, can be used to quickly smooth, remove or change data.
Apart from the main window this application has 2 external windows, which are accessed from the 'windows' menu in Menubar. Using the one can view the complete 3D plot in real time as you edit the the 2D projection on main window. Two types of 3D plots are available here, surface type and wireframe type and either one can be selected using the provided menu. By default, it shows only the surface being edited, check to show all the traces. On the other hand, with one can check the data in spreadsheet like editor, with all basic excel like feature e.g. editing, sorting, applying formulas etc. This is useful if you want to edit the data directly instead of the graphical way.
A general 3D plotter for plotting surfaces is also provided and can be opened from to plot and view 3D data. It supports multiple surfaces with basic plot configurations.
This software has a lot of features for various useful data operations. Check this out for a quick demo.
- Dragging data points. You can edit a data points by dragging it with mouse or using the keyboard Up/Down navigation keys. To drag multiple points select the points and just drag any of them. By default, data points are movable only along vertical direction. If you want to move the data points along horizontal direction too, then check .
- Smooth out. Smooth out data using spline and linear kernel (Moving Average) smoother.
To smooth out, select the portion of the data and press or to smooth out using spline and moving average respectively. Press and hold to apply moving average multiple times. These two methods can not be applied to the end points.
For that, a local quadratic regression method is added to extrapolate and smooth out by pressing .
This method can be applied to intermediate data points too. These methods are also available through the right click context menu.
In addition to manual selection, to smooth the data, one can use the Auto Smoother feature of the software to smooth out the complete data altogether. Open and chose a desired smoothing scale to get a smoothing approximation to the original data. To quickly rectify bad data points one can use the Auto Corrector option from the menu. Chose proper smoothness and cutoff for locating the bad data and the software will provide with an corrected approximation. Press or button to apply the changes - Data fitting. Data can be fitted with any given functional, although at the moment this software only support fitting 2D data. Two types of data fitting options are provided with this software. First, a simple regression type fitting, to fit the data with a polynomial of any arbitrary order. Second is a general functional fitting using Levenberg-Marquardt algorithm, one can provide any desired function to fit using this method.
- 2D and 3D support. This software supports both 2D and 3D data editing, but for 3D editing data must be on a rectangular grid and data file must in blocks of 1st axis values. For example, check the provided sample data. Data file can have missing grid points.
- Edit multiple data simultaneously. You can edit multiple columns of the same or different files simultaneously. After loading a file additional files can be added through the plot list dashboard
- Configure plot. Configure the plot window as you like through using the plot setting from. Here you can choose the line and marker style of the plot, change legend, tittle, axis label etc. Note, this application supports LaTeX rendering, so any valid LaTeX text can be used as title, axis labels or in legends.
- Drag and Drop. Instead of opening through the menu, files can be opened just by simply drag and dropping inside the software window. This can be used to open a remote file by mounting the remote folder and dropping the file from there, as for simplicity no option provided to directly open remote files.
- Fill missing values. Go to and fill out the start, stop and step values to fill the missing values in the data. Intermediate points will be filled using a Cubic spline and outside values will just be copied from the nearest available value or by fitting a quadratic regression function. This operation can be applied to limited part of the data by on checking the option
- Remove bad data. Bad data points can be removed by selecting the data points and pressing or from the right-click context menu
- Repeat & mirror. Go to and fill the range, method and number of times to repeat/mirror and press OK. The start and end values must exist to use this feature.
- Filter data. You can apply basic filter/cut off to the data. and fill values and fill the column numbers separated by comma to apply the filter.
- Swap data. Go to to open the swapper mode. This will add a second line to swap with the primary editable one. Select the portion and press to swap values. All other features like dragging, smoothing out etc. are still usable in this mode. After you are done close this mode by . Also swapping data only between the different columns of the same file is allowed
- Undo/Redo. Any immediate modification can be undone by pressing or can be redone by . At this moment undo/redo only supports up to 10 steps.
- Change sign. Select data points and press to change sign of the selected points.
- Copy/Paste. You can copy all data for a particular projection and paste to others.
- General 3D plotter. A general plotter to plot 3D data is provided and can be accessed through
- Spreadsheet. This software includes a spreadsheet like editor and can be opened through with some basic features like that of MS Excel including formula support. This can be used to view, edit, copy-paste data directly. And many more...
The followings keybindings are available for this software.
- Open file.
- Add new file.
- Save file.
- Save As.
- Reload the window.
- Close the application.
- Open plot setting window.
- Toggle plot list dashboard.
- Toggle fullscreen.
- Switch between plots.
- Toggle axis of projection for 3D data.
- Auto-scale axes.
- Zoom mode.
- Selection mode.
- Move up selected points.
- Move down selected points.
- Smooth Out using Spline Interpolation.
- Smooth Out using Moving Average method.
- Smooth Out using a local Quadratic function.
- Change Sign.
- Remove selected data.
- Undo.
- Redo.
- Move slider up.
- Move slider down.
- Swap data between the selected lines.
- Quickly apply corrected approximation.
- Select intermediate points.
- Copy values from current 2D projection.
- Paste copied values.
- Repeat selected points to left or right.
- Mirror selected points to left or right.
Thank you for using my software. I would really like to hear your experience of using this application. Found a bug or want a new feature to include, contact me directly or open an issue here. Also keep an eye on the project page or repo for the latest development of the software.


Archives
Previous
Next
Total :
105
#
Name
Archive No
Add
Created/Updated
Actions
1
Archive No
.
|
1
2
3
4
5


open class DefaultLambdaFunctions
Created by Tom Needham on 03/03/2016.
class Java7Lambda<ReturnType>
Created by Tom Needham on 23/02/2016.


QuickBooks TimeSheet Upload
1. Upload TimeSheet and Lookup Table
- Upload a .xlsx file only
- Please select a Customer to Drop/Select Excel Sheet
- The Timesheet file should have the following columns: Date, Hours, Person, Budget
- The LookUp file should have the following columns: NblyName, QBOName, RateCard
2. Excel Data Import
| Date | Hours | Person | Budget | Hourly Rate | BillableStatus |
|---|


Showcasing Presentation Features. This template is ideal for very quickly creating decent presentations when content and simplicity is more important than excessive styling.
Seperate with {{ page.horizontal }} between content for horizontal slides.
Seperate with {{ page.vertical }} between content for vertical slides.
Press ESC for a zoomed out overview of the presentation.
Press B to pause the presentation.
Bold
Italics
Bold and Italics
Use MathJax for Math.
Item 1
Item 2
Item
Alt-Click to zoom.
Inline code
.
import numpy as np
def _set_colors():
HighRGB = np.array([26, 152, 80]) / 255.
War does not decide who is right, only who is left.
Now, you CAN write in HTML using this template. If you want to create HTML presentations using this framework head over to reveal.js for reference. For a power-point like interactive tool for creating presentations with this theme, check slides.com.
This text is centered.
This is a red text with blue and green inline text.


Hello, There appears to be and issue with the bpoint totals matching the oracle totals: Please investigate. Details: {{ error_report|safe }} Kind Regards Auto Generated


Email - [[${userDB.email}]]
Location - [[${userDB.country}]]
Bio - [[${userDB.bio}]]
None
This password is required if you want to use mobile version of GitPals (in progress) If you already set it up, you can replace it with a new one using this form


Quickstart¶
This page demonstrates how to use the Python module mushi
to infer mutation spectrum history and demography
We use mushi
to infer history of the mutation process, which we can think of as the mutation rate function over time for each triplet mutation type. In mushi
, we use coalescent theory and optimization techniques to learn about this history from the \(k\)-SFS: a matrix whose columns are sample frequency spectra (SFS) for each mutation type.
Imports¶
We first import the ksfs
module from the mushi
package, and a few other standard packages.
[1]:
import mushi
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
Load \(k\)-SFS data¶
\(3\)-SFS for 1000 Genomes FIN population¶
We load \(3\)-SFS data for the 1000 Genomes Finnish population, which we previously computed with the mutyper
package and saved in tabular format.
[2]:
ksfs = mushi.kSFS(file='../example_data/3-SFS.EUR.FIN.tsv')
/Users/williamdewitt/Applications/miniconda2/envs/mushidocs/lib/python3.7/site-packages/jax/lib/xla_bridge.py:116: UserWarning: No GPU/TPU found, falling back to CPU.
warnings.warn('No GPU/TPU found, falling back to CPU.')
Plot the population variant spectrum (summing the \(k\)-SFS over sample frequency)
[3]:
ksfs.as_df().sum(0).plot.bar(figsize=(17, 3))
plt.xticks(family='monospace')
plt.ylabel('number of variants');
Target sizes¶
We will also need the masked genome size for each mutation type, which we’ve also previously computed with mutyper targets
. This defines mutational target sizes.
[4]:
masked_genome_size = pd.read_csv(f'../example_data/masked_size.tsv', sep='\t', header=None, index_col=0)
masked_genome_size.index.name='mutation type'
masked_genome_size.plot.bar(figsize=(6, 3), legend=False)
plt.xticks(family='monospace')
plt.ylabel('mutational target size (sites)');
Normalized variant spectra¶
With this we can compute the number of SNPs per target in each mutation type. Notice the enrichment of C>T transitions at CpG sites.
[5]:
normalized_hit_rates = ksfs.as_df().sum(0).to_frame(name='variant count')
normalized_hit_rates['target size'] = [int(masked_genome_size.loc[context])
for context, _ in normalized_hit_rates['variant count'].index.str.split('>')]
(normalized_hit_rates['variant count'] /
normalized_hit_rates['target size']).plot.bar(figsize=(17, 3), legend=False)
plt.xticks(family='monospace')
plt.ylabel('variants per target');
Plot the SFS¶
The SFS is given by summing the rows of the \(k\)-SFS over mutation types
[6]:
ksfs.plot_total()
Plot on log scale instead of linear
[7]:
ksfs.plot_total()
plt.xscale('log')
plt.yscale('log')
Plot the \(k\)-SFS¶
Plot \(k\)-SFS composition as a scatter (a color for each mutation type)
[8]:
ksfs.plot()
Plot again using the centered log ratio transform option (clr=True
) to represent compositions over mutation types in each frequency class
[9]:
ksfs.plot(clr=True)
Use a heatmap to show the \(k\)-SFS as a matrix, colored using a compositional centralization transform. This method wraps the clustermap
function in Seaborn, and you can use keyword arguments you would use in that function. A few of note: - figsize
: a tuple giving the width and height of the figure - col_cluster
: if False
, don’t cluster the columns (giving an ordinary heatmap) -
xticklabels
: if True
, force printing of all the mutation type labels - robust
: if True
, automatically set the min and max values for the color scaling - cmap
: color map name
[10]:
ksfs.clustermap(figsize=(17, 7), xticklabels=True, robust=True, cmap='RdBu_r')
/Users/williamdewitt/Applications/miniconda2/envs/mushidocs/lib/python3.7/site-packages/seaborn/matrix.py:649: UserWarning: Clustering large matrix with scipy. Installing `fastcluster` may give better performance.
warnings.warn(msg)
Basic model parameters¶
Total mutation rate¶
To compute the total mutation rate in units of mutations per masked genome per generation, we multiply an estimate of the site-wise rate by the target size
[11]:
μ0 = 1.25e-8 * masked_genome_size[1].sum()
μ0
[11]:
25.421035375
Generation time¶
To render time in years rather than generations, we use an estimate of the generation time
[12]:
t_gen = 29
Discrete time grid¶
We define a grid of times to represent histories on, measured retrospectively from the present in units of Wright-Fisher generations.
[13]:
t = np.logspace(np.log10(1), np.log10(200000), 200)
Jointly infer demography and mutation spectrum history¶
To infer a time-calibrated mutation spectrum history (MuSH), we need to jointly estimate the demographic history, since this defines the diffusion timescale of the coalescent process.
We now run the optimization, setting a few parameters to control how complicated we let the histories look. We use the verbose=True
argument to print convergence messages.
[14]:
ksfs.infer_history(t, μ0, alpha_tv=1e2, alpha_spline=3e3, alpha_ridge=1e-4,
beta_rank=1e1, beta_tv=7e1, beta_spline=1e1, beta_ridge=1e-4,
tol=1e-11, verbose=True)
inferring η(t)
initial objective -8.183982e+07
iteration 433, objective -8.193e+07, relative change 3.190e-12
relative change in objective function 3.2e-12 is within tolerance 1e-11 after 433 iterations
inferring μ(t) conditioned on η(t)
initial objective -4.937803e+07
iteration 318, objective -4.939e+07, relative change 8.698e-12
relative change in objective function 8.7e-12 is within tolerance 1e-11 after 318 iterations
Hopefully you agree that was fast 🏎
Visualizing inferred histories¶
After inferring histories, we can access them as instance attributes of the kSFS
object: - demography: ksfs.eta
(or ksfs.η
) - MuSH: ksfs.mu
(or ksfs.μ
)
We can inspect these, and see they’re both object with base class mushi.histories.history
[15]:
print(ksfs.eta.__class__)
print(ksfs.eta.__class__.__bases__[0])
print(ksfs.mu.__class__)
print(ksfs.mu.__class__.__bases__[0])
<class 'mushi.histories.eta'>
<class 'mushi.histories.History'>
<class 'mushi.histories.mu'>
<class 'mushi.histories.History'>
We’ll now check that the demography has a few features we expect in the Finnish population: the out-of-Africa bottleneck shared by all Eurasians, a later bottleneck associated with northward migration, and exponential population growth toward the present. - The plot on the left shows fit to the SFS - The plot on the right shows the inferred haploid effective population size history.
[16]:
plt.figure(figsize=(10, 5))
plt.subplot(121)
ksfs.plot_total()
plt.xscale('log')
plt.yscale('log')
plt.subplot(122)
ksfs.eta.plot(t_gen=t_gen)
plt.xlim([1e3, 1e6]);
Now let’s take a look at the inferred mutation spectrum history (MuSH). - The plot on the left shows the measured \(k\)-SFS composition (points) and the fit from mushi
(lines) - The plot on the right shows the inferred MuSH
[17]:
plt.figure(figsize=(16, 5))
plt.subplot(121)
ksfs.plot(clr=True)
plt.subplot(122)
ksfs.μ.plot(t_gen=t_gen, clr=True, alpha=0.75)
ksfs.μ.plot(('TCC>TTC',), t_gen=t_gen, clr=True, lw=5)
plt.xscale('log')
plt.xlim([1e3, 1e6]);
We can also plot the MuSH as a heatmap with the y axis representing time (with an interface similar to the kSFS.clustermap
method above)
[18]:
ksfs.μ.clustermap(t_gen=t_gen, figsize=(17, 7), xticklabels=True, robust=True, cmap='RdBu_r')
/Users/williamdewitt/Applications/miniconda2/envs/mushidocs/lib/python3.7/site-packages/seaborn/matrix.py:649: UserWarning: Clustering large matrix with scipy. Installing `fastcluster` may give better performance.
warnings.warn(msg)
Now that you have a MuSH, you can start answering questions about mutation spectrum history!🤸


If you want to send us Feedback you can do this here. We do not collect any data about you, this is completely anonymous.


{% extends "base.html" %} {% load i18n %} {% block content %}
{% trans "Request URL" %}: {{request_path}}
{% blocktrans trimmed %} Oops. Either the URL you entered was invalid, or you stumbled on a dead link. If it was the latter, please get in touch with your course staff to let them know what you were doing when the error occurred. {% endblocktrans %}
{% url "relate-home" as relate-home %} {% blocktrans trimmed %} In the meantime, you may navigate back to the home page. {% endblocktrans %}
{% blocktrans trimmed %} Sorry, and thanks for your patience! {% endblocktrans %}
{% endblock %}


{% extends "base.html" %} {% block title %}
Medieval catalogues > SECULAR INSTITUTIONS: Secular Colleges > Winchester College > Bequest by Bishop John Holyman, 4 June 1558
{% endif %}7 identified entries found.
All data was derived from the List of Identifications by Professor Richard Sharpe.
{% if not printing %}
A key to codes used in the List is available (opens in new tab).{% endif %}


Transactors
Why Transactors?
Actors are excellent for solving problems where you have many independent processes that can work in isolation and only interact with other Actors through message passing. This model fits many problems. But the actor model is unfortunately a terrible model for implementing truly shared state. E.g. when you need to have consensus and a stable view of state across many components. The classic example is the bank account where clients can deposit and withdraw, in which each operation needs to be atomic. For detailed discussion on the topic see this JavaOne presentation.
STM on the other hand is excellent for problems where you need consensus and a stable view of the state by providing compositional transactional shared state. Some of the really nice traits of STM are that transactions compose, and it raises the abstraction level from lock-based concurrency.
Akka's Transactors combine Actors and STM to provide the best of the Actor model (concurrency and asynchronous event-based programming) and STM (compositional transactional shared state) by providing transactional, compositional, asynchronous, event-based message flows.
Generally, the STM is not needed very often when working with Akka. Some use-cases (that we can think of) are:
- When you really need composable message flows across many actors updating their internal local state but need them to do that atomically in one big transaction. Might not be often but when you do need this then you are screwed without it.
- When you want to share a datastructure across actors.
Actors and STM
You can combine Actors and STM in several ways. An Actor may use STM internally so that particular changes are guaranteed to be atomic. Actors may also share transactional datastructures as the STM provides safe shared state across threads.
It's also possible to coordinate transactions across Actors or threads so that either the transactions in a set all commit successfully or they all fail. This is the focus of Transactors and the explicit support for coordinated transactions in this section.
Coordinated transactions
Akka provides an explicit mechanism for coordinating transactions across actors. Under the hood it uses a CommitBarrier, similar to a CountDownLatch.
Here is an example of coordinating two simple counter UntypedActors so that they both increment together in coordinated transactions. If one of them was to fail to increment, the other would also fail.
import akka.actor.ActorRef;
public class Increment {
private ActorRef friend = null;
public Increment() {}
public Increment(ActorRef friend) {
this.friend = friend;
}
public boolean hasFriend() {
return friend != null;
}
public ActorRef getFriend() {
return friend;
}
}
import akka.actor.*;
import akka.transactor.*;
import scala.concurrent.stm.Ref;
import scala.concurrent.stm.japi.STM;
public class CoordinatedCounter extends UntypedActor {
private Ref.View<Integer> count = STM.newRef(0);
public void onReceive(Object incoming) throws Exception {
if (incoming instanceof Coordinated) {
Coordinated coordinated = (Coordinated) incoming;
Object message = coordinated.getMessage();
if (message instanceof Increment) {
Increment increment = (Increment) message;
if (increment.hasFriend()) {
increment.getFriend().tell(
coordinated.coordinate(new Increment()), getSelf());
}
coordinated.atomic(new Runnable() {
public void run() {
STM.increment(count, 1);
}
});
}
} else if ("GetCount".equals(incoming)) {
getSender().tell(count.get(), getSelf());
} else {
unhandled(incoming);
}
}
}
import akka.actor.*;
import scala.concurrent.Await;
import static akka.pattern.Patterns.ask;
import akka.transactor.Coordinated;
import akka.util.Timeout;
import static java.util.concurrent.TimeUnit.SECONDS;
ActorSystem system = ActorSystem.create("CoordinatedExample");
ActorRef counter1 = system.actorOf(Props.create(CoordinatedCounter.class));
ActorRef counter2 = system.actorOf(Props.create(CoordinatedCounter.class));
Timeout timeout = new Timeout(5, SECONDS);
counter1.tell(new Coordinated(new Increment(counter2), timeout), ActorRef.noSender());
Integer count = (Integer) Await.result(
ask(counter1, "GetCount", timeout), timeout.duration());
To start a new coordinated transaction that you will also participate in, create a Coordinated object, passing in a Timeout:
Timeout timeout = new Timeout(5, SECONDS);
Coordinated coordinated = new Coordinated(timeout);
To start a coordinated transaction that you won't participate in yourself you can create a Coordinated object with a message and send it directly to an actor. The recipient of the message will be the first member of the coordination set:
actor.tell(new Coordinated(new Message(), timeout), ActorRef.noSender());
To include another actor in the same coordinated transaction that you've created or received, use the coordinate method on that object. This will increment the number of parties involved by one and create a new Coordinated object to be sent.
actor.tell(coordinated.coordinate(new Message()), ActorRef.noSender());
To enter the coordinated transaction use the atomic method of the coordinated object, passing in a java.lang.Runnable.
coordinated.atomic(new Runnable() {
public void run() {
// do something in the coordinated transaction ...
}
});
The coordinated transaction will wait for the other transactions before committing. If any of the coordinated transactions fail then they all fail.
Note
The same actor should not be added to a coordinated transaction more than once. The transaction will not be able to complete as an actor only processes a single message at a time. When processing the first message the coordinated transaction will wait for the commit barrier, which in turn needs the second message to be received to proceed.
UntypedTransactor
UntypedTransactors are untyped actors that provide a general pattern for coordinating transactions, using the explicit coordination described above.
Here's an example of a simple untyped transactor that will join a coordinated transaction:
import akka.transactor.*;
import scala.concurrent.stm.Ref;
import scala.concurrent.stm.japi.STM;
public class Counter extends UntypedTransactor {
Ref.View<Integer> count = STM.newRef(0);
public void atomically(Object message) {
if (message instanceof Increment) {
STM.increment(count, 1);
}
}
@Override public boolean normally(Object message) {
if ("GetCount".equals(message)) {
getSender().tell(count.get(), getSelf());
return true;
} else return false;
}
}
You could send this Counter transactor a Coordinated(Increment) message. If you were to send it just an Increment message it will create its own Coordinated (but in this particular case wouldn't be coordinating transactions with any other transactors).
To coordinate with other transactors override the coordinate method. The coordinate method maps a message to a set of SendTo objects, pairs of ActorRef and a message. You can use the include and sendTo methods to easily coordinate with other transactors.
Here's an example of coordinating an increment, using an untyped transactor, similar to the explicitly coordinated example above.
import akka.transactor.*;
import java.util.Set;
import scala.concurrent.stm.Ref;
import scala.concurrent.stm.japi.STM;
public class FriendlyCounter extends UntypedTransactor {
Ref.View<Integer> count = STM.newRef(0);
@Override public Set<SendTo> coordinate(Object message) {
if (message instanceof Increment) {
Increment increment = (Increment) message;
if (increment.hasFriend())
return include(increment.getFriend(), new Increment());
}
return nobody();
}
public void atomically(Object message) {
if (message instanceof Increment) {
STM.increment(count, 1);
}
}
@Override public boolean normally(Object message) {
if ("GetCount".equals(message)) {
getSender().tell(count.get(), getSelf());
return true;
} else return false;
}
}
To execute directly before or after the coordinated transaction, override the before and after methods. They do not execute within the transaction.
To completely bypass coordinated transactions override the normally method. Any message matched by normally will not be matched by the other methods, and will not be involved in coordinated transactions. In this method you can implement normal actor behavior, or use the normal STM atomic for local transactions.
Contents


Junior Full Stack Developer
Goal-oriented, multi-lingual Junior Developer with strong commitment to collaboration and
solutions-oriented problem-solving. Employing various technologies and frameworks to develop
customer-focused websites and designs. Committed to high standards of web design, user
experience, usability and speed for multiple types of end-users. Motivated and hardworking able
to work well under pressure, consistently meet deadlines, and quickly resolve issues. Talented
at working effectively in collaborative and self-motivated environments.
Technologies
- HTML5
- CSS3
- JavaScript
- JQuery
- React.js
- SASS
- Node.js
- Express.js
- MySQL
- Sequelize
- MongoDB
- Mongoose
- WordPress
- PHP/Laravel
- Java
- Git Version Control
- Passport.js
- REST
Work Experience
Full Stack Coding Bootcamp, DU
2019-2019
-
Completed 12-week intensive coding boot camp course.
-
Learned the essentials of software development and several tools and
technologies.
-
Created 3 Full Stack applications, each completed within 25 work hours.
-
Worked in small teams employing Agile concepts, Trello, and GitHub to manage
workflow.
Epower Solutions, LTD
2017-2019
-
Inventory Management System – Created and implemented an efficient Inventory
Management System that boosted company productivity and reduced unnecessary
spending.
-
Inventory Manager – Oversaw 3 inventory techs, worked as a team under pressure to keep
a stocked inventory with heavy item rotation, trained new techs.
-
Desktop Support/Multiplatform Experience – Proficient in Windows, OS X, and
Linux.
-
Troubleshooting – Hardware and software malfunctions on laptops, desktops, and other
electronics.
-
Troubleshooting/Refurbishing – Hardware and software malfunctions on Apple laptops and
desktops ranging from 2008 to 2016.
-
Fast Paced Environment – Worked under pressure to meet deadlines on orders that
required hundreds of recertified Apple computers.
-
Warehouse Experience – Lifted heavy loads and used warehouse equipment.
MSU Denver Computer Labs
2014-2015
-
Customer Service – Provided technical aid to students in both Windows and OS X
environments, cordially answered any questions to the best of my knowledge.
-
Learning – Attended regular trainings to remain updated and capable to continue
providing quality technical support.
Education
University of Denver
2019-2019
Full Stack Coding Bootcamp - Full Time Class
Metropolitan State University of Denver
2017-Present
Computer Science Undergradute Program
University of Denver
2012-2013
Computer Science & Engineering undergraduate Program
Certifications
Full Stack Developer (University of Denver)
CompTIA A+


kneesspal
on 2012-06-21 00:27:39
Guergenug
on 2012-06-16 21:29:42
originalll
on 2012-03-28 07:37:35
Arignmor
on 2011-11-09 08:41:36
Otherne1981
on 2011-09-11 11:05:55
Merfits1982
on 2011-09-11 07:41:15
zolkivy1992
on 2011-09-11 07:05:17
greaste1980
on 2011-09-11 06:29:54
soonync1982
on 2011-09-11 05:55:40
niduame1990
on 2011-09-11 05:20:56
Agreern1991
on 2011-09-11 04:46:07
pourrex1981
on 2011-09-11 04:11:23
entaila1987
on 2011-09-11 03:33:51
Otherne1981
on 2011-09-11 01:05:09
Merfits1982
on 2011-09-11 00:22:27
greaste1980
on 2011-09-10 23:38:53
greaste1980
on 2011-09-10 22:50:28
soonync1982
on 2011-09-10 22:08:07
niduame1990
on 2011-09-10 21:29:04
Agreern1991
on 2011-09-10 20:46:24
pourrex1981
on 2011-09-10 20:05:45
entaila1987
on 2011-09-10 19:24:50
Otherne1981
on 2011-09-10 01:10:50
Otherne1981
on 2011-09-10 00:25:58
Merfits1982
on 2011-09-09 19:26:12
zolkivy1992
on 2011-09-09 18:49:04
soonync1982
on 2011-09-09 17:47:59
niduame1990
on 2011-09-09 17:04:38
Agreern1991
on 2011-09-09 16:26:24
pourrex1981
on 2011-09-09 15:50:30
entaila1987
on 2011-09-09 15:16:21
Merfits1982
on 2011-09-09 08:33:36
zolkivy1992
on 2011-09-09 07:48:39
greaste1980
on 2011-09-09 07:02:12
soonync1982
on 2011-09-09 06:15:51
niduame1990
on 2011-09-09 05:30:09
Agreern1991
on 2011-09-09 04:43:32
pourrex1981
on 2011-09-09 03:55:46
entaila1987
on 2011-09-09 03:09:13
Brett Zamir
on 2011-08-06 16:20:50
I assume the compiler might be looking for the text "function_name", so I changed that variable name in the function as a workaround. See if that works...
Bug in function_exists
on 2011-08-05 22:44:40
Hi guys
Firstly thanks for a great little script!
I am a php programmer and having phpjs is great!
I downloaded the latest version of phpjf and found a bug with the function_exists() function.
When it is compiled the function definition looks like this
function_exists: function (_name: function) {
which causes an error.
I don't think its an actual bug in the code, its just in the compilation of the package :)
Thanks again guys
Have a great day
Plefand
on 2011-08-01 14:32:44
Soivory
on 2011-06-20 04:17:27
pleabok
on 2011-06-17 09:05:59
Impatty
on 2011-06-12 23:05:14
noptets
on 2011-06-10 04:22:23
Kevin van Zonneveld
on 2008-12-30 11:24:24
@ Brett Zamir: Thanks Brett. I've added the functions. I do have the idea they could be standardized & improved a bit though, but I'll leave that up to the 'future us' :) Let those guys handle it.
Seriously though: I think the class_exists example I've made should return true, but it doesn't. That's a good one to start with.
Brett Zamir
on 2008-12-23 06:42:29
Added one last condition which will find if there is a static members on the class to which an object belongs, as well as some example tests for it as well:
myClass2.prototype.instanceMethod = function () {}
myClass2.prototype.mine = 'my member';
var_dump(property_exists(new myClass2, 'mine')); //true
var_dump(property_exists(new myClass2, 'xpto')); //true, as of PHP 5.3.0
var_dump(property_exists(new myClass2, 'bar')); //false
var_dump(property_exists(new myClass2, 'staticProp')); //true, as of PHP 5.3.0
var_dump(property_exists(new myClass2, 'staticMethod')); //false
var_dump(property_exists(new myClass2, 'instanceMethod')); //false
var myclass2 = new myClass2();
myclass2.staticMethod(); // doesn't exist
function property_exists (cls, prop) {
cls = (typeof cls === 'string') ? window[cls] : cls;
if (typeof cls === 'function' && cls.toSource && cls.toSource().match(new RegExp('this\\.'+prop+'\\s'))) { // Hackish and non-standard but can probably detect if setting the property (we don't want to test by instantiating as that may have side-effects)
return true;
}
return (cls[prop] !== undefined && typeof cls[prop] !== 'function') || (cls.prototype !== undefined && cls.prototype[prop] !== undefined && typeof cls.prototype[prop] !== 'function') || cls.constructor && cls.constructor[prop] !== undefined && typeof cls.constructor[prop] !== 'function';
}
Brett Zamir
on 2008-12-23 06:24:45
And here's one for property_exists(), based on PHP doc examples:
var myClass = {
mine : {},
xpto : {},
test : function () {
var_dump(property_exists('myClass', 'xpto')); // true
}
}
var_dump(property_exists('myClass', 'mine')); //true
var_dump(property_exists('myClass', 'xpto')); //true
var_dump(property_exists('myClass', 'bar')); //false
var_dump(property_exists('myClass', 'test')); // false (PHP considers methods as distinct from properties)
myClass.test(); // true
function myClass2 () {
this.xpto = 'something';
}
myClass2.staticProp = 'staticValue';
myClass2.staticMethod = function () {
var_dump(property_exists('myClass2', 'xpto')); // true
}
myClass2.prototype.instanceMethod = function () {}
myClass2.prototype.mine = 'my member';
var_dump(property_exists('myClass2', 'mine')); //true
var_dump(property_exists(new myClass2, 'mine')); //true
var_dump(property_exists('myClass2', 'xpto')); //true, as of PHP 5.3.0
var_dump(property_exists('myClass2', 'bar')); //false
var_dump(property_exists('myClass2', 'staticProp')); //true, as of PHP 5.3.0
var_dump(property_exists('myClass2', 'staticMethod')); //false
var_dump(property_exists('myClass2', 'instanceMethod')); //false
myClass2.staticMethod(); // true
function property_exists (cls, prop) {
cls = (typeof cls === 'string') ? window[cls] : cls;
if (typeof cls === 'function' && cls.toSource && cls.toSource().match(new RegExp('this\\.'+prop+'\\s'))) { // Hackish and non-standard but can probably detect if setting the property (we don't want to test by instantiating as that may have side-effects)
return true;
}
return (cls[prop] !== undefined && typeof cls[prop] !== 'function') || (cls.prototype !== undefined && cls.prototype[prop] !== undefined && typeof cls.prototype[prop] !== 'function');
}
Brett Zamir
on 2008-12-23 05:43:27
Here's a slightly hackish and partially non-standard way to get class_exists(). Of course, any function can be instantiated in JavaScript, but I've attempted to do a hopefully more sophisticated checking to see whether it was designed as one.
function A (z) {this.z=z}
alert(class_exists('A')); // true (constructor sets 'this')
var a = new A('str');
alert(class_exists('a')); // false (objects not classes)
function B () {}
B.c = function () {}; // Add a static method, making it a class
alert(class_exists('B')); // true
function C () {}
C.prototype.z = function () {};
alert(class_exists('C')); // true
function D (b) {}
alert(class_exists('D')); // false (seems like a regular function)
var e = {
E : function (z) {this.z=z;}
}
alert(class_exists('e.E')); // false (the 'this' refers to containing object, not to an instance property)
function class_exists (cls) {
cls = window[cls]; // Note: will prevent inner classes
if (typeof cls !== 'function') {return false;}
for (var i in cls.prototype) {
return true;
}
for (var i in cls) { // If static members exist, then consider a "class"
if (i !== 'prototype') {
return true;
}
}
if (cls.toSource && cls.toSource().match(/this\./)) { // Hackish and non-standard but can probably detect if setting a property (we don't want to test by instantiating as that may have side-effects)
return true;
}
return false;
}
Brett Zamir
on 2008-12-23 04:52:59
Fixing an error and adding more examples:
function Directory () {}
Directory.test = function () {}
Directory.prototype.read = function () {}
$directory = new Directory('.');
alert(true === method_exists($directory,'read')); // true
alert(true === method_exists($directory,'write')); // false
alert(true === method_exists('Directory','test')); // true
alert(true === method_exists('Directory','read')); // false
alert(true === method_exists($directory,'test')); // false
function method_exists (obj, method) {
if (typeof obj === 'string') {
return window[obj] && typeof window[obj][method] === 'function'
}
return typeof obj[method] === 'function';
}
Brett Zamir
on 2008-12-20 12:05:37
Sorry, neglected to see a string was allowable to test for a static method:
function Directory () {}
Directory.test = function () {}
Directory.prototype.read = function () {}
$directory = new Directory('.');
alert(true === method_exists($directory,'read')); // true
alert(true === method_exists($directory,'write')); // false
alert(true === method_exists('Directory','test')); // true
function method_exists (obj, method) {
if (typeof obj === 'string') {
return typeof window[obj][method] === 'function'
}
return typeof obj[method] === 'function';
}
Brett Zamir
on 2008-12-20 11:59:33
Here's another one more related to the function here...
Sample based on PHP manual...
function Directory () {}
Directory.prototype.read = function () {}
$directory = new Directory('.');
alert(true === method_exists($directory,'read')); // true
alert(true === method_exists($directory,'write')); // false
function method_exists (obj, method) {
return typeof obj[method] === 'function';
}
Kevin van Zonneveld
on 2008-12-17 14:34:07
@ Brett Zamir: get_defined_functions... I must say, sometimes I'm really surprised what you guys come up with :) But it works! I have even hacked a testcase around it. Thanks again.
Brett Zamir
on 2008-12-17 05:12:14
Here's one more...
function get_defined_functions() {
var arr = [];
for (var i in window) {
try {
if (typeof window[i] === 'function') {
arr.push(window[i].name);
}
}
catch (e) {
}
}
return arr;
}
alert(get_defined_functions());
Kevin van Zonneveld
on 2008-01-15 08:29:19
@ Andrea Giammarchi: Wow you did some impressive work that I was unaware of. Cool :) I will look into the define function later today and add it here, thanks a lot for that.
About the PHP vs JS stuff.. I'm not trying to port or emulate the entire language or control structures of PHP. Indeed I don't see the need because (and this is quite a statement), Javascript seems to have more elegant features in that category anyway.
However in my eyes, PHP does provide a large set of standard functions that make developing very easy, and some of them don't have good standard Javascript implementations, though they often would be great to have client-side.
So in this project by also providing the functions separately, I hope to keep people from inventing the wheel and give them a head start.
Thanks for your comment Andrea, well appreciated. And respect for your Overbyte editor & JHP environment. The idea is very interesting, and I can see it's all coded with very high skill.
Andrea Giammarchi
on 2008-01-14 23:02:35
If you are interested in some similar stuff, looks for JHP setting in overbyte editor.
Finally, You could use my define function too, that accept only scalar values as PHP and is compatible with IE, FireFox, Safari and Opera (Opera devs will fix soon their const keyword ... I guess ...)
http://webreflection.blogspot.com/2007/10/cow-javascript-define-php-like-function.html
However, nice stuff .. not so useful in my mind because of different languages nature (I would like to have JS behaviours in PHP, for example :D) but good luck for the project
Legaev Andrey
on 2008-01-08 11:10:45
@ Kevin: I'm sorry. Not necessary to enlist my email. I did not think about spammers :)
Kevin van Zonneveld
on 2008-01-07 15:44:28
@ Legaev Andrey: Hi, I've updated the function and changed your name. I wasn't sure you really want me to enlist your email address?
Legaev Andrey (aka Andrey)
on 2008-01-07 15:19:44
Sorry for my short previous comment and my bad English. Below full version.
If we pass function_name as String then all ok. But if we pass the link to function (link to Object-function) then
this function returns false. In my opinion in this case this function should return true when first
parameter is instance of Function.
function function_exists_new( function_name ) {
if (typeof function_name == \'string\')
return (typeof window[function_name] == \'function\');
else
return (function_name instanceof Function);
}
P.S. Please, change my name to Legaev Andrey<EMAIL_ADDRESS>Thanks.
Kevin van Zonneveld
on 2008-01-06 13:00:45
@ Cord: Thanks for noticing. Fixed!
Cord
on 2008-01-06 03:54:43
>>function is_array() {
should be
>>function is_array(a) {
Kevin van Zonneveld
on 2008-01-04 13:49:34
@ Steve Clay & Andrey: Thanks You guys I've updated the function. I left the old code in the comments for future reference.
Andrey
on 2008-01-04 09:30:09
>return (typeof window[function_name] == 'function');
Object-function may be defined as not a member of Window object.
Steve Clay
on 2008-01-04 04:54:15
return (typeof window[function_name] == 'function');


Go ahead and use that crazy new ingredient that you found at the store and don't know how to use! We've got you covered. Just enter the ingredient to peruse recipe videos that show you how to cook with it...
Find beauty articles from Byrdie.com! You can save articles and add notes to them...
Diabetes is rapidly spreading throughout the US population and we felt that physicians needed a place to collaborate. Hence, DIAlogs! Here physicians can upload data from the patients Dexcom systems and other patient history to find out what other physicians have done with similar patients using a comment feed...
Hey y'all! Thanks for visiting! I am a web developer with a love of UI/UX, Back-End and everything in between. The best feeling is watching your creations come to life. I get a lot of inspiration from my neighborhood, Inman Park, in Atlanta. I enjoy constructing fun, clean, and easy to navigate applications. I love working in teams and learning from other developers. I will never stop learning! Checkout out the link to my blog in the "Connect with me..." section and follow me on my learning journey!
If you are interested in my work or collaborating, let's chat!


YouTube Music adds 19 playlists to celebrate the '10s
by Rita El KhouryGoogle is putting its weight behind YouTube Music and trying to bolster the service's incentives before Play Music's rather inevitable demise. Part of this strategy involves adding plenty of interesting playlists to keep users entertained with hours and hours of music. Among these recent additions are 19 playlists dedicated to the best songs from this decade.
These '10s playlists span a selection of genres, from the all-encompassing '10s Hits to a multitude of dance, EDM, and electronic styles, plus some "adult" playlists that contain explicit songs. Not that the regular playlists don't, but I'm sure there's some a hidden mysterious logic behind Google's ways.
The playlists may vary by country. To check the ones for you, open YouTube Music and look for a "Songs of the decade" row on your homescreen. If you don't see it, try searching for "10s" and look for the playlists made by YouTube Music. Otherwise, we've got the links for the US-centric playlists for you below. You can add them to your library regardless of your location and account country. Expect 100 songs on average in each one.
- '10s Adult Alternative
- '10s Adult R&B
- '10s Alternative
- '10s Christian
- '10s Country
- '10s Dance
- '10s EDM
- '10s Electronic
- '10s Gospel
- '10s Hip Hop
- '10s Hits
- '10s Indie
- '10s Jazzy & Beyond
- '10s Pop
- '10s Pop Latino
- '10s R&B
- '10s Reggae
- '10s Rock
- '10s Urbano Latino
Source:
Reddit


---
layout: article
title: Resources
---
Club Websites
Club Wiki - This is our collaboration and resource sharing site.
Slack - Our current method of communication outside of meetings.
MyiClub - Our current system of record for portfolios and finances.
CyIC YouTube - Videos and more from CyIC.
Analysis Tools
Data Sets
SEC Edgar - Look up official company reports and filings
Alphavantage - API for stock prices and company info.


Browser Games
A collection of games to play in a web browser.
Chess
LINK TO SECOND GAME
chess game issues


Speakers notes go here.
Conflict-free Replicated Data Types
(2011)
Strong eventual consistency
Collaborative Editing
Optimistic UI
Offline First
Connection === Number of Clients
Minimize Concurrent Connections
Reduce Server Downtime


|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.izforge.izpack.PackFile
public class PackFile
Encloses information about a packed file. This class abstracts the way file data is stored to package.
| Field Summary | |
|---|---|
private java.util.Map |
additionals
Additional attributes or any else for customisation |
private java.lang.String |
condition
condition for this packfile |
private boolean |
isDirectory
True if file is a directory (length should be 0 or ignored) |
private long |
length
The length of the file in bytes |
private long |
mtime
The last-modification time of the file. |
long |
offsetInPreviousPack
|
private java.util.List<OsConstraint> |
osConstraints
The target operating system constraints of this file |
private int |
override
Whether or not this file is going to override any existing ones |
static int |
OVERRIDE_ASK_FALSE
|
static int |
OVERRIDE_ASK_TRUE
|
static int |
OVERRIDE_FALSE
|
static int |
OVERRIDE_TRUE
|
static int |
OVERRIDE_UPDATE
|
private boolean |
pack200Jar
True if the file is a Jar and pack200 compression us activated. |
java.lang.String |
previousPackId
|
protected java.lang.String |
relativePath
The Path of the file relative to the given (compiletime's) basedirectory. |
(package private) static long |
serialVersionUID
|
private long |
size
The size of the file used to calculate the pack size |
java.lang.String |
sourcePath
Only available when compiling. |
private java.lang.String |
targetPath
The full path name of the target file |
| Constructor Summary | |
|---|---|
PackFile(java.io.File baseDir,
java.io.File src,
java.lang.String target,
java.util.List<OsConstraint> osList,
int override)
Constructs and initializes from a source file. |
|
PackFile(java.io.File baseDir,
java.io.File src,
java.lang.String target,
java.util.List<OsConstraint> osList,
int override,
java.util.Map additionals)
Constructs and initializes from a source file. |
|
PackFile(java.io.File src,
java.lang.String relativeSourcePath,
java.lang.String target,
java.util.List<OsConstraint> osList,
int override,
java.util.Map additionals)
Constructs and initializes from a source file. |
| Method Summary | |
|---|---|
static java.lang.String |
computeRelativePathFrom(java.io.File baseDir,
java.io.File file)
Builds the relative path of file to the baseDir. |
java.util.Map |
getAdditionals()
Returns the additionals map. |
java.lang.String |
getCondition()
|
java.lang.String |
getRelativeSourcePath()
The Path of the file relative to the given (compiletime's) basedirectory. |
java.lang.String |
getTargetPath()
The full path name of the target file, using '/' as fileseparator. |
boolean |
hasCondition()
|
boolean |
isBackReference()
|
boolean |
isDirectory()
|
boolean |
isPack200Jar()
|
long |
lastModified()
The last-modification time of the file. |
long |
length()
The length of the file in bytes |
java.util.List<OsConstraint> |
osConstraints()
The target operating system constraints of this file |
int |
override()
Whether or not this file is going to override any existing ones |
void |
setCondition(java.lang.String condition)
|
void |
setLoosePackInfo(boolean loose)
|
void |
setPack200Jar(boolean pack200Jar)
|
void |
setPreviousPackFileRef(java.lang.String previousPackId,
java.lang.Long offsetInPreviousPack)
|
long |
size()
The size of the file in bytes (is the same as the length if it is not a loose pack) |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
static final long serialVersionUID
public static final int OVERRIDE_FALSE
public static final int OVERRIDE_TRUE
public static final int OVERRIDE_ASK_FALSE
public static final int OVERRIDE_ASK_TRUE
public static final int OVERRIDE_UPDATE
public transient java.lang.String sourcePath
protected java.lang.String relativePath
private java.lang.String targetPath
private java.util.List<OsConstraint> osConstraints
private long length
private transient long size
private long mtime
private boolean isDirectory
private int override
private java.util.Map additionals
public java.lang.String previousPackId
public long offsetInPreviousPack
private boolean pack200Jar
private java.lang.String condition
| Constructor Detail |
|---|
public PackFile(java.io.File baseDir, java.io.File src, java.lang.String target, java.util.List<OsConstraint> osList, int override) throws java.io.FileNotFoundException
baseDir
- the baseDirectory of the Fileselection/compilation or nullsrc
- file which this PackFile describestarget
- the path to install the file toosList
- OS constraintsoverride
- what to do when the file already exists
java.io.FileNotFoundException
- if the specified file does not exist.public PackFile(java.io.File src, java.lang.String relativeSourcePath, java.lang.String target, java.util.List<OsConstraint> osList, int override, java.util.Map additionals) throws java.io.FileNotFoundException
src
- file which this PackFile describesrelativeSourcePath
- the path relative to the compiletime's basedirectory, use computeRelativePathFrom(File, File) to compute this.target
- the path to install the file toosList
- OS constraintsoverride
- what to do when the file already existsadditionals
- additional attributes
java.io.FileNotFoundException
- if the specified file does not exist.public PackFile(java.io.File baseDir, java.io.File src, java.lang.String target, java.util.List<OsConstraint> osList, int override, java.util.Map additionals) throws java.io.FileNotFoundException
baseDir
- The Base directory that is used to search for the files. This is used to build the relative path'ssrc
- file which this PackFile describestarget
- the path to install the file toosList
- OS constraintsoverride
- what to do when the file already existsadditionals
- additional attributes
java.io.FileNotFoundException
- if the specified file does not exist.| Method Detail |
|---|
public static java.lang.String computeRelativePathFrom(java.io.File baseDir, java.io.File file)
baseDir
- The Base Directory to build the relative path fromfile
- the file inside basDir
public void setPreviousPackFileRef(java.lang.String previousPackId, java.lang.Long offsetInPreviousPack)
public final java.util.List<OsConstraint> osConstraints()
public final long length()
public final long size()
public final long lastModified()
public final int override()
public final boolean isDirectory()
public final boolean isBackReference()
public final java.lang.String getTargetPath()
public java.lang.String getRelativeSourcePath()
public java.util.Map getAdditionals()
public java.lang.String getCondition()
public void setCondition(java.lang.String condition)
condition
- the condition to setpublic boolean hasCondition()
public boolean isPack200Jar()
public void setPack200Jar(boolean pack200Jar)
public void setLoosePackInfo(boolean loose)
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


Product
(current)
Dealers
Contact
Support
Search
User
{{ __('Logout') }}
@csrf
Previous
Next
Category
@foreach($kt as $kat)
{{$kat->kategori}}
@endforeach
@foreach($item as $items)
{{$items -> merek}} {{$items -> tipe}}
{{$items -> harga}}
{{$items -> isi}}
More Info
@endforeach


 I was with my bro', Oskar and we were shooting whiskey and drinking our 40's, just chillin' and smokin'. At about 11 p.m. we were extremely crunk (chronically-drunk) and we realized that we still had a couple of hits of acid that we'd picked up earlier that day. We dosed together out of his front porch while enjoying our cigarettes. About 40 minutes later we both started to feel it kicking it, i became aware of my muscles and they left strained but it was pleasurable. We also couldnít stop smiling, it was like our faces were suspended in a permanent smile, we looked like morons.
A little after I was takin' a piss and smoking at the same time when I saw something near the cherry of my cigarette. I don't know how I came to this but I decided my rig had aids so I yelled and tossed it in the toilet and flushed it. I had no idea at this point where my brother was. A few minutes later, after smoking another splif, my armpit started to feel itchy, so I went to look at it in the bathroom mirror. I saw red worms crawling around the hair under my arm so I started yelling and clawing at my armpit. My bro' fell into the bathroom and asked me what was happening. I told him my armpit had aids and he started getting really worried like he believed me. Seconds later a sober girl who was there assured me that nothing was wrong with my armpit.
We then went into our friend's living room which has this flower wallpaper. Oskar lay on the floor and started staring at it while having a rig, a couple of other people were in the room listening to some music and drinking. The room was quite smoky and as I sat next to Oskar I began to see little green things floating in the air. They looked like germs so I told him, and he replied that he didnít see anyone. Then he took a deep breath and I saw him inhale the germs that were quite thick in the air. I started trippin' hard and yelling about the germs and how we're all infected. Eventually people calmed me down and I decided to go to dunkin' donuts with Oskar. I ordered a turkey sandwich and a coffee, he had no money so he didnít get anything. Halfway through my sandwich I thought it too had aids so I yelled and ran to the bathroom to rinse my mouth out while Oskar ate the sandwich.
By the time we got back to our friend's house it was about 4:30 am and we were almost down. At about 6 am we were the only ones up having coffee that we made and having rigs, reminiscing of our trip that ended just hours ago. The point of the whole thing is, before that night, neither of us had done anything but hash, pot and alcohol. That night was the turning point in our lives that turned us into drug users and opened our eyes to the fact that where was a completely different world, an alternate dimension and it was over-all very pleasurable and enlightening...do acid! Peace
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


by Ayah Eid
by Aya Eid
Books upon books of knowledge accumulated over the last 50 years lay precariously around professor Teh-Kuang Chang’s office.
The 93-year-old professor of political science has garnered experience and knowledge in his last five decades at Ball State.
What was once a private college for prospective teachers, is now a public university that offers 190 majors and 130 minors. Chang, who is one of the original members of the political science department, has not only seen the university change, he played a role in it.
While Chang was born in China, he came to the United States for college. After his graduation, put his bachelor and masters degrees in political science and his PhD in international relations to use.
“I want to devote myself to the people for a world of peace and human harmony,” Chang said.
In 1979 Chang advised former Indiana Gov. Otis Bowen to strengthen relations with Taiwan. Because of this, Indiana and Taiwan began a sister-state relationship, which led to the U.S. support of the province and the importation of Indiana’s soybeans to Taiwan.
“[In] Ohio, Illinois, the price [of soybeans] is much cheaper than Indiana but Taiwan people buy from Ohio or Illinois? No, they buy from Indiana,” Chang said. “Why would they buy the more expensive? You sell something to stranger or you sell something to a sister?  No, Indiana is [Taiwan’s] sister.”
But Chang’s advising didn’t stop on the state level.
While Ronald Reagan was president, the Cold War, which ran from 1947 to 1999, was ongoing. During this time, the U.S. and the Soviet Union worked against each other to prevent the expansion of each other’s economic ideologies.
Reagan, who referred to the Soviet Union as an “evil empire,” increased defense spending, which brought about an arms race with the Soviet Union as they both attempted to build a stronger military than the other. In 1985, Reagan invited scholars to the White House to devise a plan to ease tensions with the Soviet Union.
Chang was one of those scholars.
“In 1985, Ronald Reagan wanted me to talk to him about the Soviet Union. He wanted advice from all the scholars,” Chang said.
Although many of the scholars criticized the president, using a speech he made comparing the U.S. to Star Wars to discredit him and his efforts, Chang devised a plan for Reagan to use.
“Many criticized him [and] said to him, ‘You are no good because you [believe in] Star Wars. He’s a joke from a movie.’ I supported him,” Chang said. “I said , ‘You help the nation. Create an idea to beat the Soviet Union not by war but by your strategy.”
Chang, who advocates for peaceful tactics and diplomacy, argued that by creating a better relationship with the Soviets, tensions would lessen.
“As long as as human being treats another like a human being [and] not an animal [then there is] no problem,” Chang said.
Chang began his Ball State career in 1966. Since then, he has abolished policies and initiated programs such as the International Studies, Latin American Studies, African Studies and Asian Studies programs.
“Before it was the Teachers College. I’m the founding professor of political science. Before they don’t offer political science. Before, all the courses were led by me. We [now] have all the courses. Before we didn’t,” Chang said.
In addition to adding more political science classes, Chang also helped bring in a more diverse staff. Ball State once had a policy in place that prevented non-citizen professors from getting tenure. After talking to President John Emens, Chang received news that the policy had been abolished and that he was now a tenured professor.
“[I said], ‘Foreigners are definitely good ones,” Chang said. “No matter how good he [is], you can’t hire [him]? I don’t know how I am good or not but Eisenstein, he’s a scientist, [but] it’s impossible [for him to work] at Ball State. He’s from Germany.”Though he has 53 years at the university under his belt, Chang does not plan on retiring. He will continue to teach his political science courses: American Foreign Policy, International Relations and Asian and Pacific Studies.
“This is my payback. I have one more minute to sleep or one more minute to devise,” Chang said. “I can use my energy any minute to help mankind.”
Contact Ayah Eid with any comments at azeid@bsu.edu.


nanomsg is a socket library that provides several common communication patterns. It aims to make the networking layer fast, scalable, and easy to use.
Implemented in C, it works on a wide range of operating systems with no further dependencies.
This module implements D bindings and a convenience wrapper API for nanomsg
nanomsg is a socket library that provides several common communication patterns. It aims to make the networking layer fast, scalable, and easy to use.
Implemented in C, it works on a wide range of operating systems with no further dependencies.
nanomsg is a socket library that provides several common communication patterns. It aims to make the networking layer fast, scalable, and easy to use. Implemented in C, it works on a wide range of operating systems with no further dependencies.
This module implements D bindings and a convenience wrapper API for nanomsg


If you are trying to access scientific articles for your research or classwork, you might be interested in a bookmark that will grant access to almost any journal article your university has access to. If you're on an article's page and all you can see is the abstract for instance, clicking this bookmark will 1) redirect you to login with your student ID, and then 2) return to the article you were on, but now with full access (if the university library has a subscription to that journal).
To implement this, simply create a new bookmark and paste what's inside the following quotation marks into the bookmark's URL: "javascript:void(location.href="http://eres.library.manoa.hawaii.edu/login?url="+location.href)", where you replace http://eres.library.manoa.hawaii.edu with your own library's proxy url.
For instance, the proxy bookmark for Stanford would be "javascript:void(location.href="http://ezproxy.stanford.edu/login?url="+location.href)"
It works well with large publishing houses like Nature, ScienceDirect/Elsevier, and Wiley Online Library, but there are a few exceptions (like SpringerLink). Please email me if you have any questions or comments.
Back.


Item Details
Task: {{selectedItem.task}}
Assigned To: {{selectedItem.assignedTo}}
Due Date: {{selectedItem.dueDate}}
Dependencies: {{selectedItem.dependencies}}
Location: {{selectedItem.location}}
Urgency: {{selectedItem.urgency}}
Completed ?: {{(selectedItem.isCompleted ? "yes" : "no")}}


@@include('../styles.html') @@include('../analytics-code.html') @@include('../gtm-code.html')
@@include('../gtm-iframe-code.html')We aim to help entrepreneurs who are trying to build a marketplace where individuals or businesses can sell their services. This type of marketplace allows individuals to search and buy services, make bookings, or send requests that can be fulfilled by providers.
Our solution for service marketplaces allows service providers to manage their rates and availability in the easiest way. If you are trying to build a service marketplace, this solution is for you.


Saudi Aramco won't breach maximum weight for firms in Saudi index: Argaam
RIYADH (Reuters) - Saudi Aramco’s weighting in Saudi Arabia’s main stock index once the oil giant has listed shares is not expected to breach the maximum limit set by the Gulf kingdom’s Tadawul exchange, a senior executive said on Sunday.
“There is a ceiling for the maximum weight any listed company on the Saudi index can reach, it will be around 15%. It is unlikely that Aramco’s weight will reach the maximum level,” Argaam financial website quoted Tadawul chief executive, Khalid al-Hussan, as saying.
Saudi Aramco plans to sell 1.5% of the company to raise $25.6 billion in a deal that is the centerpiece of Crown Prince Mohammed bin Salman’s plan to raise funds to help diversify the kingdom’s oil-dependent economy.
Hosting possibly the biggest initial public offering in history will be a huge leap for Tadawul for the 12-year-old exchange that only admitted foreign investors four years ago.
Hussan, who was speaking at a meeting with businessmen at the Riyadh Chamber of Commerce, said Aramco’s listing will help the Middle East’s largest bourse become one of the world’s top 10 biggest stock exchanges in terms of market value.


{% extends 'base.html' %} {% block content %}
* These will form into lists automatically to allow for greater readability on the recipes page. A new list item is created following each "."


Here at Pizza Mojo, we love to get feedback from our customers as to the efficiency of our services.
This is because we believe in growth through positive feedback and engagement.
Therefore, you are free to contact any one of us and share your feedback that will undoubtedly help us in broadening the optimization of our service.
CEO & Founder
An enabled leader and decision maker.
<EMAIL_ADDRESS>Main chef.
An experienced chef well versed with different cuisines.
<EMAIL_ADDRESS>Assistant chef.
A very enthusiastic and energetic chef.
<EMAIL_ADDRESS>When you contact us, we will be sure to even post the best comments so that others may view.
Daniel Pine. American football player.
Pizza Mojo saved me from a hunger disaster.
Sasha Gold. Nature Photographer.
None is better than Pizza Mojo.
4.1 average based on 254 reviews.


--- title: "Evolution-of-the-Mode-of-Transmission" author: "Frank Moriarty and Ciaran Prendergast" date: "5/18/2020" output: html_document ---
As travel restricions came into place the primary mode of infection has moved away from travel to infected regions and it became far more common to catch the virus through close contact with an infected person, such as a family-member; or through Community Transmission.


JULS
Fruits
Vegetables
Crops
Cereals
Juice
Salads
Others
Sort by:
price ↑
name ↑
price ↓
name ↓
Menu:
Fruits
Vegetables
Crops
Cereals
Juice
Salads
Others


Institution
Department
Title
Update your personal news, accomplishments, and lab events.
Search for colleagues by entering their first or last name.
CIDAR Lab
Boston University
To add a new publication, you may enter a PubMed ID, DOI, or create a custom publication.
D Densmore, R Passerone, A Sangiovanni-Vincentelli
Other Information:
Bibtex:


Built with go version go1.14.4 darwin/amd64 and JQuery 3.5.1 If you are seeing this assume you have followed README.md instructions to build and run
Avalible HTTP API
Spelling API Speller Spelling method possible status codes
{
ExactMatch [true/false],
UserInput string,
Suggestions []string,
Repeating [true/false],
MissingVowels [true/false],
MixedCase [true/false],
}
This url method has three parameters, see the user guide to understand how to use the parameters. All parameters apply for the duration of the request. They do not persist past the request.
Simple test see if service is up Hello


Click to play
Aim and click on colorful cubes to access their content
Use larger cubes to jump up and reach my project portfolio
(W, A, S, D = Move, SPACE = Jump, HOLD SPACE = Double Jump, MOUSE = Look around, ESC = Unlock mouse)


Brendan Glasson (b. 1985, Providence, RI) is a composer and multimedia artist based in
Oakland, CA, where he is an MFA candidate in the Electronic Music and Recording Media
program at Mills College. Brendan has performed works at the Centre Pompidou-Metz, the
MUDAM museum in Luxembourg, and the RISD museum in Providence, RI, and has held
residencies at the Hewnoaks Artist Colony in Lovell, ME. As a musician, he has performed with
many diverse acts, including the Providence Research Ensemble, the William Winant Percussion
Group, and Sigur Rós.


An exploration of colour inspired by movement, positivity + New York City.
Each bandana has been made and printed by hand
Show Filters
All
Bandanas
Accessories
Bags
Pocket square
£10.00
Head scarf
£17.00
Neck Scarf
£19.00
Wrist Scarf
£35.00
Back Pocket scarf
£45.00
Square
£23.00


commands
Documentation on individual commands can be see with dataset -help COMMAND_NAME
where “COMMAND_NAME” is replaced with one of the commands below –
-
init - initialize a new collection if none exists, requires a path to collection
-
create - creates a new JSON document or replace an existing one in collection
-
read - displays a JSON document to stdout
-
update - updates a JSON document in collection
-
delete - removes a JSON document from collection
-
join - brings the functionality of jsonjoin to the dataset command.
-
filter - takes a filter and returns an unordered list of keys that match filter expression
-
dotpath - reach into an object to return a value(s)
-
frames - list the data frames defined for a collection
-
frame - defines or returns a data frame
-
frame-objects - returns a frame’s object list
-
frame-grid - returns a frame’s object list as a 2D JSON array
-
reframe - redefines a data frame (updates the objects in the data frame)
-
delete-frame - remove a frame from a collection
-
keys - returns the keys to stdout, one key per line
-
haskey - returns true is key is in collection, false otherwise
-
count - returns a count of keys in a collection
-
path - given a document name return the full path to document
-
attachments - lists any attached content for JSON document
-
attach - attaches a non-JSON content to a JSON record
-
detach - returns attachments for a JSON document
-
prune - remove attachments to a JSON document
-
import-csv - import a CSV file’s rows as JSON documents
-
import-gsheet - import a Google Sheets sheet rows as JSON documents
-
export-csv - export a CSV file based on filtered results of collection records rendering dotpaths associated with column names
-
export-gsheet - export a Collection of JSON documents to Google Sheets sheet rows
-
extract - will return a unique list of unique values based on the associated dot path described in the JSON docs
-
dotpath - reach into an object to return a value(s)
-
check - will check a collection against current version
-
repair - will attempt to repair/upgrade a collection
NOTE: The options create, update can read JSON documents piped from standard in if you use the ‘-i -’ or ‘-include -’ option. Likewise keys can be read from standard input with the ‘-i -’ or ‘-include -’ options for read, list, keys and count.


DemonDice Dice Roller
Successes: {{roll.netSuccesses}}
BOTCH
TORMENT
Rolls: {{roll.rolls}}
Expected Success: {{calcData.expectedSuccesses | number:1}}
| Enh Succ | Item Bonus | Diff | Exp Succ |
| {{s[0].reqSuccesses}} | {{s[0].tool}} | {{s[0].diff}} | {{s[0].successes |number:2}} |