The Communicating Sequential Processes (CSP) domain in Ptolemy II models a system as a network of processes communicating with messages through unidirectional channels. If a process is ready to send a message, it blocks until the receiving process is ready to accept it. Similarly if a process is ready to accept a message, it blocks until the sending process is ready to send it. Thus the communication between processes is rendezvous based as both the reading and writing processes block until the other side is ready to communicate. This model of computation is non-deterministic as a process can be blocked waiting to send or receive on any number of channels. It is also highly concurrent due to the nature of the model.
The model of computation used in the CSP domain is based on the CSP model first proposed by Hoare[2] in 1978. In this model, a system is modeled as a network of processes communicating via messages along unidirectional channels. This is the only way processes can communicate as there is no shared state. The transfer of message between processes is via rendezvous, which means both the sending and receiving of a messages from a channel are blocking: i.e. the sending or receiving process stalls until the message is transferred. Some of the notation used here is borrowed from Andrews' book on concurrent programming [1], which refers to rendezvous-based message passing as synchronous message passing.
Applications for the CSP domain include resource management and high
level system modeling early in the design cycle. Resource management is often
required when modeling embedded systems, and to further support this, a
notion of time has been added to the model of computation used in the domain.
This differentiates our CSP model from those more commonly encountered,
which do not typically have any notion of time, although several versions of
timed CSP have been proposed[3]. It might thus be more accurate to refer to
the domain using our model of computation as the "Timed CSP" domain, but since
the domain can be used with and without time, it is simply referred to as the
CSP domain.
References:


---
layout: js-documentation
title: Ink.Net.Ajax_1
description: Cross Browser Ajax requests
site_root: ../
---
All samples are using Creates a new XMLHttpRequest object url
options
options.asynchronous
options.contentType
options.cors
options.validateCors
options.delay
options.evalJS
options.method
options.parameters
options.postBody
options.requestHeaders
options.sanitizeJSON
options.timeout
options.xhrProxy
options.onComplete
options.onCreate
options.onException
options.onFailure
options.onHeaders
options.onInit
options.onSuccess
options.onTimeout
Aborts the request if still running. No callbacks are called Evaluates a given string as JSON strJSON
sanitize
Gets all the HTTP headers from the response Gets an HTTP header from the response name
Gets the ajax response object Checks if a given string is valid JSON str
Loads content from a given url through an XMLHttpRequest. Shortcut function for simple AJAX use cases. Works with JSON, XML and plain text.Ink.requireModules
, please read how to use it at Ink.requireModules section
Ink.Net.Ajax class
Method name
Description
new Ajax(url, [options])
Constructor
.abort()
Aborts the request if still running. No callbacks are called
.evalJSON(strJSON, sanitize)
Evaluates a given string as JSON
.getAllHeaders()
Gets all the HTTP headers from the response
.getHeader(name)
Gets an HTTP header from the response
.getResponse()
Gets the ajax response object
.isJSON(str)
Checks if a given string is valid JSON
.load(url, callback)
Loads content from a given url through an XMLHttpRequest.
.ping(url, callback)
Loads content from a given url through an XMLHttpRequest.
.runStateChange()
Executes the state changing phase of an ajax request
.setHeaders()
Set the necessary headers for an ajax request.
.setRequestHeader(name, value)
Sets a new request header for the next http request
new Ink.Net.Ajax(url, [options])
Accepts
{% include js_samples/Ink_Net_Ajax_1.html %}
.abort()
method
.evalJSON(strJSON, sanitize)
method
Accepts
.getAllHeaders()
method
.getHeader(name)
method
Accepts
.getResponse()
method
.isJSON(str)
method
Accepts
.load(url, callback)
method
url
Request URLcallback
Callback to be executed if the request is successfulLoads content from a given url through an XMLHttpRequest.
Shortcut function for simple AJAX use cases.
url
Request urlcallback
Callback to be executed if the request is successfulExecutes the state changing phase of an ajax request
Set the necessary headers for an ajax request.
Sets a new request header for the next http request
name
Header name.value
New header value.


--- layout: input-types active: components body_css: device-preview-page title: Mobile Input Types header_title: HTML5 Input Types header_sub_title: Detailed information on how to take advantage of different HTML5 input types. news: Need icons? Check out Ionicons, our custom-built icon font made specifically for Ionic. ---
Phones and tablets do not have the benefit most desktops and laptops do, which is a large input device called the "keyboard". Virtual keyboards offered by mobile devices are physically smaller and usually more tedious to operate, but the great news is that HTML5 has already standardized a handful of input types which make them easier to use.
Taking advantage of the various HTML5 input types is extremely beneficial to the overall user experience of your app. It’s a small detail web app developers should be aware of, and with just minimal effort it makes a massive positive impact on the way your user interacts with forms. For example, if the user needs to enter a telephone number into your app, then their virtual keyboard should show a telephone keypad instead of keyboard with characters they'll never need to enter.
Not every input's expected data type is the same, and as such, it’s important to know which input to use and when. We’ve listed all the currently supported input types (links on the left) to help you when designing great app experiences.
Note: The virtual keyboard examples to the right are only images, and not actual working keyboards.
First up is the Text Input, the most common input type used. The code is pretty standard, and if you’re used to web development this input isn’t anything new. This is also the fallback if a device does not support a certain HTML input type.
{% highlight html %} {% endhighlight %}
The Email Input should be used anytime you require a user to enter an email address. It’s important to take advantage of this input type because it offers a much smoother keyboard experience, displaying the @
and .
characters within the initial keypad for quicker typing.
The Tel Input is a very unknown and underused input type. It displays a full numeric keypad, which makes for a great user experience when all that is required from the user is numbers. Take advantage of this one!
{% highlight html %} {% endhighlight %}The Search Input doesn’t do anything too different from the text input except change the standard “go” button to read “search” instead.
{% highlight html %} {% endhighlight %}The Number Input is another way to offer numbers for your users. The difference between the number input and the tel input is that also offers easy access to special characters and symbols. However, if you only need numbers entered, it’s best to stick with the tel input.
{% highlight html %} {% endhighlight %}The Date Input should be utilized for when a user is asked to enter the month, day, and year. The mobile keyboard will offer a nice interactive panel for easy entering.
{% highlight html %} {% endhighlight %}The Month Input will trigger a keyboard experience similar to the date input, however it leaves out the “day” option. Use this input when your user only needs to enter the month and year. A perfect example would be for taking credit card expiration dates.
{% highlight html %} {% endhighlight %}The Password Input is another commonly used input in normal web development. It hides the characters so nobody else can see what the user is typing.
Also note that it's being to be common practice to give users the option to show actual characters with the text input instead of hidden password characters. It’s up to you to decide if/when it’s applicable to use.
{% highlight html %} {% endhighlight %}


Sightfull Dynamics Payroll & HR’s outsourcing service is designed to relieve small and medium-sized businesses of the burden of running a payroll department. We allow you to focus on your strengths, knowing that your Payroll is efficiently, confidentially and accurately handled by an experienced Payroll Provider.
The "Sightfull Dynamics" way has an impact on everything we do. We are profoundly conscious of the difference we can make, and the difference that comes from serving you with reliability and accuracy being the corner stone of our relationship. The "Sightfull Dynamics" Way is a unique way of offering value. It’s not what one does, but how one does it that really counts.
Payroll is payroll … right? Not quite.
The payroll arena has developed into a minefield due to constant changes in taxation and labour legislation. We can administer your payroll to ensure that you comply with all regulations and ensure that you do not face the risk of penalties from the South African Revenue Service.
Sightfull Dynamics provides a TOTAL complete and comprehensive personal service for our clients by offering specialised tailor made solutions and services in the outsourcing and processing of your salaries and wages for an incredibly low, low, price.
With Sightfull Dynamics, you don’t engage with a Service Provider; you get a committed business partner who views your business as if it was our own.
For us, it’s all about being your “Best Partner”. We continue to provide our clients with better and more innovative solutions and we work closely with our clients to identify their requirements. It is our desire to develop mutually beneficial long term Relationships.
The “Sightfull Dynamics” way has an impact on everything we do. We are profoundly conscious of the difference we can make, and the difference that comes from serving you with reliability and accuracy being the corner stone of our relationship. The “Sightfull Dynamics” Way is a unique way of offering value. It’s not what one does, but how one does it that really counts.
Let’s talk a bit more about what we mean…
We have a fantastic product at an unbeatable price. We are so confident of this fact that we will do your entire payroll at our risk for the first month absolutely free of charge.
We have never increased our core pricing for the past 12 years.
Yes, our clients are still paying the same amount that they paid us 12 years ago
We will never increase our core pricing unless there is a dramatic increase in your number of employees.
We establish long, long term relationships with our clients.
We will do your payroll, anywhere anytime. We operate on Public Holidays, Saturdays and even Sundays!
We have a proven track record with numerous contactable references.

We will work closely with your accountant should you require us to.
Reliability and security are top priorities


"
The brewery is known as White Barrel Brewing LLC. White Barrel means achieving something bigger, unique, and obtaining something prolific. Like Captain Ahab hunting (Moby Dick) the great White Whale. We know this journey will be hard and the White Whale or White Buffalo is a symbol of abundance and the manifestation that one day we will not have to struggle to survive if the right action is joined by our intense focus on creating highly sought after craft beer. The birth of a sacred white buffalo is a sign of hope and an indication of good times to come. The symbol of the White Barrel embodies that.
Our dual 1 barrel nano brewery will produce a wonderful variety of amazing well crafted beer. We will have special bottle and can releases. We will facilitate fun and tasty events to support our local businesses in the community. Equally important, we are building strong community roots and are establishing programs and events that support our local schools, first responders, veterans, and active duty military.
We know this journey will be hard. With your help, we will build a unique and prolific experience for the whole family. GoFundMe helps us to share our story and rally support for our cause, making great beer.


Chapter 4 Programs:
- cube: displays a rotating cube with vertex colors interpolated across faces
- cubev: same as cube but with element arrays
- cubeq: same as cube but uses quaternions to do the rotation in the vertex shader
- trackball: creates a virtual trackball to control rotation of cube. Increments rotation matrix in application and send it to vertex shader
- trackballQuaternion: similar to trackball but uses quaternions. Rotation quaternion is incremented in application and sent to vertex shader


Source code for discordSuperUtils.FiveM
import aiohttp
import aiohttp.client_exceptions
[docs]class ServerNotFound(Exception):
"""Raises an error when a server is invalid or offline."""
[docs]class FiveMPlayer:
def __init__(self, player_id, identifiers, name, ping):
self.player_id = player_id
self.identifiers = identifiers
self.name = name
self.ping = ping
def __str__(self):
return f"<FiveM Player {self.player_id=}>"
def __repr__(self):
return f"<FiveM Player {self.name=}, {self.player_id=}, {self.identifiers=}, {self.ping=}>"
[docs] @classmethod
def fetch(cls, player_dict):
identifiers = dict([x.split(':') for x in player_dict['identifiers']])
return cls(player_dict['id'], identifiers, player_dict['name'], player_dict['ping'])
[docs]class FiveMServer:
def __init__(self, ip, resources, players, name, variables):
self.ip = ip
self.resources = resources
self.players = players
self.name = name
self.variables = variables
def __str__(self):
return f"<FiveM Server {self.name=}>"
def __repr__(self):
return f"<FiveM Server {self.ip=}," \
f" {self.name=}," \
f" {self.players=}," \
f" {self.resources=}," \
f" {self.variables=}>"
[docs] @classmethod
async def fetch(cls, ip):
base_address = "http://" + ip + "/"
async with aiohttp.ClientSession() as session:
try:
await session.get(base_address) # Server status check
except (aiohttp.client_exceptions.ClientConnectorError, aiohttp.client_exceptions.InvalidURL):
raise ServerNotFound(f"Server '{ip}' is invalid or offline.")
players_request = await session.get(base_address + "players.json")
info_request = await session.get(base_address + "info.json")
dynamic_info_request = await session.get(base_address + "dynamic.json")
info = await info_request.json(content_type=None)
players = await players_request.json(content_type=None)
dynamic = await dynamic_info_request.json(content_type=None)
# This is still included in the session because parsing the json outside of it sometimes doesnt work
# and block the program (?) :(
return cls(ip,
info['resources'],
[FiveMPlayer.fetch(player) for player in players],
dynamic["hostname"],
info['vars'])


NEW COLLECTION
Women Collection
Men Collection
Top Brands
10% OFF
We invite you to subscribe to our newsletter and receive 10% discount.
SHOP NOW


Cacti - T. peruvianus (Peruvian Torch) & Cannabis
Last monday I received some dried Peruvian Torch cacti. That night, L, M, and myself all decided to try a 20g dose. L and I were only able to drink about half of our Pedro Syrup doses, so we just got threshold doses. M drank a 20g cacti smoothie, cacti added to water and blended. This man has an iron stomach. Not many visuals, patterns breathing, small body buzz, and definate trails. After this small experiment, we set Saturday as the day to take our trips out in nature. This is where it all began.
To prepare our doses, M and I measured out 200g of dried cactus, only to find my little scale wasn't very accurate. I have no clue how muych actually was added, anywhere from 200-240g. This was going to be prepared for 5 doses, strong ones at that. We added the dried cacti to a pressure cooker, covered with tap water, and pressure cooked for 10 minutes. We set this through a strainer, squeezd out all necessary juices, and then pressure cooked again.
M and I both had taken 30g doses before we started to prepare this. We thought that we could take our doses, and then finish off our weekend preparations. I tell you what, once the syrup starts digesting, you can't even THINK of that smell. We had to abandon the whole process, and just let the cacti sit in the pressure cooker overnight. Nothing we could do about it, we were grounded to the basement because if I caught even a whiff of that smell...yuck.
Anyways, we tripped kind of hard that night, but it's nothing compared to the camping experience. The next day, M and I wake up around 3:00p.m. and we both had to hustle off to work. We quickly added some more water to the pressure cooker, cooked 10 minutes at 15psi, strained, and took off. I had to toss the rest of the cacti in the cooker, even though I think it may have had more magic to give. After checking out the syrup, I didn't think this would matter much. It was very dark, very smelly, and pretty thick. Things were looking good. I stored this in my fridge until Saturday.
We arrived at our spot at around 3:30, and promptly set up camp. Our happy campers included M.A, M.J, L and myself. Saturday morning, we packed a cooler with fruit hot dog and drinks. We got all other necesary camping gear and also brought a small boombox with batteries, so we could listen to cds if wanted. We camped out at L's family's property at a nice lake in North Dakota. After everything was setup, we poured the Syrup into 4 seperate containers. Unfortunately, M.J had fractured his ankle the night before; He wasn't in very good condition for a trip (being on Vicodin and all). L, M.A and I all went for a nice swim; We planned on dosing about 3 hours before sunset. When 6:30 rooled around, all four of choked down our concoction. I can not express enough how horrible this stuff is. So nasty. So so so nasty.
Having done the deed, the four of us kind of seperated for awhile. M.A and I laid down on a blanket on the grass, soaking up the beautiful sun in a cloudless sky. The weather was spectacular that day. L went off by herself to finish the rest of her dose, and M.J sat on a bench. He puked rather promptly, maybe 20-30 minutes after taking it. L also puked early on, possibly 30-45 minutes after drinking it, though she reported visuals on the ground and trees almost immediately.
As I laid on the ground, my mind went through many topics. Small problems I've been having, past experiences, and many many more topics. I was getting quite nauseas, but was able to keep it down. I was almost in a dream like state: instead of thinking, it was more like focused dreaming. I would occaisionally feel a burst of 'energy' flow through my body, and my mind was 'flowing' more.
After some time, which turned out to be 1 hour and 30 minutes, all of us congregated again around the picnic table. The sun was still in the sky, but was beginning to come down. I talked to L, and she said it felt great to spew. I let this possibility into my mind for a split second, and here came the puke. I literally gave it ALL up, I could feel my stomach wrenching to get rid of anything in it. I felt reborn! M.A also hurled a hella lot, right in the middle of our campground. We covered that up with some dirt, and all sat at the table.
The wood grains in the table flowed. The more I looked at it, the more it flowed and breathed. The bark on the trees flowed. After checking out the amazing trees, I just HAD to hug it. L and I were hugging trees, and it felt GREAT. I can't explain the feeling, it just felt good to hug the tree. I could FEEL it's appreciation that we had taken notice of them, and it reciprocated it. Amazing.
The sun was beginning to set now. I have never seen a more amazing sunset here, even without the drug. Hues of purple, lavender, blue, flowed accross the sky. At this time, L, M.A. and I went to the dock and let our bare feet hang in the water while watching the sunset. I have never felt more whole and happy to be alive than when I was watching this sunset.
I went strolling in the tall grass after this, checking everything out. I could feel every blade of grass stroking my feet as I passed, and it felt wonderful. Actually, everything felt wonderful by this time. The body buzz was definately kicking in a bit.
We started up our fire now, as the sun was setting. I was definately tripping hard now. One thing I didn't expect was how much laughing and giggling we all did. It was like I was a child again. Every silly thing was hilarious. I'm glad I was able to trip with my three best freinds here.
The visuals were awesome. Nothing overpowering, but still amazing. The land rolled, the tree bark flowed, the branches waved at me. All the colors were bright and very colorful. Red and green dominated. The best part though...THE STARS.
The stars were the best part of the whole experience. At times they all rotated on what seemed like an axis, all connected by some invisable string, formed into squares, triangles, hexagons.  We noticed 4 seperate satellites in the sky, which really threw us off. Closing my eyes produced some pretty intense closed eye visuals. I can really see where the South Americans got their art. I distinctly remeber seeing some tribal art, again - to put into words.
Anyway, there were three of them, and each had a tribl art looking face. The one in the middle winked at me, then the three began to rotate, disapeared, and left a spiraling bit of psychedelic color in it's midst. I didn't keep my eyes closed very often, as when I did, my body buzz would go quite insane.
Saturday was a full moon, or very near full moon. This really wasn't very desirable, it was just plain too F'n bright. It lit up EVERYTHING, it was dark out, but almost daylight. When I looked at the moon, I could make out every crevace on it, and it always started rotating when I stared at it for more than 5 seconds.
At one point, M.A and I decided to go for a walk. We walked towards the moon, almost instinctively. I remember walking through a small row of planted trees, when we both realized we were entrapped by these trees. The end of the trees seemed far away, and memories of menacing trees read in books came back. We both ran as fast as possible out of the row, ducking down to avoid the sweeping branches, both giggling like little kids. Coming out of it, we walked to the top of a hill, and just stared out at the vast expansion of rolling hills that North Dakota has to offer.
The rest of the night we sat and watched the stars, giggling now and then and talking about the amazing tip we were having. The trip lasts so long, my body was spent long before the visuals stopped. We laid our sleeping bags by the fire, and decided not to sleep in that infernal tent. The idea of sleeping inside the tent was horrible.
We all woke up the next day at about 9 a.m., packed up camp, and headed home. All of our bodies were pretty tired, but we felt in good condition. There was a definate afterglow leaving us all in a good mood. M.J didn't really trip at all, he had some minor threshold effects, but he said he could feel the mescaline fighting to open his pupils, with the Hydrocodone fighting to close them, which produced discomfort in his eyes. L puked sort of early on, so I don't think she tripped quite as hard, but I don't think she was ready for a full blown trip like that.
M.A and I also shared a bowl twice that night, which did make the visuals more intense, I believe.
 We resolved to trip again 'on the next No-Moon'
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.


{% extends 'base.html' %} {%block content%}
Book Review is a free service that helps users discover books they'll love
while providing authors and publishers.If you like books you will love us
Its a website designed for book lovers.
You will probably notice that the majority of reviews tend towards the positive
and this is mainly due to the fact that we choose very carefully which books are
accepted, there simply is not enough time in the world to read too many badly written books.


WITNESS LIST Appropriations Committee (Subcommittee on Education) February 1, 2001-8:00A Budget For: Crowe, William (Texas Association of Community Colleges) Elam, Richard (self) Garcia, Rey (self) Nigliazzo, Marc (self) Zucker, Charles (self) On: Arnold, Daniel (Baylor College of Medicine) Ashley, Janelle (Stephen F. Austin State University) DeBakey, Michael (Baylor College of Medicine) Elliott, Roger (Texas Higher Education Coordinating Board) Felgin, Ralph (Baylor College of Medicine) Hindman, James (Angelo State University) Krienke, Robert (Lamar Institute of Technology) Marks, Bobby (Sam Houston State University) Monroe, Sam (Lamar State College - Port Arthur) Moon, Henry (MSU) Morgan, Vic (Sul Ross State University) Rogers, Jessee (MSU) Segura, Bill (TSTC) Shahan, Michael (Lamar State College) Simmons, James (Lamar University) Slade, Priscilla (Texas Southern University) Smith, Roland (Stephen F. Austin State University) Supple, Jerome (Southwest Texas State University) Thomas, Gayla (Texas Southern University)


| [ Team LiB ] |
6.1 The try StatementThe try statement provides Python's exception-handling mechanism. It is a compound statement that can take one of two different forms:
6.1.1 try/exceptHere's the syntax for the try/except form of the try statement: try: statement(s) except [expression [, target]]: statement(s) [else: statement(s)] This form of the try statement has one or more except clauses, as well as an optional else clause. The body of each except clause is known as an exception handler. The code executes if the expression in the except clause matches an exception object that propagates from the try clause. expression is an optional class or tuple of classes that matches any exception object of one of the listed classes or any of their subclasses. The optional target is an identifier that names a variable that Python binds to the exception object just before the exception handler executes. A handler can also obtain the current exception object by calling the exc_info function of module sys (covered in Chapter 8). Here is an example of the try/except form of the try statement: try: 1/0 except ZeroDivisionError: print "caught divide-by-0 attempt" If a try statement has several except clauses, the exception propagation mechanism tests the except clauses in order: the first except clause whose expression matches the exception object is used as the handler. Thus, you must always list handlers for specific cases before you list handlers for more general cases. If you list a general case first, the more specific except clauses that follow will never enter the picture. The last except clause may lack an expression. This clause handles any exception that reaches it during propagation. Such unconditional handling is a rare need, but it does occur, generally in wrapper functions that must perform some extra task before reraising an exception, as we'll discuss later in the chapter. Note that exception propagation terminates when it finds a handler whose expression matches the exception object. Thus, if a try statement is nested in the try clause of another try statement, a handler established by the inner try is reached first during propagation, and therefore is the one that handles the exception, if it matches the expression. For example: try: try: 1/0 except: print "caught an exception" except ZeroDivisionError: print "caught divide-by-0 attempt" # prints: caught an exception In this case, it does not matter that the handler established by clause except ZeroDivisionError: in the outer try clause is more specific and appropriate than the catch-all except: in the inner try clause. The outer try does not even enter into the picture because the exception doesn't propagate out of the inner try. The optional else clause of try/except executes only if the try clause terminates normally. In other words, it does not execute if an exception propagates from the try clause or if the try clause exits with a break, continue, or return statement. The handlers established by try/except cover only the try clause, not the else clause. The else clause is useful to avoid accidentally handling unexpected exceptions. For example: print repr(value), "is ", try: value + 0 except TypeError: # not a number, maybe a string, Unicode, UserString...? try: value + '' except TypeError: print "neither a number nor a string" else: print "a string or string-like value" else: print "a number of some kind" 6.1.2 try/finallyHere's the syntax for the try/finally form of the try statement: try: statement(s) finally: statement(s) This form has exactly one finally clause, and it cannot have an else clause. The finally clause establishes what is known as a clean-up handler. The code always executes after the try clause terminates in any way. When an exception propagates from the try clause, the try clause terminates, the clean-up handler executes, and the exception keeps propagating. When no exception occurs, the clean-up handler executes anyway, whether the try clause reaches its end or exits by executing a break, continue, or return statement. Clean-up handlers established with try/finally offer a robust and explicit way to specify finalization code that must always execute, no matter what, to ensure consistency of program state and/or external entities (e.g., files, databases, network connections). Here is an example of the try/finally form of the try statement: f = open(someFile, "w") try: do_something_with_file(f) finally: f.close( ) Note that the try/finally form is distinct from the try/except form: a try statement cannot have both except and finally clauses, as execution order might be ambiguous. If you need both exception handlers and a clean-up handler, nest a try statement in the try clause of another try statement to define execution order explicitly and unambiguously. A finally clause cannot directly contain a continue statement, but it may contain a break or return statement. Such usage, however, makes your program less clear, as exception propagation stops when such a break or return executes. Most programmers would not normally expect propagation to be stopped in a finally clause, so this usage may confuse people who are reading your code. |
| [ Team LiB ] |


Page 14 of the 1911 Original Sacred Harp.
Old red barn from Public Domain archive
Drag your mouse over a portion of the image to select it and create an annotation. You can drag a selection to move it before you create the annotation.
Page 14 of the 1911 Original Sacred Harp.
Old red barn from Public Domain archive


--- layout: post podcast_file_name: 'episode1.mp3' title: "Episode 1" duration: '06:53' data_length: '6614957' published: true ---
CocoaPods Bug Bash — The CocoaPods issue triage
JGORegExpBuilder 1.0.1 by Jan Gorman
— A delightful regular expression DSL
JTSImageViewController 1.0.0 by Jared Sinclair
— An interactive iOS image viewer that does it all: double tap to zoom, flick to dismiss, et cetera.
NBThemeConfig 1.0.0 by Josh Justice
— Configure all the colors for your app in a single plist.
OBME 0.1.0 by Manu Mtz-Almeida
— Fast and easy to use tool in simple OBJECTIVE-C to avoid memory cheating by scanning (searching).
FastImageCache 1.3 by Mallory Paine
— iOS library for quickly displaying images while scrolling
XCTest+OHHTTPStubSuiteCleanUp 1.0 by Laura Brown
— automatically stop stubbing http requests at the end of tests
Editors Note: Definitely enjoying the irony of claiming to have it in 5 minutes then failing on the first episode. ./


darkhistory.electrons.ics.BE_integrals¶
Integrals over the Bose-Einstein distribution.
Functions
F0 (a, b[, epsrel]) |
Definite integral of 1/[(exp(x) - 1)]. |
F1 (a, b[, epsrel]) |
Definite integral of x/[(exp(x) - 1)]. |
F2 (a, b[, tol]) |
Definite integral of x^2/[(exp(x) - 1)] |
F_inv (a, b[, tol]) |
Definite integral of (1/x)/(exp(x) - 1). |
F_inv_3 (a, b[, tol]) |
Definite integral of (1/x**3)/(exp(x) - 1). |
F_inv_5 (a, b[, tol]) |
Definite integral of (1/x**5)/(exp(x) - 1). |
F_inv_a (lowlim, a[, tol]) |
Integral of 1/((x+a)(exp(x) - 1)) from lowlim to infinity. |
F_inv_n (a, b, n[, tol]) |
Definite integral of (1/x**n)/(exp(x) - 1) |
F_log (a, b[, tol]) |
Definite integral of log(x)/(exp(x) - 1). |
F_log_a (lowlim, a[, tol]) |
Integral of log(x+a)/(exp(x) - 1) from lowlim to infinity. |
F_x_log (a, b[, tol]) |
Definite integral of x log(x)/(exp(x) - 1). |
F_x_log_a (lowlim, a[, tol]) |
Integral of x log (x+a)/(exp(x) - 1) from lowlim to infinity. |


@* * Copyright 2020 HM Revenue & Customs * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *@ @this(layout: Layout, button: GovukButton) @()(implicit request: Request[_], messages: Messages) @layout(pageTitle = Some(messages("index.title") + " – " + messages("site.service_name"))) {
Use this service to:
Registering takes around 1 minute.
@button(Button( href = Some(routes.NameController.onPageLoad(NormalMode).url), isStartButton = true, content = Text(messages("site.start")))) }


WITNESS LIST Finance Committee January 23, 1997-9:00A Budget/Midwestern State University On: Hooten, Al (Midwestern State U), Wichita Falls Oliver, Arnold W. (Midwestern State U), Wichita Falls Rodriguez, Louis J. (Midwestern State U), Wichita Falls Yeager, Kathryn (Midwestern State U), Wichita Falls Budget/School for the Deaf On: Bugen, Claire (School for the Deaf), Austin Sallop, Marvin B. (School for the Deaf), Austin Smith, Jim B. (School for the Deaf), Austin Walton, Polly (School for the Deaf), Austin Budget/Stephen F. Austin State U On: Angel, Dr. Dan (SFASU), Nacogdoches Ashley, Janelle C. (SFASU), Nacogdoches Blake, Roy (SFASU), Nacogdoches Gallant, Danny R. (SFASU), Nacogdoches Hardy, James C. (SFASU), Nacogdoches Smith, Roland (SFASU), Nacogdoches Budget/SBEC On: Harris, James (SBEC), Austin Littleton, Mark (SBEC), Austin Peterson, Sandra (SBEC), Austin Price, James B. (SBEC), Austin Sockwell, Keith (SBEC), Austin Written materials submitted: On: Hartman, Eric (Federation of Tchrs), Austin Budget/Texas Southern University On: Cabell, Enos (TX Southern U), Houston Budget/Texas Woman's University On: Floyd, Brenda (TX Woman's University), Denton Surles, Carol (TX Woman's University), Denton Whitacker-Kellagher, S (TX Woman's University), Denton Registering, but not testifying: On: Byers-Peritts, Beverly (TX Woman's University), Denton Tuggle, Robert (TX Woman's University), Denton Budget/TEA On: Alanis, Felipe (TEA), Austin Gilchrist, Robin (TEA), Austin Hazel, Terry E. (OOTSA), Austin Hollingsworth, Lonnie (Classroom Teachers Assn), Austin Jacobs, Billy G. (TEA), Austin Kibby, Sandy (Texas PTA), Austin Middleton, Richard A. (SFWG&SA), San Antonio Neely, Joe (TEA), Austin Vaughan, Nancy (TEA), Austin Veselka, Dr. Johnny (Assn.School Admin.), Austin Wisnoski, Joe (TEA), Austin Wood, Bruce (Equity Center), Austin Registering, but not testifying: On: Brady, Denise (ARC of Texas), Austin Horton, Colleen (TASNK), Austin Lambert, Kay (Advocacy, Inc), Austin Wilson, Claude (TPCDD), Austin Written materials submitted: On: Hartman, Eric (TX Federation of Tchrs), Austin Strickland, Phil (Texans CareforChildren), Dallas Budget/THECB On: Ashworth, Kenneth (THECB), Austin Brown, Don (THECB), Austin Cobb, Sharon (THECB), Austin Coleridge, S. Tim (TMA/TAFP), Austin Ellesolo, S.M. (TX Chiropractic College), Pasadena Huffman, George (Assn of Comm. Colleges), Austin Hupp, Suzanna Gratia (TX House of Reps), Austin McDonald, Carol L. (Ind. Colleges/U's of TX), Austin Mooney, Sandra N. (TX Chiropractic College), Pasadena Parker, Carl (Parker College of Chiro), Austin Quinn, Pamela (TX Ass of Comm Colleges), Austin Rauch, Leonard (THECB), Austin Stern, Dr. Neil (Parker College of Chiro), Dallas White, Kenneth S. (TX Chiropractic College), Austin Registering, but not testifying: On: Alexander, Toni (THECB), Austin James, Betty (THECB), Austin Montoya, Marco (THECB), Austin Budget/TIF On: Randolph, Joe N. (Eastman Chemical Co.), Longview Viramontes, Arnold (TIF), Austin Registering, but not testifying: On: Bacon, Carolyn (TIF), Dallas Hill, Rhonda (TIF), Austin Stafford, Gwen (TIF), Lubbock Budget/TRS&ORP On: Cooper, Jack (TRS), Austin Dunlap, Charles (TRS), Austin Hollingsworth, Lonnie (TX Classroom Trchs Assn), Austin Jung, Ronnie (TRS), Austin Koontz, Norma E. (TRS), Austin Nelson, Scott A. (Comm.College Trchs Assn), Kingwood Simms, Jim (TRS), Amarillo Budget/TSBVI On: Hatlin, Phil (TSBVI), Austin Registering, but not testifying: On: Houghtling, Susan (TSBVI), Austin Miller, Kenneth (TSBVI), Austin Ramirez, Janet (TSBVI), Austin Ramirez, Ray (TSBVI), Austin Schulz, Barney (TSBVI), Austin Welch, Mary Sue (TSBVI), Dallas Budget/TSTC On: Adams, Ed (TSTC), Waco Strother, Ralph T. (TSTC), Waco


As a renter, we know that you're looking to find a tool quickly and affordably. We've got you covered.
The owner sets the deposit and rental price. It's negotiable with the provider. The price you see, is the price you pay.
A deposit is required on all transactions. The owner sets the deposit amount which is refunded upon an approved rental return.
You've got stuff taking up valuable space in your world that you need, but not right now. Let us help you make a few extra bucks and clear some space, without selling your prized snowboard that is used once a season.
A deposit is required on all transactions. As the owner, you set the deposit amount which is refunded upon an approved rental return. For items valued over $500 an additional insurance premium is added to the rental agreement.
It costs you nothing to list your stuff for rent unless you would like to feature your items listing to have preferential treatment in the listings and home page of our site. A flat fee of 30% is taken from the rental fee, once the item is rented.


bdgdiff.Rd
Differential peak detection based on paired four bedgraph files. Note: All regions on the same chromosome in the bedGraph file should be continuous so only bedGraph files from MACS3 are accpetable.
bdgdiff( t1bdg, t2bdg, c1bdg, c2bdg, cutoff = 3, minlen = 200L, maxgap = 100L, depth1 = 1, depth2 = 1, outdir = ".", oprefix = character(), outputfile = list(), log = TRUE )
| t1bdg | MACS pileup bedGraph for condition 1. Incompatible with callpeak --SPMR output. REQUIRED |
|---|---|
| t2bdg | MACS pileup bedGraph for condition 2. Incompatible with callpeak --SPMR output. REQUIRED |
| c1bdg | MACS control lambda bedGraph for condition 1. Incompatible with callpeak --SPMR output. REQUIRED |
| c2bdg | MACS control lambda bedGraph for condition 2. Incompatible with callpeak --SPMR output. REQUIRED |
| cutoff | logLR cutoff. DEFAULT: 3 (likelihood ratio=1000)", default = 3 |
| minlen | Minimum length of differential region. Try bigger value to remove small regions. DEFAULT: 200", default = 200 |
| maxgap | Maximum gap to merge nearby differential regions. Consider a wider gap for broad marks. Maximum gap should be smaller than minimum length (-g). DEFAULT: 100", default = 100 |
| depth1 | Sequencing depth (# of non-redundant reads in million) for condition 1. It will be used together with --d2. See description for --d2 below for how to assign them. Default: 1 |
| depth2 | Sequencing depth (# of non-redundant reads in million) for condition 2. It will be used together with --d1. DEPTH1 and DEPTH2 will be used to calculate scaling factor for each sample, to down-scale larger sample to the level of smaller one. For example, while comparing 10 million condition 1 and 20 million condition 2, use --d1 10 --d2 20, then pileup value in bedGraph for condition 2 will be divided by 2. Default: 1 |
| outdir | The output directory. |
| oprefix | Output file prefix. Actual files will be named as PREFIX_cond1.bed, PREFIX_cond2.bed and PREFIX_common.bed. Mutually exclusive with -o/--ofile. |
| outputfile | Output filenames. Must give three arguments in order: 1. file for unique regions in condition 1; 2. file for unique regions in condition 2; 3. file for common regions in both conditions. Note: mutually exclusive with --o-prefix. |
| log | Whether to capture logs. |
macsList
object.
eh <- ExperimentHub::ExperimentHub() CHIP <- eh[["EH4558"]] CTRL <- eh[["EH4563"]] c1 <- callpeak(CHIP, CTRL, gsize = 5.2e7, cutoff_analysis = TRUE, outdir = tempdir(), name = "callpeak_narrow0", store_bdg = TRUE) c2 <- callpeak(CHIP, CTRL, gsize = 1e7, nomodel = TRUE, extsize = 250, outdir = tempdir(), name = "callpeak_narrow_revert", store_bdg = TRUE) t1bdg <- grep("treat_pileup", c1$outputs, value = TRUE) c1bdg <- grep("control_lambda", c1$outputs, value = TRUE) t2bdg <- grep("treat_pileup", c2$outputs, value = TRUE) c2bdg <- grep("control_lambda", c2$outputs, value = TRUE) bdgdiff(t1bdg, t2bdg, c1bdg, c2bdg, outdir = tempdir(), oprefix = "bdgdiff")


There are a lot of nice places on the Earth. I believe every person has his own favourite cities. So, here I'd like to tell about mine.
Istanbul is the first muslim city I've visited so far. Frankly speaking, I was a little scary at first of culture gap that I might not understand. In fact, this city just opened my heart to its culture and peole. I'll mention only few things that I really enjoyed:
Every visitor to Istanbul wants to—and should!—take a Bosphorus cruise on the 32 km (20-mile)-long strait which joins the Sea of Marmara to the south with the Black Sea to the north of Istanbul. There are many varieties of Bosphorus cruises. If possible I recommend avoiding the typical overly crowded tourist boats and enjoy the enchantment of Istanbul along the beautiful Bosphorus with a smaller group on a luxury yacht at sunset! History Travel's Sunset Tour has focused on one thing for 15 years and that is to help visitors to Istanbul have the very best experience on a Bosphorus cruise at an affordable price.
Probably Istanbul’s most famous mosque, the Blue Mosque is a hugely popular tourist attraction due to its striking bright-blue tile work. The last great mosque of the Ottoman classical period, this imposing 17th-century building is best seen from Sultanahmet Park, where the mosque’s six distinctive minarets mark its presence above the treetops. The mosque also faces Hagia Sophia – an engineering marvel considered to be the epitome of Byzantine architecture.
There is so much more to Turkish cuisine then kebabs. I learned that traditional Turkish food isn’t all about meat and while meat does play a huge role in Turkish cuisine, there are heaps of vegetarian and vegan options. All it takes is a bit of asking and looking around to find out what’s available. Served in a slim-waisted and curved glass, Turkish tea is usually being served after a meal and is amber-colored and bitter. Turkish tea can be found at literally any place and I highly recommend trying it while in Turkey. I enjoyed mine at Cafe Zoo at Caferağa Mahallesi, Sarraf Ali Sk. No:3, a cafe I highly recommend checking out!
Everywhere I walked, there were cats. After weeks in the city I wanted to know: why are there so many cats in Istanbul? I should note that I’m a cat person. Am I cat-whisperer? Maybe not insofar as career choices go, but I do seem to be perpetually followed by cats. In Muang Ngoi, Laos, I would sit down to read on my bungalow’s porch and within minutes, a cat would deftly squeeze between book and knees. Daily, I’d wander to town for dinner and sit on a mat for some food. Seconds later, a feline (sometimes two) would push their way onto my lap, purring furiously. Wandering through Amman, I found myself stooping down to pet scraggly-looking cats, each materializing when I would stop to gather my bearings.


GetDirStats
The GetDirStats function returns the
number of files, subdirectories and total size of a specified directory.
|
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:GetDirStats %dir% files dirs bytes
::
:: By: Ritchie Lawrence, updated 2003-09-18. Version 1.1
::
:: Func: Returns total number of files, directories and bytes (includes
:: sub-directories and hidden/system
files/dirs). For NT4/2000/XP/2003
::
:: Args: %1 Name of directory, absolute or relative (by val)
:: %2 var to receive total number
of files (by ref)
:: %3 var to receive total number
of directories (by ref)
:: %4 var to receive total number
of bytes (by ref)
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
setlocal ENABLEEXTENSIONS & set "var="
pushd %1 2>nul || (md;2>nul & endlocal & goto :EOF)
for /f "tokens=1-5* delims=," %%a in ('compact/s /q^|findstr
^^^^[0-O]') ^
do (call set "var=%%var%% %%a%%b%%c%%d%%e")
for /f "tokens=2,5,15" %%a in ('echo/%var%') do (popd &
endlocal ^
& set "%4=%%c" & set/a %3=%%b-1 &
set/a "%2=%%a-%%b+1" & goto :EOF)
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: |
|
Parameters
%1 Name of directory, absolute or relative (by val)
%2 var to receive total number of files (by ref)
%3 var to receive total number of directories (by ref)
%4 var to receive total number of bytes (by ref)
Return Values
If the function succeeds, the errorlevel is set to zero. If the function
fails (for example, due to invalid directory or insufficient permissions),
then the errorlevel is set to one.
Example
@echo off & setlocal ENABLEEXTENSIONS
call :GetDirStats %SystemRoot% f d b
echo/%SystemRoot% has %f% files and %d% dirs. Total size is %b% bytes
.
goto :EOF
Remarks
The statistics returned by GetDirStats are identical to those returned
by Windows Explorer. If a difference is observed, this is probably caused
by the TEMP folder being included in the enumeration.
See Also
FileSizeComp
|


# Copyright 2020 Toyota Research Institute. All rights reserved.
from functools import lru_cache
import torch
import torch.nn.functional as F
[docs]@lru_cache(maxsize=None)
def meshgrid(B, H, W, dtype, device, normalized=False):
"""Create mesh-grid given batch size, height and width dimensions.
Parameters
----------
B: int
Batch size
H: int
Grid Height
W: int
Batch size
dtype: torch.dtype
Tensor dtype
device: str
Tensor device
normalized: bool
Normalized image coordinates or integer-grid.
Returns
-------
xs: torch.Tensor
Batched mesh-grid x-coordinates (BHW).
ys: torch.Tensor
Batched mesh-grid y-coordinates (BHW).
"""
if normalized:
xs = torch.linspace(-1, 1, W, device=device, dtype=dtype)
ys = torch.linspace(-1, 1, H, device=device, dtype=dtype)
else:
xs = torch.linspace(0, W-1, W, device=device, dtype=dtype)
ys = torch.linspace(0, H-1, H, device=device, dtype=dtype)
ys, xs = torch.meshgrid([ys, xs])
return xs.repeat([B, 1, 1]), ys.repeat([B, 1, 1])
[docs]@lru_cache(maxsize=None)
def image_grid(B, H, W, dtype, device, ones=True, normalized=False):
"""Create an image mesh grid with shape B3HW given image shape BHW
Parameters
----------
B: int
Batch size
H: int
Grid Height
W: int
Batch size
dtype: str
Tensor dtype
device: str
Tensor device
normalized: bool
Normalized image coordinates or integer-grid.
Returns
-------
grid: torch.Tensor
Mesh-grid for the corresponding image shape (B3HW)
"""
xs, ys = meshgrid(B, H, W, dtype, device, normalized=normalized)
coords = [xs, ys]
if ones:
coords.append(torch.ones_like(xs)) # BHW
grid = torch.stack(coords, dim=1) # B3HW
return grid
[docs]def to_gray_normalized(images):
"""Performs image normalization and converts images to grayscale (preserving dimensions)
Parameters
----------
images: torch.Tensor
Input images.
Returns:
normalized_images: torch.Tensor
Normalized grayscale images.
"""
assert len(images.shape) == 4
images -= 0.5
images *= 0.225
normalized_images = images.mean(1).unsqueeze(1)
return normalized_images
[docs]def to_color_normalized(images):
"""Performs image normalization and converts images to grayscale (preserving dimensions)
Parameters
----------
images: torch.Tensor
Input images.
Returns:
normalized_images: torch.Tensor
Normalized grayscale images.
"""
assert len(images.shape) == 4
images -= 0.5
images *= 0.225
return images


The University Institute of Engineering & Technology (UIET), was established in the year 1998 with the aim of providing quality technical education in Engineering & Technology.
The Institute offers six B.Tech programmes of 4 years duration in Mechanical Engineering, Electrical Engineering, Civil Engineering, Computer Science Engineering, Electronics Communication Engineering and Biotechnology. In a short span, the U.I.E.T. has become a preferred destination for B.Tech aspirants because of its good infrastructural facilities and excellent faculty compared with those of other institutes in the region.
To meet the requirements of industries, the Institute continues to review and revise the syllabi of its B.Tech Programmes at frequent intervals, and recently the Faculty of Engineering & Technology has again recommended their revision. To prepare its students to meet the expectations of the challenging and competitive world, the UIET arranges at regular intervals Seminars, Workshops,Group Discussions, Extension Lectures by well known faculty members from within and outside the Campus, besides speciality from industry and our experience shows that students get immensely benefited from these academic activities. The students have brought laurels to the Institute by winning top positions at various TechnoFests, Quiz Contests and other co-curricular activities. With the changing times, the Institute has been acquiring latest gadgets for improving the quality of instructional facilities. In the last few years, the Department has added the latest equipment such as Laser Projectors, Cluster Servers, 3D Printrs, 8k I.P Cameras, Saterllite communication Machine, Radio Scanners, and Printers besides complete networking of the Lab and wi-fi internet connectivity over the entire Institute. The institute has a very good and spacious workshop building. It consists all the modern teaching aids and facilities for its students for improving the quality of education and proper skill development. Vision To offer excellent blend of Research and practical oriented academic programmes with an aim to achieve global standards. Mission To impart futuristic technical education and prepare technologically superior, ethically strong and socially responsible professionals to compete in global environment of Engineering and Technology.


Class: ApplicationRecord
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- ApplicationRecord
- Defined in:
- app/models/application_record.rb
Direct Known Subclasses
Class Method Summary collapse
- .kind_attributes_for_select ⇒ Object
-
.status_attributes_for_select ⇒ Object
This method is used in select fields, and serves for an enum to be internationalized to the application language>.
Class Method Details
.kind_attributes_for_select ⇒ Object
15 16 17 18 19 20 21 22 |
# File 'app/models/application_record.rb', line 15 def self.kind_attributes_for_select kinds.map do |kind, _index| [I18n.t( "activerecord.attributes.#{model_name.i18n_key}.kinds.#{kind}" ), kind] end end |
.status_attributes_for_select ⇒ Object
This method is used in select fields, and serves for an enum to be internationalized to the application language>
6 7 8 9 10 11 12 13 |
# File 'app/models/application_record.rb', line 6 def self.status_attributes_for_select statuses.map do |status, _index| [I18n.t( "activerecord.attributes.#{model_name.i18n_key}.statuses.#{status}" ), status] end end |


Simple VideoRecorder Example
In here you can see and example of how to use the VideoRecorder object.
Contents
Create a new VideoRecorder Object
First of all we have to define the video name and the format of this new video, in this example the video name is set to NewVideo and the format to mov.
vr = VideoRecorder('NewVideo', 'Format', 'mov');
Insert frames to the VideoRecorder Object
After we have created the VideoRecorder object, we are ready to insert frames to this object.
vp = VideoPlayer('./Resources/TestVideo.mp4'); for i = 1:10 vr.addFrame(vp.Frame); vp + 1; end clear vp;
Close the VideoRecorder Object
Finally we have to close the video sequence by releasing the VideoRecorder object.
clear vr;
See the Recorded Video
Finally with this script you can see the recorded video.
vp = VideoPlayer('NewVideo.mov'); while (true) plot(vp); drawnow; if (~vp.nextFrame) break; end end clear vp;


RT @spastorino: Ruby 1.8.7 is officially dead http://www.ruby-lang.org/en/news/2013/06/30/we-retire-1-8-7/
6/29/2013, 7:38:26 PM
Favs: 0
Retweets: 0
link--- layout: tweet ---
RT @spastorino: Ruby 1.8.7 is officially dead http://www.ruby-lang.org/en/news/2013/06/30/we-retire-1-8-7/
6/29/2013, 7:38:26 PM
Favs: 0
Retweets: 0
link


SMAQ monitors your air quality!
SMAQ was developed by 3 MSc Mechatronics Engineering students at University of Glasgow;
Mustafa Biyikli [Software, WebApp, AndroidApp, Casing]
Katarzyna Lenard [Software, WebApp, AndroidApp, Marketing]
Alex Charitonidis [Electronics, Manufacturing, Graphics Design, Marketing]
- SMAQ is able to:
- Sense: Temperature: -45 to 80 °C | Pressure: 300 to 1250 hPa | Humidity: 0 to 100 % | Ambient Light: 0.25 to 16K lux | Proximity: 1 to 200 mm | Sound Levels: 0 to 100 % | Carbon Monoxide: 1 to 1000 ppm | Nitrogen Dioxide: 0.05 to 10 ppm | Ammonia: 1 to 500 ppm
- Show the current conditions in your chosen environment with gauges
- Store data up to a week, autozoom to 1wk | 5d | 3d | 24hr | 12 hr | 6hr | 1hr on WebApp
- Send you immediate alerts via Email / Mobile Notifications and LEDs
- Auto-remove your alerts when they are outdated
- Output API data in JSON format
- Display current conditions on an OLED display triggered by proximity
SMAQ is fully open source, you can build your own hardware and host your apps by following our GitHub page or build your own apps with our API.


This is a not-very-interesting log of my recent server configuration efforts. Maybe interesting to people thinking of setting up a server (virtual servers are dirt cheap these days). It's not as easy as it could be, but it's getting easier.
After putting it off for too long, I finally finished setting up a new server for my use. It's a bit than what I'm currently using, a VPS through pdxcolo.net. I chose them because their disk space was relatively cheap. They seem fine so far; like many companies run by techies, they are bad at billing. But that just means I pay late when they send invoices late, and that doesn't really hurt me. Like a good techie hosting provider, they also provide Debian, which was a prerequesite for me. Their setup tools are decent; filesystem configuration confused me for a bit, but I figured it out with a little help. The support was prompt.
So, I thought I'd describe what I set up, and my thoughts on software. I tried out Webmin, which I had never tried before. It was fairly easy to set up, and fairly unintrusive, but it doesn't do a ton that I can't do for myself. Webmin's complement, Usermin, is more useful, as it lets the (small) number of users on the system do stuff through a web interface (change passwords, upload files, etc). I did a small amount of proftpd configuration with Webmin, which worked well (proftpd seems to be better supported by Webmin than wu-ftpd).
 On one of my first systems, I used qmail, in part because VMailMgr looked cool. But that's when I was thinking of doing regular hosting, which didn't end up making sense.
Anyway, qmail sucked. It's a real shame, there definitely some cool parts of qmail, especially the email namespaces. With qmail, any user can append -something to their username, and it gets delivered to their mailbox. In turn, they can set up handlers, so a user could set up a mailing list manager (e.g, ezmlm) without any administrator help (or interference). But it sucks for some other reasons. There's bizarre things, like configuration done through the presence of files -- the contents don't mean anything, merely that the file exists. In general the configuration was horrible, a mess of little files all around, with no decent error messages. Everything is recipes.  Qmail also uses all these abstractions and conventions that might make sense in some alternate qmail world, but they aren't Unix conventions. Like configuration went in /var. But Maildirs are cool (no >From!).
 It's a good example to bring out to show that anything short of Open Source isn't good enough. It's so close to open source, but people can't really package up the results of their modifications, and no real community can form around the packages to develop them further. (At least, this is my impression, baseless and from way outside the community.) And the author doesn't do anything with qmail anymore, so evolution won't come from that direction. (I wasted enough hours on qmail to feel a bit bitter.)
So the second time around I thought I'd try Postfix. Postfix's major claim to fame is Just As Secure As Qmail, But Without The License. And it's not as weird. Postfix's documentation isn't that hot, and it's still confusing to someone who isn't a mail administrator, just a dabbler. I eventually got it working, but I never knew why. A lot of aspects seemed too manual, or they were confusing. The documentation was poor.
Honestly, security doesn't excite me. Maybe it's because I figure if I'm using a fairly major piece of software and keeping up to date (easy on Debian!) then I'll be okay. It's worked for me so far (knock on wood). Or if I'm using obscure software, even that's obscure in its own way. Sendmail has its problems, but security seems like its only one of many. People have become reactionary. So now I'm back to trusty Exim. It's well supported on Debian, the configuration basically makes sense (kind of). It has really good documentation. I've also simplified my setup, so that an address at any domain goes to the same user; my usernames have to be unique across domains, but that's okay. Virtual domains look reasonably easy in Exim, so if I ever need them they are there. The only real problem I had with Exim was with Mailman integration, which Mailman's README.Debian would have explained if I had read it.
To finish off mail, I used Dovecot for IMAP, since uw-imapd (which I had used before) didn't accept logins. Very annoying; I saw some similar problems on some Debian mailing lists, but no resolutions.   Squirrelmail and Mailman installed easily.
The only thing left was Apache. I decided to go with Apache 2, as I've been intrigued with some of the new features, even if they seem minor. Apache 2 (at least on Debian) has a new config file setup, which I quite like. apache2.conf has a bunch of standard options that are boring and don't generally need to be customized. ports.conf defines the IP addresses and ports, while httpd.conf is for the other global options. mods-available/ has a file for each module; you symlink those files to mods-enabled/ to install them. Virtual hosts go in sites-available/, with symlinks to sites-enabled/. It's all very transparent and easy to understand, while being more structured than the big-pile-of-config of a single httpd.conf. Debian's Apache 1.3 has some weird files for module configuration that I don't like at all, in part because I never got mod_webkit working with it properly. Apache 2 was easy.
The other thing I used was mod_macro, which allowed me to set up some common locations and settings for all my virtual hosts, with some slight modifications on a per-domain basis. I actually would have preferred mod_define, but it doesn't seem to be available for Apache 2. I think mod_define plus Includes are basically equivalent to mod_macro, but easier to understand (since definitions are named, but macro arguments are positional).
I also installed lots of Python things, some databases, all the utilities, Webware, mod_webkit2, and other stuff, but those were all easy. Debian is great.
Ah, I did the "usernames must be unique across virtual hosts" thing. It's a bit problematic for webmaster@, because it means the owner of the "primary" domain (whichever one Exim knows abot first, I think) gets all those mails. It's not a major problem, and I did manage to fix it, but I can't remember how. My policy on altering Exim is:
1. avoid doing it
2. see step 1
3. poke things randomly, fearful of losing mail, until it works or you give up and revert to what it was before
Not the best policy, but what can I say :)
Exim has a fantastic configuration, making complex custom situations possible without confusing the simple stuff. I've twiddled mine to do AV, SpamAssassin, virtual domains with alias domains, Maildirs, etc. Drop me a line if you run into any questions.# Luke Opperman
Regarding mailing list managers, there's one that's aimed to be sort-of-an ezmlm clone, Enemies of Carlotta [1]. It has more liberal license and is a bit simpler. (It's written in Python, but that shouldn't make much of a difference to the decision, I guess.)
[1] http://liw.iki.fi/liw/eoc/# Jarno Virtanen
I switched from SquireMail to IlohaMail http://ilohamail.org/. And yes it's better, because it supports multiple senders ..# Jkx
Just wondering why you passed up getting a Linode www.linode.com
Very professional. More disk space per $. More distros to choose from including Debian. I've been using them for over a year. I just don't see that pdxcolo has any advantages.
Randall# Randall Smith
I seem to remember when I was looking that linode wasn't taking any clients for their VPS plan -- all their servers must have been fully committed. PDXColo also has cheaper disk space -- $1/GB/mo, vs. $5/GB/mo. This is nice, since I am keeping all my mail on the server; instead of upgrading to a more expensive plan, I can just add on the particular resource I want. And of course, I don't care about the distribution selection, as long as they have the one I want ;)# Ian Bicking
I must agree about Qmail, 'though I've been using it for 7 years. Postfix seems like the right way to go and may do that some time in future (along with switching to http://www.gentoo.org from Debian :-).


2023 Jan-May: Deep Learning (DL), DL Lab
2022 Aug-Dec: Data Engineering, Probabilistic Machine Learning
2022 Jan-May: Deep Learning
2021 Aug-Dec: Data Engineering (DE), DE Lab
2021 Jan-May: Deep Learning, DBMS Lab
2020 Aug-Dec: Data Engineering (DE), DE Lab
2020 Jan-May: Database management systems (DBMS), DBMS Lab
2019 Aug-Dec: Probability Models, Deep Learning
2019 Jan-May: Introduction to Programming, DBMS Lab
2018 Aug-Dec: Principles of Software Engineering, Topics in Machine Learning
2018 Jan-May: Theory and Practice of Data Science, DBMS Lab
2017 Aug-Dec: Paradigms of Programming


I am a junior studying Computer Science at the University of Texas at Arlington and an Undergraduate Researcher in the National Science Foundation Research Experience for Undergraduates (REU) program supervised by Dr. Song Jiang.
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
VivifyHealth has created the world’s first remote care platform based upon consumer mobile devices and is among the fastest growing digital health companies. This past summer, I worked at VivifyHealth as a Software Development Intern, where I colloborated on a team of 8 to develop a mass user import tool.
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
© An Nguyen 2020


PEAT Cloudlet SDK Tutorial
Dependencies
The following table of dependencies are all required by the PEAT Java SDK.
| Group | Artifact | Version |
|---|---|---|
| com.fasterxml.jackson.core | jackson-core | 2.1.4 |
| com.fasterxml.jackson.core | jackson-annotation | 2.1.4 |
| com.fasterxml.jackson.core | jackson-databind | 2.1.4 |
| org.apache.httpcomponents | httpclient | 4.3.2 |
| org.apache.httpcomponents | httpcore | 4.3.2 |
The atrifacts from the jackson.core group are required to handle the REST calls to and from the PEAT platform. They handle the serialization and deserialization of the JSON data through the use of annotations within the PEAT SDK Model classes
The artifacts from the apache.httpcomponents group are required to enable the http communications with the PEAT Platform.
These dependencies can be imported individually or managed using a project management tool like Maven.
Using Maven the dependancies can be added to the pom.xml file and then installed using "mvn install" command.
<dependencies>
...
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${jackson-version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${jackson-version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson-version}</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>${http-version}</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>${http-version}</version>
</dependency>
...
</dependencies>
<properties>
<jackson-version>2.1.4</jackson-version>
<junit-version>4.8.1</junit-version>
<http-version>4.3.2</http-version>
</properties>
Once these dependancies have been installed the PEAT SDK can be generated and imported.
Generating the SDK
Inside the "peat_android_sdk" folder run the following command.
N.B. Change the IP Address to the adress of your local PEAT Development VM
sh build-cloudlet-sdk.sh <IP_ADDRESS>
This will generate the "peat-cloudlet-android-sdk-1.0.0.jar" file from the PEAT swagger API definitions.
This jar can be used in PEAT Java projects.
The following function examples will work towards getting a working Java project for interacting with the PEAT system and will cover the following actions.
- Registering a Client
- Registering a User
- Loging in as a User to get a Session token
- Using the Session token to authenticate with a Client
- Getting a Cloudlet from PEAT once authenticated.
Note: Below these examples will be a complete end-to-end example.
Authentication Steps
Creating a Client
Clients will be accessing PEAT on behalf of the user and as such must be registered with the PEAT Platform.
N.B. This request does not return a body only a status code.
public static void setupClient(String clientId) {
//Setup Client API
ClientsApi clientsapi = new ClientsApi();
//Prepare the client request object.
ClientRegisterRequest clientIdReq = new ClientRegisterRequest();
//Set the Id of the new client to be created
clientIdReq.setClientId(clientId);
//Call ClientAPI to create new client.
try {
clientsapi.createClient(clientIdReq);
} catch (ApiException e) {
if (e.getCode() == 400) {
System.out.println("Client already exists");
} else {
e.printStackTrace();
}
}
}
Registering a User
Users currently register with the PEAT system using a username and password
N.B. This request does not return a body only a status code.
public static void registerUser(String username, String password) {
//Setup User API
UsersApi usersapi = new UsersApi();
//Prepare User registration request
UserRegisterRequest userReq = new UserRegisterRequest();
//Set name and password for user
userReq.setName(username);
userReq.setPassword(password);
//Create User
try {
usersapi.createUser(userReq);
} catch (ApiException e) {
if (e.getCode() == 400) {
System.out.println("User already exists");
} else {
e.printStackTrace();
}
}
}
Login as User
When a user logs into PEAT they create a Session token that can then be used by a client to authenticate itself and communicate with PEAT on the users behalf.
N.B. This request returns a Session token.
public static Session login(String username, String password) {
//Setup API
SessionApi sessionapi = new SessionApi();
//Prepare User registration request
Credentials creds = new Credentials();
//Set login credentials
creds.setName(username);
creds.setPassword(password);
//Retrieve Session token
try {
Session session = sessionapi.login(creds);
return session;
} catch (ApiException e) {
e.printStackTrace();
return null;
}
}
Authenticate Client for User
The client then uses a Users Session token to authenticate itself before it can begin interactiong with the PEAT Platform.
N.B. This request returns an authentication Token.
public static Token authorizeClient(String clientId, Session userSession) {
//Setup API
AuthorizeApi authorizeapi = new AuthorizeApi();
//Prepare authorization request
AuthorizationRequest authreq = new AuthorizationRequest();
//Set ClientId and Session
authreq.setClientId(clientId);
authreq.setSession(userSession.getSession());
//Retrieve Authorization token
try {
Token token = authorizeapi.authorizeClient(authreq);
return token;
} catch (ApiException e) {
e.printStackTrace();
return null;
}
}
Using Authorization Token to get Cloudlet
Once the Token has been received the users cloudletId can be retrieved by passing the Token to the PEAT Platform vie the CloudletsAPI.
N.B. This request returns an PEATCloudlet object.
public static PEATCloudlet getCloudletData(Token authToken) {
//Setup CloudletAPI
CloudletsApi cloudletapi = new CloudletsApi();
//Get Cloudlet
try {
PEATCloudlet cloudletData = cloudletapi.getCloudletId(authToken.getToken());
return cloudletData;
} catch (ApiException e) {
e.printStackTrace();
return null;
}
}
Example 1: Authentication and retrieve Cloudlet
This function brings all the previous functions together as the first end-to-end example. This example
- Creates a testClient
- Creates a TestUser
- Gets the User Session
- Gets the Auth Token
- Retrieves Users CloudletId
public static void main(String[] args) {
//Setup Required Client and User for Example
setupClient("testClient");
registerUser("TestUser","secret");
//Get user Session to authorize client
Session userSession = login("TestUser","secret");
if (userSession == null) {
throw new Error("Error getting user Session token");
}
//get Authorization Token to access PEAT platform
Token authToken = authorizeClient("testClient", userSession);
if (authToken == null) {
throw new Error("Error getting Authtoken");
}
// Use AuthToken to get Cloudlet
PEATCloudlet cloudletData = getCloudletData(authToken);
System.out.println(cloudletData);
}
Creating a Type
The PEAT type consists of multple layers.
- The Context An array of properties within the Type.
- Context Entry The descriptor for a single property within the Type.
- Context Value METADATA about the single property including an ID and the PEAT primative type of that property.
N.B. The two required fields for a type are context and reference
public static CreateResponse createExampleType() {
//Setup API
TypesApi typeApi = new TypesApi();
//Create empty Type
PEATType type = new PEATType();
//METADATA for single property within type
ContextValue property = new ContextValue();
property.setId("peat:name");
property.setPEATType("string");
//Single Type Property
ContextEntry context = new ContextEntry();
context.setPropertyName("name");
context.setPropertyContext(property);
//List of Type Properties
List<ContextEntry> typeContext = new ArrayList<ContextEntry>();
//Add the property to the list
typeContext.add(context);
//Add the list to the type
type.setContext(typeContext);
//Set Type reference as it is a required field
type.setReference("Name");
//Post Type
try {
CreateResponse resp = typeApi.createType(type);
return resp;
} catch (ApiException e) {
e.printStackTrace();
return null;
}
}
Creating an Object
This example will create an Object with a Type id of the one created above.
public static ObjectResponse createExampleObject(PEATCloudlet cloudlet, CreateResponse type) {
//Setup API
ObjectsApi objectApi = new ObjectsApi();
//Create empty Type
PEATObject object = new PEATObject();
//Set Object Type
object.setPEATType(type.getId());
//Create Map for object Data
Map data = new HashMap<>();
data.put("name", "TestName");
object.setData(data);
//Create Object
try {
ObjectResponse resp = objectApi.createObject(cloudlet.getId(), object);
return resp;
} catch (ApiException e) {
e.printStackTrace();
return null;
}
}
Example 2: Creating a Type and an Object of that Type.
This function will extend example 1. It will
- Create a Type
- Create an Object of that type in a users Cloudlet.
With a small extension to the main function in example 1 the cloudlet ID retrieved can be used to create an Object.
public static void main(String[] args) {
...
CreateResponse exampleType = createExampleType();
System.out.println(exampleType);
ObjectResponse exampleObject = createExampleObject(cloudletData,exampleType);
System.out.println(exampleObject);
}


The New and updated games are hear
This website is for gamers who love to play games and explore new world in the future you will get new and updated games hear
This website is for gamers
Whether you’re a gamer or just a mortal that has a special someone who loves video games, this collection will blow your mind! Why? That’s because this collection holds an infinite number of pick-up lines for gamers! Okay, I was exaggerating. Still, there’s a copious amount of video game pick-up lines here in this collection. Here, we have flirty punch lines from Super Mario, Pokémon, The Legend of Zelda, Final Fantasy, and more. In fact, this collection offers chat-up lines inspired by the whole gaming universe! Now, it’s your time to make a move. But it’s dangerous to go alone.  ((Flirtatious Chat-Up Lines from Super Mario)) If I was Mario, you would be my only star. Are you a super mushroom?   If you were a warp pipe, I would like to be in you all day. You must be as good as Yoshi with that tongue of yours. Do you want to slide down the flagpole and beat the level?  Then you must be the real princess!  Are you a magic flower?   I’d take a Bullet Bill to my heart for you.   Released on April 20, 2018, for the PlayStation 4 (PS4), it is the eighth installment in the God of War series, and the sequel to 2010's God of War III. Unlike previous games, which were loosely based on Greek mythology, this installment is rooted in Norse mythology, with the majority of it set in ancient Norway in the realm of Midgard. For the first time in the series, there are two protagonists: Kratos, the former Greek God of War who remains the only playable character, and his young son Atreus. Following the death of Kratos' second wife and Atreus' mother, they journey to fulfill her request that her ashes be spread at the highest peak of the nine realms. Kratos keeps his troubled past a secret from Atreus, who is unaware of his divine nature. Along their journey, they encounter monsters and gods of the Norse world.
gears of war 3
Gears of War 3 is a third-person shooter video game developed by Epic Games and published by Microsoft Studios for the Xbox 360. It is the third installment of the Gears of War series.[1] Originally due for release on April 8, 2011, the game was delayed and eventually released on September 20, 2011.[2] The story was written by science fiction author Karen Traviss.[3] Like its predecessors, Gears of War 3 received widespread critical acclaim from critics. Critics praised its story, voice acting, visuals, and music, but criticized its lack of innovation. Gears of War 3 sold over 3 million copies and was the second best selling game in the U.S. A sequel, not developed by Epic Games titled Gears of War 4, was announced in June 2015 and was released on October 11, 2016. Like its predecessors, Gears of War 3 is a third-person shooter that emphasizes the use of cover and squad tactics in order to survive combat situations. The player's character can carry four weapons: one pistol, one set of grenades, and two primary weapons. Firearms can be swapped with other weapons dropped by fallen foes or at stockpiles throughout the game, along with ammunition. When the player reloads a weapons ammunition, they have an opportunity for an "active reload", shown by a small cursor moving over a line with a marked section on the player's heads-up display (HUD). If the player hits a control button when the cursor is in the marked section, they will reload faster with the resulting reload being slightly more powerful than normal bullets, causing more damage to opponents as well as allowing for more "knockback" meaning that enemies running directly at you will be slowed on shot. If they press the button outside this section, this temporarily jams the weapon, leaving the player vulnerable and taking longer to reload. Alternatively, the player can opt to not try for the active reload, reloading the weapon at normal speed, but with no added damage. link = https://topxgame.com/gears-of-war-free-download/ click on the link to download gears of war 4


--- layout: page status: publish published: true title: Project Cleaner author: display_name: Tomas Restrepo login: tomasr email<EMAIL_ADDRESS>url: http://winterdom.com/ author_login: tomasr author_email<EMAIL_ADDRESS>author_url: http://winterdom.com/ wordpress_id: 1097 wordpress_url: http://winterdom.com/?page_id=1097 date: '2009-04-28 02:17:35 +0000' date_gmt: '2009-04-28 02:17:35 +0000' categories: - Uncategorized tags: [] comments: [] ---
While the VS.NET IDE is very nice, the project models for VisualC# and
Visual Basic.NET lack several capabilities. One of those is providing a "Clean" build option
that deletes intermediate and output files from a project/solution.
So I set out to build a VS.NET AddIn that provided this capability. The result is
ProjectCleaner, a simple AddIn that will give you a "Clean Project" option when you
right-click on a project in solution explorer, or a "Clean Solution" option when you right-click
on a solution.
In building it, however, I ran into several gotchas, which I wanted to explain here in case
anybody else runs into them.
In order to provide a "Clean Project" option, I needed to detect on which project node the user
had right-clicked in the Solution Explorer window. I found this to be non-intuitive. To do so, you use the
SelectedItems property of the _DTE object, like this:
private Project GetSelectedProject()
{
SelectedItems items = AppObject.SelectedItems;
Debug.Assert(items.Count==1, "Incorrect number of selected items");
return items.Item(1).Project;
}
This, of course, assumes you do this when you get the command invocation; it won't work on other contexts.
Each project has a collection of OutputGroup object, each of one represents a collection of files.
However, the name is really misleading, because the OutputGroups collection includes groups that are not
outputs of the project, but also inputs. In the case of the C# and VB.NET project models,
you'll encounter one group called "SourceFiles" which includes the list of source files
in the project.
Another weird thing is that an OutputGroup object includes two properties: FileNames and FileURLs.
Contrary to what the documentation says, it seems that the FileNames property only lists filenames with paths
relative to the project's directory, not the full path. And in the case of the FileURLs property, which does
give you full paths (in the form of file://c:\.....), it has one extra glitch: If you're looking at an
OutputGroup representing the produced binaries (like the "Built" group), you'll see that this path
points you into the intermediate directory (the obj/ dir), and not into the real output directory (the bin/ dir).
Another limitation is that there is no OutputGroup
representing the project's references that had the "Local Copy" property set to
true. To get these, you need to add a reference to your AddIn project to the
VSLangProj assembly. Once you've done that, you can cast the Object property of
your Project instance to a variable of the type VSProject. This object will
include a References collection with all project references. You can then check
the CopyLocal property for each each Reference object in it to find if you need
to delete it.
This still has one minor limitation: The Reference.Name
property only lists the assembly simple name, without extension, which means you
kind of have to assume it is a known value. There's also no way to find out if
VS.NET copied a debug info file (.pdb) alongside with the referenced assembly.
You can check the code that deals with this inside the
InternalCleanProject(), DeleteFilesInGroup() and DeleteReferenceCopy() methods
of the ProjectCleaner class.
I finally was able to delete commands previously created.
The trick is that to reference a command your AddIn created, you need to use the
full name of it when calling the Commands.Item() method. For example, if my
AddIn adds a command named "CleanProject", the full name of the command will be
"ProjectCleaner.Connect.CleanProject".
Keep in mind that it
is an early version, so be sure to have backups of your data before trying it. I assume no
responsibility for
what might go wrong. Also, notice that this version has two limitations: It is harsh, and
might completely delete your
project's bin and obj directories, and won't do anything in C++ projects. I hope to improve
this situation somewhat in the near future.
Updated: 01/29/2002. Thanks to Craig Skibo from
Microsoft for helping me out figure a couple of things!
You can download ProjectCleaner's source code here.
You can download an MSI installation with ProjectCleaner's
binaries for VS.NET RTM here (notice it doesn't include the framework or MSI 2.0
bootstrapper).
Updated: 02/01/2002. Chris Sells pointed out to me a couple of things that weren't working
on the MSI installer. Those are now fixed. Also, you can now find a new options dialog in the VS.NET
Tools->Options dialog, under the Winterdom folder. This switch allows you to use the new behavior
(delete only project output groups and local references), or delete all files in the output
and intermediate directories. (I suggest using the MSI installation, the source distribution
doesn't contain the merge file needed to create the appropriate registry entries for this to happen).


Target color
Real pixel, color applied through CSS background-color:
background-color
Filtered pixel, color applied through CSS filter:
filter


In the menu "Data input" you
choose
the
type of input, either manually or from a file.
In the menu "Calculations"‚ you choose
the
type of calculation.
For manual input you also have to choose the scale in which the angles
have been measured (1..360° or 1..400gon). For data
input from a file this information is not necessary,
because all
saved data
have the 1..360° scale.
The chosen options are shown on the panel at the bottom. When all
options have been chosen, the button "Continue" becomes active. It
leads to the next form.


MKFIFO(1) User Commands MKFIFO(1) NAME mkfifo - make FIFOs (named pipes) SYNOPSIS mkfifo [OPTION]... NAME... DESCRIPTION Create named pipes (FIFOs) with the given NAMEs. Mandatory arguments to long options are mandatory for short options too. -m, --mode=MODE set file permission bits to MODE, not a=rw - umask -Z, --context=CTX set the SELinux security context of each NAME to CTX --help display this help and exit --version output version information and exit AUTHOR Written by David MacKenzie. REPORTING BUGS Report mkfifo bugs to<EMAIL_ADDRESS>GNU coreutils home page: <http://www.gnu.org/software/coreutils/> General help using GNU software: <http://www.gnu.org/gethelp/> Report mkfifo translation bugs to <http://translationproject.org/team/> COPYRIGHT Copyright © 2011 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. SEE ALSO mkfifo(3) The full documentation for mkfifo is maintained as a Texinfo manual. If the info and mkfifo programs are properly installed at your site, the command info coreutils 'mkfifo invocation' should give you access to the complete manual. GNU coreutils 8.12.197-032bb September 2011 MKFIFO(1)


17 Mar 2018
•
Automation
An IoT experiment to create a gas based suppression system that can be used to extinguish fires inside water sensitive enclosures such as data centers. We make use of Arduino microcontrollers and several sensors to create this system.
24 Nov 2016
•
Automation
•
AWS
•
Ops
A major part of your AWS bills comes from EC2 uptime and EBS storage use. In order to save on these costs, it is recommended to stop your instances whenever it is not required. Often times, your Development, Test or UAT environments aren’t used by developers during off-hours. Thus this would be a great time frame to temporarily stop the instances and save up on costs.
In order to do this, we can make use of AWS Lambda, which lets you run your code or without setting up any servers. Since it charges based on the compute time taken up by the code, it is very cost efficient. A task running twice within a 24-hour cycle for typically less than 60 seconds with memory consumption up to 128MB (like the script in this post) typically costs around $0.008 per month.
We will use the official AWS SDK for Python, boto3 to write our script and then run it using Lambda functions.
07 Sep 2016
•
AWS
•
Ops
Default Read Replicas provided by AWS are instances which should be of the same instance type as the master DB or higher. This might not always be an ideal solution since read replica servers do not require significant computing power. As an alternative, one can create a read replica on a standalone EC2 instance or a RDS DB instance. In the following scenario, we’ll create a read replica running on MySQL syncing with a master DB running on Amazon Aurora. The replica instance type can be any type as seen fit by the user.
20 Jul 2016
•
Automation
•
Ops
Docker is a container technology that provides a layer of abstraction on the OS that it is installed on(Linux or Windows). It allows the packaging of a software application into a image which consists of everything the software requires to run: code, system utilities, third party libraries and other dependencies. Then this image is run on the common layer of abstraction defined above. Therefore, it becomes easy to move and deploy the software application (which refers to the container) across any infrastructure or environment.
Updated: August, 2018
13 Jul 2016
•
Automation
•
AWS
This Ansible playbook should give an idea about the configuration management capabilities of Ansible. It sets up a group of Tomcat nodes which are load-balanced by Apache using the Mod-jk module. In addition to this, it also sets up all other dependencies and also configures the installed services to run on startup.