.Net Threading
This is the low-level threading to support async operations. The framework classes provide higher level APIs (eg Begin/End Async). From .net 4.5, when almost everything can be made easily awaitable.
- .Net 1-3.5: msdn
- .Net 4+: Task Parallel Library and see here
Simple Threads
Thread t = new Thread(SlowMethod); //ThreadStart delegate (no parameters)
t.Start(); //start it
t.Join(); //wait for it to finish
Debug.WriteLine(Thread.CurrentThread.Name + " Child threads finished");
//ParameterizedThreadStart delegate (one "object" parameter)
Thread tp = new Thread(SlowMethodWithObjectParameter);
tp.Start(1000); //pass in object start
tp.Join();
//Strongly typed with a delegate
Thread td = new Thread(delegate() { SlowMethodWithParameter(2000); });
td.Start(); //start the delegate which starts the method
td.Join();
ThreadPool
//optimize with ThreadPool (WaitCallback must have one "object" parameter)
ThreadPool.QueueUserWorkItem(SlowMethodWithObjectParameter);
Async delegates
//simple async delegate
//private delegate string WorkerDelegate(string s);
//private string Worker(string s) { return s.ToUpper(); }
WorkerDelegate method = Worker;
IAsyncResult ar = method.BeginInvoke("test", null, null);
// do other stuff
string uppercased = method.EndInvoke(ar);
// ** or **
method.BeginInvoke("test", DoneCallback, null);
/*static void DoneCallback(IAsyncResult ar)
{Debug.WriteLine(((WorkerDelegate)ar.AsyncState).EndInvoke(ar));}*/
Threading notes
- To protect atomic operations from t.Abort(), call Thread.BeginCriticialRegion() (and End...())
- To stop child threads inheriting CurrentCulture, IPrincipal etc, call ExecutionContext.SuppressFlow() (also RestoreFlow())
- To change thread contexts, get instance - ec= ExecutionContext.Capture(), edit it and ExecutionContext.Run(ec, new ContextCallback(contxt), null);
- In 2.0, there's a SynchronizationContext (an abstraction over asp/winform thread models)
ctx = new SynchronizationContext.Current; ctx.Post(method, stateObject) //async - sync(blocking) version is .Send
- Forms 2.0: BackgroundWorker component: set DoWork delegate, handle RunWorkerCompleted event (and ProgressChanged event), call .RunWorkerAsync(). In worker, call worker.ReportProgress
Timers
System.Threading.Timer tm = new System.Threading.Timer(new TimerCallback(Tick), "tock", 0, 0);
//startTime - 0 to start immediately, period- 0 to execute once
System.Timers.Timer tm2 = new System.Timers.Timer(1000);
tm2.Elapsed += delegate { Debug.WriteLine("Tock"); };
tm2.Enabled = true;
//do something
tm2.Enabled = false; //stop it
//remember System.Windows.Forms.Timer only works in WinForms and is actually singlethreaded
Thread Sync
- Interlocked.Add() ( .Increment is ++) - simple arithmetic
- c# lock(_obj) {} (==vb SynLock). NB: don't lock public instances (this)- prefer private instances
- Monitor.Enter(this) try/finally{ Monitor.Exit(this) }
C# lock is internally Monitor. Monitor.TryEnter has timeout - Mutex operates across AppDomain and process (unlike Monitor/ lock) but is very slow (derived from WaitHandle, and a win32 wrapper)
Mutex m = new Mutex();
//or try Mutex.OpenExisting("NamedMutex");
if (m.WaitOne(1000, false))
{
try { /*work*/ }
finally { m.ReleaseMutex(); }
} - Semaphore class has a number of slots which can be filled (you can ,Release(numSlots)). 2.0
- ReaderWriterLock (and from 3.5 ReaderWriterLockSlim) allows mutiple reads but makes writes exclusive.
// Declare at the class level to be visible to all threads
static ReaderWriterLock rwl = new ReaderWriterLock();
static int resource = 0;
public static void Execute(int timeOut, int to)
{
//try
rwl.AcquireReaderLock(timeOut);
int read = resource;
//upgrading- save the cookie
LockCookie cookie = rwl.UpgradeToWriterLock(to);
//try
resource++;//work
//finally
rwl.DowngradeFromWriterLock(ref cookie);
//finally
rwl.ReleaseLock();
} - EventWaitHandle (AutoEvent and ManualEvent). An event is unsignalled by one thread (.Set) and the others are blocked (on .WaitOne(timeout)) until it is signalled (.Reset). ManualEvent is signalled until manually Reset, AutoEvent is unsignalled as soon as the next thread (on WaitOne) picks it up
Asynchronous Patterns
The async patterns are wait (waithandle or EndInvoke), polling (IsCompleted) and Callback
protected void Main()
{
Literal1.Text = "Load= " + Thread.CurrentThread.ManagedThreadId;
Literal2.Text = "Begin/End= " + TestAsync();
Literal3.Text = "Load= " + Thread.CurrentThread.ManagedThreadId;
Literal4.Text = "Polling= " + TestAsyncPolling();
Literal5.Text = "Load= " + Thread.CurrentThread.ManagedThreadId;
Literal6.Text = "WaitHandle= " + TestAsyncWaitHandle();
TestAsyncCallback();
Literal7.Text = "Callback= " + _result;
Literal8.Text = "Load= " + Thread.CurrentThread.ManagedThreadId;
}
//a normal method doing something slow
public int SlowMethod(int sleep)
{
Thread.Sleep(sleep);
return Thread.CurrentThread.ManagedThreadId;
}
//delegate with same signature
public delegate int SlowMethodDelegate(int sleep);
public int TestAsync()
{
SlowMethodDelegate dg = SlowMethod; //create delegate
IAsyncResult ar = dg.BeginInvoke(2000, null, null); //start
Thread.Sleep(1000); //possibly do other work
return dg.EndInvoke(ar); //block until done
}
public int TestAsyncPolling()
{
SlowMethodDelegate dg = SlowMethod; //create delegate
IAsyncResult ar = dg.BeginInvoke(2000, null, null); //start
while (!ar.IsCompleted)
{
Thread.Sleep(500); //possibly do other work
}
return dg.EndInvoke(ar);
}
public int TestAsyncWaitHandle()
{
SlowMethodDelegate dg = SlowMethod; //create delegate
IAsyncResult ar = dg.BeginInvoke(2000, null, null); //start
Thread.Sleep(500); //possibly do other work
ar.AsyncWaitHandle.WaitOne(); //block until done
return dg.EndInvoke(ar);
}
private int _result;
public void TestAsyncCallback()
{
SlowMethodDelegate dg = SlowMethod; //create delegate
IAsyncResult ar = dg.BeginInvoke(2000, CallBack, dg); //start
//end
}
private void CallBack(IAsyncResult ar)
{
SlowMethodDelegate dg = (SlowMethodDelegate) ar.AsyncState; //our delegate back
_result = dg.EndInvoke(ar);
}


{{ data['short-description'] }}
Interested in getting official support for {{data.name}}?
Contact SalesReach out to purchase a plan or request a demo
{% endif %} {% if data['cta_type'] === 'Support' %}Reach out to find out how we can help you integrate with {{data.name}}
{% endif %}


My Dating Website
Admin
Profile
Email
{{ @errors['email'] }}
State
selected="selected"
> {{ @state }}
Biography
Seeking
Male
Female
Next >


Up: Establishing Communication
Next: Client/Server Examples
Previous: Name Publishing
The following key values are reserved. An implementation is not required to
interpret these key values, but if it does interpret the key value, it
must provide the functionality described.
-
{ ip_port}
-
Value contains IP port number at which to
establish a port. (Reserved for MPI_OPEN_PORT
only).
-
{ ip_address}
-
Value contains IP address at which to
establish a port. If the address is not a valid IP address of
the host on which the MPI_OPEN_PORT call is made,
the results are undefined. (Reserved for MPI_OPEN_PORT
only).
Up: Establishing Communication
Next: Client/Server Examples
Previous: Name Publishing
Return to MPI-2.2 Standard Index
Return to MPI Forum Home Page
(Unofficial) MPI-2.2 of September 4, 2009
HTML Generated on September 10, 2009


Percentage Calculator
Enter Principle Amount
Enter Percent
Calculate
Clear....
Copyright @Kishor B. Chakre 2014


Ajit Pawar sacked as NCP's legislature party leader
by PTIThe NCP on Saturday removed Ajit Pawar as its legislature party leader after he joined hands with the BJP to form a government and took oath as the deputy chief minister of the state.
"The decision to sack Ajit Pawar was taken at the meeting of the party's MLAs here," party sources said.
NCP chief Sharad Pawar was present at the meeting.


There are three core pieces to any Chrome packaged app:
Let's look at each of these components at their simplest level.
Tip: If you use the Sublime Text editor with our plugin, you can create these three files with a click (Chrome -> New App -> Hello World).
In an empty directory (let's call it <myappdir>
),
create the manifest file: manifest.json
{ "manifest_version": 2, "name": "My first app", "version": "1", "app": { "background": { "scripts": ["main.js"] } } }
In the same directory, create the background script: main.js
chrome.app.runtime.onLaunched.addListener(function() { chrome.app.window.create('index.html', { bounds: { width: 500, height: 309 } }); });
Create the user interface: index.html
  <meta charset="utf-8"> <title>Hello World</title>
Hello, World!

chrome://extensions
.<myappdir>
directory.Tip:
If you have enabled Developer mode in chrome://extensions
,
your apps can be inspected and debugged using the Chrome Developer Tools.
Just like any standard web page, right-click on page and select Inspect Element.
For the background page which doesn't have UI,
you can either right-click on any app window and
select Inspect Background Page
or
go to chrome://extensions
and click on Inspect Views...
Change the text "Hello world" to "My first app" in index.html.
Change the main.js background script to create two windows instead of one. Don't bother to create another html. For now, you can open index.html on both.
After changing code, right-click on your app and select Reload App to reload the changed files. All Developer Tools windows will be reopened when you reload your app.
Launch the app in a new tab page. Move the top window and you will see the second window behind it.
In 3 - Create MVC, you will use either pure JavaScript or AngluarJS to build your app's model, view, and controller.


Fabinho ruled out until the New Year
by Phil EganLiverpool have confirmed that Fabinho will be out of action until the New Year after suffering an ankle injury against Napoli on Wednesday night.
The Brazilian midfielder came off after 20 minutes of the 1-1 draw at Anfield on Wednesday night.
A club statement from Liverpool read: "Further assessment on the injury has discovered Fabinho will be out of action until the New Year.
"The Brazilian will begin a rehabilitation programme with the Reds’ medical team at Melwood as he works his way back to full fitness."
Liverpool manager Jurgen Klopp said it's a big blow: "It is absolutely bad news, nothing good to say about that. The timeframe we are not sure 100% but it looks pretty sure he won't be involved in the Christmas fixtures. It takes a while.
"(His injury) was my main problem after the game. We have solutions, we can replace him and have to.
"Now we want him back as soon as possible. We're not the only team with injured players, that's what we have to deal with now."
Fabinho will miss a manic month for the Premier League leaders, who play nine matches between now and the end of the year.
Jurgen Klopp's side face Brighton this weekend before the Merseyside derby against Everton on December 4.
The European champions will also travel to Qatar in a few weeks for the Fifa Club World Cup.
Liverpool take part from the semi-final stage, but will also field a separate team against Aston Villa back in the UK in the Carabao Cup.
Before all that, the Reds travel to Austria to face Red Bull Salzburg knowing they need at least a point to advance to the last 16 of the Champions League.
Fabinho has been a key player for them in midfield since joining from Monaco although Klopp did not start him at the beginning of last season in order to give him time to adjust to playing in a new system.


{% extends "digital-land-frontend/dlf-base.html" %} {%- block pageTitle %}Guidance | Digital Land{% endblock -%} {% block beforeContent %} {% include 'digital-land-frontend/partials/dl-prototype-banner.html' %} {% block dl_breadcrumbs %} {{ govukBreadcrumbs({ "items": [ { "text": "Digital Land", "href": "https://digital-land.github.io/" }, { "text": "Guidance" } ] }) }} {% endblock %} {% endblock %} {% block content %}
As part of our efforts to improve land and housing data we are working with local planning authorities and other users of the data to create guidance around a range of subjects. These will include complying with different requirements for publishing data, mapping data, understanding data definitions and specifications, and more.
{{ page.text }}


?Gilibertia
arborea
(L.)
March
examined
tor
NORTH
AMthlCAN
FL0fi4
Determined
by
A.
C.
Smith/J,
193
.
PLANTS
OF
CUBA
No/________________^
n/fLzoisfl/ifa?
V
/À?A
4
Collected
by---------------------------------------i__
01500457
Legend -
Level of confidence that token is an accurately-transcribed word
extremely low
very low
low
undetermined
medium
high
very high


Mindfulness conversation
9 April 2016
Today I had a most relaxing conversation. Simply by taking turns to give another person our full attention. I was pleasantly surprised by how much can be learnt by listening without agenda.
The other person found it beneficial even contemplating "why don't we do this more often?". Taking a moment to listen and understand another person is a rare but powerful thing. That's what I learnt from the mindfulness conversation.
As these cultural posts are responses to the Search Inside Yourself book, I'll briefly talk about a technique which I learnt in the 3rd chapter. Do less meditation than you can. Huh? Why would I do only do 5 minutes today if I feel like I could stretch that 10 minutes? Surely I should 'train my brain' for longer if I think I can. Turns out this is because of consistency. The author argues that it is essential to enjoy a short session everyday and to build this habit. Extending a session where I start to get restless will make the next session a little less attractive and making the practice of meditiation habitual will serve me well on those days when I need it most.
I don't know what to think about the 'witty' comics that inject a bit of dry humour into the pages of the book. I hope there's some reason for the talking brains and meditating babies. Ah well, some of them are a good laugh.


Genesis 19, verses 5 - 8
5: And they called unto Lot, and said unto him, Where are the men which came in to thee this night? bring them out unto us, that we may know them.
6: And Lot went out at the door unto them, and shut the door after him,
7: And said, I pray you, brethren, do not so wickedly.
8: Behold now, I have two daughters which have not known man; let me, I pray you, bring them out unto you, and do ye to them as is good in your eyes: only unto these men do nothing; for therefore came they under the shadow of my roof.
Exodus 22, verse 19
19: Whosoever lieth with a beast shall surely be put to death.

Leviticus 20, verse 13
13: If a man also lie with mankind, as he lieth with a woman, both of them have committed an abomination: they shall surely be put to death; their blood shall be upon them.
Leviticus 20, verses 15 , 16
15: And if a man lie with a beast, he shall surely be put to death: and ye shall slay the beast.
16: And if a woman approach unto any beast, and lie down thereto, thou shalt kill the woman, and the beast: they shall surely be put to death; their blood shall be upon them.
Deuteronomy 23, verse 17
17: There shall be no whore of the daughters of Israel, nor a sodomite of the sons of Israel.
Deuteronomy 27, verse 21
21: Cursed be he that lieth with any manner of beast. And all the people shall say, Amen.
Judges 19, verse 22
22: Now as they were making their hearts merry, behold, the men of the city, certain sons of Belial, beset the house round about, and beat at the door, and spake to the master of the house, the old man, saying, Bring forth the man that came into thine house, that we may know him.
1 Kings 14, verse 24
24: And there were also sodomites in the land: and they did according to all the abominations of the nations which the LORD cast out before the children of Israel.
1 Kings 15, verse 12
12: And he took away the sodomites out of the land, and removed all the idols that his fathers had made.
1 Kings 22, verse 46
46: And the remnant of the sodomites, which remained in the days of his father Asa, he took out of the land.
2 Kings 23, verse 7
7: And he brake down the houses of the sodomites, that were by the house of the LORD, where the women wove hangings for the grove.
Job 36, verse 14
14: They die in youth, and their life is among the unclean.
Romans 1, verse 24
24: Wherefore God also gave them up to uncleanness through the lusts of their own hearts, to dishonour their own bodies between themselves:
Romans 1, verses 26 , 27
26: For this cause God gave them up unto vile affections: for even their women did change the natural use into that which is against nature:
27: And likewise also the men, leaving the natural use of the woman, burned in their lust one toward another; men with men working that which is unseemly, and receiving in themselves that recompence of their error which was meet.
1 Corinthians 6, verse 9
9: Know ye not that the unrighteous shall not inherit the kingdom of God? Be not deceived: neither fornicators, nor idolaters, nor adulterers, nor effeminate, nor abusers of themselves with mankind,
1 Timothy 1, verses 9, 10
9: Knowing this, that the law is not made for a righteous man, but for the lawless and disobedient, for the ungodly and for sinners, for unholy and profane, for murderers of fathers and murderers of mothers, for manslayers,
10: For whoremongers, for them that defile themselves with mankind, for menstealers, for liars, for perjured persons, and if there be any other thing that is contrary to sound doctrine;
Titus 1, verse 15
15: Unto the pure all things are pure: but unto them that are defiled and unbelieving is nothing pure; but even their mind and conscience is defiled.


Books:
- Transaction Processing Concepts and Techniques,
-
by Jim Gray and Andreas Reuter, Morgan Kaufmann Publishers.
We recommend chapters 1, 4 (skip 4.6, 4.7, 4.9, 4.10 and 4.11),
7, 9, 10.3, and 10.4.
- An Introduction to Database Systems, Volume 1,
-
by C.J. Date, Addison Wesley Longman Publishers.
In the 5th Edition, we recommend chapters 1, 2, 3, 16 and 17.
- Concurrency Control and Recovery in Database Systems,
-
by Berstein, Goodman, Hadzilaco.
Technical Papers Relating to the Berkeley DB Structure:
-
LIBTP: Portable Modular Transactions for UNIX,
-
Margo Seltzer and Michael Olson, USENIX Conference Proceedings, Winter 1992.
- Operating System Support for Database Management,
-
Michael Stonebraker, Communications of the ACM 24(7), 1981, pp. 412-418.
Technical Papers Relating to the Hash Access Method:
-
A New Hashing Package for UNIX,
-
Margo Seltzer and Oz Yigit, USENIX Conference Proceedings, Winter 1991.
- Dynamic Hash Tables,
-
Per-Ake Larson, Communications of the ACM, April 1988.
- Linear Hashing: A New Tool for File and Table Addressing,
-
Witold Litwin, Proceedings of the 6th
International Conference on Very Large Databases (VLDB), 1980
Technical Papers Relating to the Btree Access Method:
- The Ubiquitous B-tree,
-
Douglas Comer, ACM Comput. Surv. 11, 2 (June 1979), pp. 121-138.
- Prefix B-trees,
-
Bayer and Unterauer, ACM Transactions on Database Systems,
Vol. 2, 1 (March 1977), pp. 11-26.
- The Art of Computer Programming Vol. 3: Sorting and Searching,
-
D.E. Knuth, 1968, pp. 471-480.
Technical Papers Relating to the Recno Access Method:
- Document Processing in a Relational Database System,
-
Michael Stonebraker, Heidi Stettner, Joseph Kalash, Antonin Guttman,
Nadene Lynn, Memorandum No. UCB/ERL M82/32, May 1982.


Creates a new app pool.
Install-IisAppPool -Name <String> [-ManagedRuntimeVersion <String>] [-IdleTimeout <Int32>] [-ClassicPipelineMode] [-Enable32BitApps] [-ServiceAccount <String>] [-PassThru] [<CommonParameters>]
Install-IisAppPool -Name <String> [-ManagedRuntimeVersion <String>] [-IdleTimeout <Int32>] [-ClassicPipelineMode] [-Enable32BitApps] [-ServiceAccount <String>] -UserName <String> -Password <Object> [-PassThru] [<CommonParameters>]
Install-IisAppPool -Name <String> [-ManagedRuntimeVersion <String>] [-IdleTimeout <Int32>] [-ClassicPipelineMode] [-Enable32BitApps] [-ServiceAccount <String>] -Credential <PSCredential> [-PassThru] [<CommonParameters>]
By default, creates a 64-bit app pool running as the ApplicationPoolIdentity
service account under .NET v4.0 with an integrated pipeline.
You can control which version of .NET is used to run an app pool with the ManagedRuntimeVersion
parameter: versions v1.0
, v1.1
, v2.0
, and v4.0
are supported. Use an empty string if you're running .NET Core or to set the .NET framework version to No Managed Code
.
To run an application pool using the classic pipeline mode, set the ClassicPipelineMode
switch.
To run an app pool using the 32-bit version of the .NET framework, set the Enable32BitApps
switch.
An app pool can run as several built-in service accounts, by passing one of them as the value of the ServiceAccount
parameter: NetworkService
, LocalService
, or LocalSystem
The default is ApplicationPoolIdentity
, which causes IIS to create and use a custom local account with the name of the app pool. See Application Pool Identities for more information.
To run the app pool as a specific user, pass the credentials with the Credential
parameter. (In some versions of Carbon, there is no Credential
parameter, so use the UserName
and Password
parameters instead.) The user will be granted the SeBatchLogonRight
privilege.
If an existing app pool exists with name Name
, it's settings are modified. The app pool isn't deleted. (You can't delete an app pool if there are any websites using it, that's why.)
By default, this function will create an application pool running the latest version of .NET, with an integrated pipeline, as the NetworkService account.
Beginning with Carbon 2.0, the PassThru
switch will cause this function to return a Microsoft.Web.Administration.ApplicationPool
object for the created/updated application pool.
Beginning with Carbon 2.0.1, this function is available only if IIS is installed.
| Name | Type | Description | Required? | Pipeline Input | Default Value |
|---|---|---|---|---|---|
| Name | String | The app pool's name. |
true | false | |
| ManagedRuntimeVersion | String | The managed .NET runtime version to use. Default is 'v4.0'. Valid values are |
false | false | v4.0 |
| IdleTimeout | Int32 | Idle Timeout value in minutes. Default is 0. |
false | false | 0 |
| ClassicPipelineMode | SwitchParameter | Use the classic pipeline mode, i.e. don't use an integrated pipeline. |
false | false | False |
| Enable32BitApps | SwitchParameter | Enable 32-bit applications. |
false | false | False |
| ServiceAccount | String | Run the app pool under the given local service account. Valid values are |
false | false | |
| UserName | String | OBSOLETE. The |
true | false | |
| Password | Object | OBSOLETE. The |
true | false | |
| Credential | PSCredential | The credential to use to run the app pool. The |
true | false | |
| PassThru | SwitchParameter | Return an object representing the app pool. |
false | false | False |
Install-IisAppPool -Name Cyberdyne -ServiceAccount NetworkService
Creates a new Cyberdyne application pool, running as NetworkService, using .NET 4.0 and an integrated pipeline. If the Cyberdyne app pool already exists, it is modified to run as NetworkService, to use .NET 4.0 and to use an integrated pipeline.
Install-IisAppPool -Name Cyberdyne -ServiceAccount NetworkService -Enable32BitApps -ClassicPipelineMode
Creates or sets the Cyberdyne app pool to run as NetworkService, in 32-bit mode (i.e. 32-bit applications are enabled), using the classic IIS request pipeline.
Install-IisAppPool -Name Cyberdyne -Credential $charlieBrownCredential
Creates or sets the Cyberdyne app pool to run as the PEANUTS\charliebrown
domain account, under .NET 4.0, with an integrated pipeline.


JimScope
Preferences
Logout
Homepage
Dashboard
Checkout
Payment Methods
Shipping Methods
Help
Documentation
Support


Local integer &ExitCode;
try
/*Make sure no commits are pending*/
&ExitCode = Exec("sh -c 'iconv -f 1252 -t IBM-1047 /apps/user/temp/in.txt > /apps/user/temp/out.txt'", %Exec_Synchronous + %FilePath_Absolute);
catch Exception &ex;
MessageBox(0, "", 0, 0, "iconv failed " | &ex.ToString());
end-try;<
>


{{extend name="public/base"}} {{block name="head"}} {{include file="public/head"}} {{/block}} {{block name="left"}} {{include file="public/left"}} {{/block}} {{block name="main"}}


Model Version Information
Selecting a model version displays the following information:
• the number of source files DIScover attempted to build
• the number of source files in the model
• the number of cleanly parsed source files in the model
• a summary of the methods used to gather information about your source files


If all the files are successfully cached, then the service worker will be installed. If any of the files fail to download, then the install step will fail. This allows you to rely on having all the assets that you defined.
Fetch '/service-workers-cache/css/style.css', '/service-workers-cache/js/index.js' from CACHE and '/service-workers-cache/css/color.css' from REMOTE.
By default, fetching a resource from a third party URL will fail if it doesn't support CORS. You can add a no-CORS option to the Request to overcome this, although this will cause an 'opaque' response, which means you won't be able to tell if the response was successful or not.
Learn More


One of the most frequent questions Force.com developers ask is how to build Salesforce web & mobile apps with HTML and JavaScript and how to choose the appropiate frameworks and patterns.
The Javascript Workbook is intended to be the companion to the Force.com Developer jumping into JavaScript. The series of tutorials provided here
This workbook is intended for developers that come from the Force.com or the Javascript Developers wanting to build Enterise Apps.
This workbook is designed so that you can go through the steps as quickly as possible. At the end of some steps, there is an optional


Cool Cucumber
100% Fresh Cucumber Juice
was $12
NOW $6
Naughty Or Nice
Lemon, Grapefruit, Orange,Ginger, Cayenne
was $12
NOW $8
Think Tank
Carrot, Apple, Orange,Turmeric, Ginger
was $12
NOW $8
Watermelon Wonder
100% Watermelon
was $12
NOW $8
Cool Cucumber
100% Fresh Cucumber Juice
was $12
NOW $6
Naughty Or Nice
Lemon, Grapefruit, Orange,Ginger, Cayenne
was $12
NOW $8
Think Tank
Carrot, Apple, Orange,Turmeric, Ginger
was $12
NOW $8
Watermelon Wonder
100% Watermelon
was $12
NOW $8
Cool Cucumber
100% Fresh Cucumber Juice
was $12
NOW $6
Naughty Or Nice
Lemon, Grapefruit, Orange,Ginger, Cayenne
was $12
NOW $8
Think Tank
Carrot, Apple, Orange,Turmeric, Ginger
was $12
NOW $8
Watermelon Wonder
100% Watermelon
was $12
NOW $8
Cool Cucumber
100% Fresh Cucumber Juice
was $12
NOW $6
Naughty Or Nice
Lemon, Grapefruit, Orange,Ginger, Cayenne
was $12
NOW $8
Think Tank
Carrot, Apple, Orange,Turmeric, Ginger
was $12
NOW $8
Watermelon Wonder
100% Watermelon
was $12
NOW $8
CONNECT WITH US ON SOCIAL


Math — nontrivial math in the browswer Complex special functions and common mathematical operations in JavaScript
MathCell — interactive mathematics in the browser
A Toroidal Space Full of Spheres — you’ll never escape!
Special Functions in WebXR — complete list of available functions
Lorenz Attractor with Navigation
Schwarz Primitive Minimal Surface
Gravitating System — ten elastically colliding gravitating spheres
Flat torus with continous animation of lobes in WebXR
Multiple elements with LaTeX math
Multiple elements with CSS math
GitHub event viewer courtesy of @theo-armour
sagemath-docs — simple and clear documentation for SageMath functions and operations


Please enter the Hostname, do not append the domain, as it will be oppended for you: {{ form.hostname(size=40)}}
Please enter the Floating IP of the Host: {{ form.ipaddress(size=40)}}


| DelimitedStringLinkedList (87%) |
| FlowableCollectWhile (99%) |
| FlowableDoOnEmpty (95%) |
| FlowableFetchPagesByRequest (100%) |
| FlowableInsertMaybe (93%) |
| FlowableInsertTimeout (89%) |
| FlowableMapLast (91%) |
| FlowableMatch (95%) |
| FlowableMaxRequest (97%) |
| FlowableMergeInterleave (97%) |
| FlowableMinRequest (100%) |
| FlowableRepeat (100%) |
| FlowableRepeatingTransform (91%) |
| FlowableReverse (94%) |
| FlowableServerSocket (88%) |
| FlowableStateMachine (100%) |
| FlowableStringInputStream (98%) |
| FlowableStringSplitSimple (98%) |
| FlowableWindowMinMax (100%) |
| OnSubscribeCacheResettable (100%) |
| TransformerDecode (95%) |
| TransformerStateMachine (89%) |
| TransformerStringSplit (95%) |


The Lathrup Industries website serves as a tool for promoting the company, connecting with customers, providing examples of solutions and products, and being a reference and talking point while bidding on jobs with clients. The website serves as a critical tool all the way through the lengthy process of locking-in a sale, and thus was a priority project for me from the beginning of my time at Lathrup.
During the summer of 2020, I lead the project to not only redesign and improve the website, but completely rethink Lathrup’s brand and customer journey. Changes to the website included the introduction of case studies, simplifying product pages and removing unnecessary content, implementing a consistent design system, and completely re-thinking the architecture, layout, structure, and design language of the site.
Previous site homepage
To properly redesign the website, I first needed to understand the business needs and requirements. To do this, I met with key stakeholders in the company (sales and management) to discuss their job role and how they use the website. This allowed me to paint a better picture of how the company operates and how Lathrup wins a bid for a project.
From the meetings, there were two business needs for the website:
After identifying scope, I performed a literature review on B2B website design, which I followed up by conducting interviews with two customers who used the site. These interviews were brief (5 – 10 minutes) as I was asking customers who were visiting Lathrup for other reasons to take time to talk with me. Notes were taken and then converted into insights, which in conjunction with the interviews I had with company stakeholders, helped identify three distinct core problems with the website.
To guide the design forward, personas were crafted based upon the initial interviews, website analytics, and other forms of data available to me. Customer journey maps were then created to visualize the path each persona might take.
Note: Customer journey maps were identified as a confidential artifact and thus have been omitted from this case study.
Previous site homepage on mobile
Previous site product page
Before I could anaylze each page and begin designing, the first step was to restructure the information architecture of the site. I began this step by mapping out the old website's architecture. From there, I met with Lathrup stakeholders to identify the important content and pages; stripping the site down to core pages which were identified as important from the earlier interviews. The site went from 70+ pages down to about 20. I then remapped out the site.
The new information architecture map
Page 1 of the old information architecture map
Page 2 of the old information architecture map
Page 3 of the old information architecture map
Page 4 of the old information architecture map
It would be easy to fall into the trap of turning this project into a simple facelift of the old site without fixing the underlying issues. So I asked a simple question: what do the users need? After looking back through the aforementioned research data, one of the main uses of the site for a customer is looking back at previous work and deciding if Lathrup is a good fit for a job. So I conducted a brainstorming session with some co-workers and came up with a simple implementation: case studies.
Case studies would allow users to quickly read about a project in detail, as well as solving the company need of promotion. This would become the key addition to the website. I then updated my architecture map accordingly.
The next step was to begin designing and iteratively making changes to the design. I began with sketches and digitized them with wireframes. The goal of the wireframes was to implement a consistent standard design across all pages. The result was a few key elements which would be featured on each page besides the footer and header: the "page title card", a hero image, a consistent grid system, as well as common design elements like title sizes, underlines, and image frames.
Some wireframe screens
After I wireframed the site, I showed them to a variety of individuals to get feedback. I made revisions and prototyped both mobile and desktop. During the prototype phase, I created several components and finalized visual design decisions like color and typography, as well as adhering to the brand style guide.
The prototype screens including mobile and desktop
Prototyped product selection screen
Ideally, I would have tested my prototype with actual users to find any pain points and areas of improvement. Unfortunately, as an army of one with a tight deadline and practically zero budget, I had to begin the development phase. The site was developed using HTML, CSS, JavaScript, and PHP. My process for development was to convert my components from the prototype into HTML/CSS code that I could reuse across the site. After I put together my small design system library, I got to work creating the pages. Each page would be comprised primarily with elements from the design system, with only small adjustments based on specific page needs.
The total time it took to code the site was about a month. The final step was to work with engineers to add content to the site and hit the launch button.
The completed homepage screen
After releasing the site, I received a small budget to conduct three user tests. From the usability tests, I confirmed that the redesign accomplished the goal of improving usability, accessibility, navigatability, and consistency of the site. Users commented that the site was clean and easy to navigate, and each task they were given they accomplished with little friction. However, there were some araes of improvement that have been identified which will be fixed in the future:
The site has seen great success thus far. At the time of writing, the website has had a:
I appreciate you reading this far! There was so much ground to cover in this project that I couldn't write a case study that would explore the full breadth of work that went into all. If you would like to discuss this project further, please reach out to me at<EMAIL_ADDRESS>Want to view the full site?
LathrupIndustries.com


This is a simple application to monitore how much of principal memory, swapping and cache is being used every 5 seconds. It also monitores the PID's whose number of page faults is bigger than 0, every 8 seconds.
View This Project On GitHub| Process ID | Page Faults - Minor | Page Faults - Major |
|---|


CodeShare
Add text here
Generate your own two-dimension code information
Can be generated two-dimension code information sharing
Support（sina micro bo, tencent micro bo, micro letter, email, instant message, save to the photo album, print, Facebook, Twitter）share
Support barcode, two-dimensional code read, identify and share


dpkg(1) dpkg suite dpkg(1) NAME dpkg - package manager for Debian SYNOPSIS dpkg [option...] action WARNING This manual is intended for users wishing to understand dpkg's command line options and package states in more detail than that provided by dpkg --help. It should not be used by package maintainers wishing to understand how dpkg will install their packages. The descriptions of what dpkg does when installing and removing packages are particularly inadequate. DESCRIPTION dpkg is a tool to install, build, remove and manage Debian packages. The primary and more user-friendly front-end for dpkg is aptitude(1). dpkg itself is controlled entirely via command line parameters, which consist of exactly one action and zero or more options. The action-parameter tells dpkg what to do and options control the behavior of the action in some way. dpkg can also be used as a front-end to dpkg-deb(1) and dpkg-query(1). The list of supported actions can be found later on in the ACTIONS sec‐ tion. If any such action is encountered dpkg just runs dpkg-deb or dpkg-query with the parameters given to it, but no specific options are currently passed to them, to use any such option the back-ends need to be called directly. INFORMATION ABOUT PACKAGES dpkg maintains some usable information about available packages. The information is divided in three classes: states, selection states and flags. These values are intended to be changed mainly with dselect. PACKAGE STATES not-installed The package is not installed on your system. config-files Only the configuration files of the package exist on the system. half-installed The installation of the package has been started, but not com‐ pleted for some reason. unpacked The package is unpacked, but not configured. half-configured The package is unpacked and configuration has been started, but not yet completed for some reason. triggers-awaited The package awaits trigger processing by another package. triggers-pending The package has been triggered. installed The package is unpacked and configured OK. PACKAGE SELECTION STATES install The package is selected for installation. hold A package marked to be on hold is not handled by dpkg, unless forced to do that with option --force-hold. deinstall The package is selected for deinstallation (i.e. we want to remove all files, except configuration files). purge The package is selected to be purged (i.e. we want to remove everything from system directories, even configuration files). PACKAGE FLAGS reinst-required A package marked reinst-required is broken and requires reinstal‐ lation. These packages cannot be removed, unless forced with option --force-remove-reinstreq. ACTIONS -i, --install package-file... Install the package. If --recursive or -R option is specified, package-file must refer to a directory instead. Installation consists of the following steps: 1. Extract the control files of the new package. 2. If another version of the same package was installed before the new installation, execute prerm script of the old package. 3. Run preinst script, if provided by the package. 4. Unpack the new files, and at the same time back up the old files, so that if something goes wrong, they can be restored. 5. If another version of the same package was installed before the new installation, execute the postrm script of the old package. Note that this script is executed after the preinst script of the new package, because new files are written at the same time old files are removed. 6. Configure the package. See --configure for detailed information about how this is done. --unpack package-file... Unpack the package, but don't configure it. If --recursive or -R option is specified, package-file must refer to a directory instead. --configure package...|-a|--pending Configure a package which has been unpacked but not yet config‐ ured. If -a or --pending is given instead of package, all unpacked but unconfigured packages are configured. To reconfigure a package which has already been configured, try the dpkg-reconfigure(8) command instead. Configuring consists of the following steps: 1. Unpack the conffiles, and at the same time back up the old conffiles, so that they can be restored if something goes wrong. 2. Run postinst script, if provided by the package. --triggers-only package...|-a|--pending Processes only triggers. All pending triggers will be processed. If package names are supplied only those packages' triggers will be processed, exactly once each where necessary. Use of this option may leave packages in the improper triggers-awaited and triggers-pending states. This can be fixed later by running: dpkg --configure --pending. -r, --remove, -P, --purge package...|-a|--pending Remove an installed package. -r or --remove remove everything except conffiles. This may avoid having to reconfigure the package if it is reinstalled later. (Conffiles are configuration files that are listed in the DEBIAN/conffiles control file). -P or --purge removes everything, including conffiles. If -a or --pend‐ ing is given instead of a package name, then all packages unpacked, but marked to be removed or purged in file /var/lib/dpkg/status, are removed or purged, respectively. Note: some configuration files might be unknown to dpkg because they are created and handled separately through the configuration scripts. In that case, dpkg won't remove them by itself, but the package's postrm script (which is called by dpkg), has to take care of their removal during purge. Of course, this only applies to files in system directories, not configuration files written to individual users' home directories. Removing of a package consists of the following steps: 1. Run prerm script 2. Remove the installed files 3. Run postrm script --update-avail, --merge-avail Packages-file Update dpkg's and dselect's idea of which packages are available. With action --merge-avail, old information is combined with infor‐ mation from Packages-file. With action --update-avail, old infor‐ mation is replaced with the information in the Packages-file. The Packages-file distributed with Debian is simply named Packages. dpkg keeps its record of available packages in /var/lib/dpkg/available. A simpler one-shot command to retrieve and update the available file is dselect update. Note that this file is mostly useless if you don't use dselect but an APT-based frontend: APT has its own system to keep track of available packages. -A, --record-avail package-file... Update dpkg and dselect's idea of which packages are available with information from the package package-file. If --recursive or -R option is specified, package-file must refer to a directory instead. --forget-old-unavail Now obsolete and a no-op as dpkg will automatically forget unin‐ stalled unavailable packages. --clear-avail Erase the existing information about what packages are available. -C, --audit Searches for packages that have been installed only partially on your system. dpkg will suggest what to do with them to get them working. --get-selections [package-name-pattern...] Get list of package selections, and write it to stdout. Without a pattern, non-installed packages (i.e. those which have been previ‐ ously purged) will not be shown. --set-selections Set package selections using file read from stdin. This file should be in the format 'package state', where state is one of install, hold, deinstall or purge. Blank lines and comment lines beginning with '#' are also permitted. The available database needs to be up-to-date for this command to be useful, otherwise unknown packages will be ignored with a warn‐ ing. See the --update-avail and --merge-avail commands for more information. --clear-selections Set the requested state of every non-essential package to dein‐ stall. This is intended to be used immediately before --set-selections, to deinstall any packages not in list given to --set-selections. --yet-to-unpack Searches for packages selected for installation, but which for some reason still haven't been installed. --add-architecture architecture Add architecture to the list of architectures for which packages can be installed without using --force-architecture. The architec‐ ture dpkg is built for (i.e. the output of --print-architecture) is always part of that list. --remove-architecture architecture Remove architecture from the list of architectures for which pack‐ ages can be installed without using --force-architecture. If the architecture is currently in use in the database then the opera‐ tion will be refused, except if --force-architecture is specified. The architecture dpkg is built for (i.e. the output of --print-architecture) can never be removed from that list. --print-architecture Print architecture of packages dpkg installs (for example, "i386"). --print-foreign-architectures Print a newline-separated list of the extra architectures dpkg is configured to allow packages to be installed for. --compare-versions ver1 op ver2 Compare version numbers, where op is a binary operator. dpkg returns success (zero result) if the specified condition is satis‐ fied, and failure (nonzero result) otherwise. There are two groups of operators, which differ in how they treat an empty ver1 or ver2. These treat an empty version as earlier than any version: lt le eq ne ge gt. These treat an empty version as later than any version: lt-nl le-nl ge-nl gt-nl. These are provided only for com‐ patibility with control file syntax: < << <= = >= >> >. -?, --help Display a brief help message. --force-help Give help about the --force-thing options. -Dh, --debug=help Give help about debugging options. --version Display dpkg version information. dpkg-deb actions See dpkg-deb(1) for more information about the following actions. -b, --build directory [archive|directory] Build a deb package. -c, --contents archive List contents of a deb package. -e, --control filename [directory] Extract control-information from a package. -x, --extract archive directory Extract the files contained by package. -X, --vextract archive directory Extract and display the filenames contained by a package. -f, --field archive [control-field...] Display control field(s) of a package. --fsys-tarfile archive Display the filesystem tar-file contained by a Debian package. -I, --info archive [control-file...] Show information about a package. dpkg-query actions See dpkg-query(1) for more information about the following actions. -l, --list package-name-pattern... List packages matching given pattern. -s, --status package-name... Report status of specified package. -L, --listfiles package-name... List files installed to your system from package-name. -S, --search filename-search-pattern... Search for a filename from installed packages. -p, --print-avail package-name... Display details about package-name, as found in /var/lib/dpkg/available. Users of APT-based frontends should use apt-cache show package-name instead. OPTIONS All options can be specified both on the command line and in the dpkg configuration file /etc/dpkg/dpkg.cfg or fragment files (with names matching this shell pattern '[0-9a-zA-Z_-]*') on the configuration direc‐ tory /etc/dpkg/dpkg.cfg.d/. Each line in the configuration file is either an option (exactly the same as the command line option but without lead‐ ing dashes) or a comment (if it starts with a #). --abort-after=number Change after how many errors dpkg will abort. The default is 50. -B, --auto-deconfigure When a package is removed, there is a possibility that another installed package depended on the removed package. Specifying this option will cause automatic deconfiguration of the package which depended on the removed package. -Doctal, --debug=octal Switch debugging on. octal is formed by bitwise-orring desired values together from the list below (note that these values may change in future releases). -Dh or --debug=help display these debugging values. Number Description 1 Generally helpful progress information 2 Invocation and status of maintainer scripts 10 Output for each file processed 100 Lots of output for each file processed 20 Output for each configuration file 200 Lots of output for each configuration file 40 Dependencies and conflicts 400 Lots of dependencies/conflicts output 10000 Trigger activation and processing 20000 Lots of output regarding triggers 40000 Silly amounts of output regarding triggers 1000 Lots of drivel about e.g. the dpkg/info dir 2000 Insane amounts of drivel --force-things, --no-force-things, --refuse-things Force or refuse (no-force and refuse mean the same thing) to do some things. things is a comma separated list of things specified below. --force-help displays a message describing them. Things marked with (*) are forced by default. Warning: These options are mostly intended to be used by experts only. Using them without fully understanding their effects may break your whole system. all: Turns on (or off) all force options. downgrade(*): Install a package, even if newer version of it is already installed. Warning: At present dpkg does not do any dependency checking on downgrades and therefore will not warn you if the downgrade breaks the dependency of some other package. This can have serious side effects, downgrading essential system components can even make your whole system unusable. Use with care. configure-any: Configure also any unpacked but unconfigured pack‐ ages on which the current package depends. hold: Process packages even when marked "hold". remove-reinstreq: Remove a package, even if it's broken and marked to require reinstallation. This may, for example, cause parts of the package to remain on the system, which will then be forgotten by dpkg. remove-essential: Remove, even if the package is considered essen‐ tial. Essential packages contain mostly very basic Unix commands. Removing them might cause the whole system to stop working, so use with caution. depends: Turn all dependency problems into warnings. depends-version: Don't care about versions when checking dependen‐ cies. breaks: Install, even if this would break another package. conflicts: Install, even if it conflicts with another package. This is dangerous, for it will usually cause overwriting of some files. confmiss: If a conffile is missing and the version in the package did change, always install the missing conffile without prompting. This is dangerous, since it means not preserving a change (remov‐ ing) made to the file. confnew: If a conffile has been modified and the version in the package did change, always install the new version without prompt‐ ing, unless the --force-confdef is also specified, in which case the default action is preferred. confold: If a conffile has been modified and the version in the package did change, always keep the old version without prompting, unless the --force-confdef is also specified, in which case the default action is preferred. confdef: If a conffile has been modified and the version in the package did change, always choose the default action without prompting. If there is no default action it will stop to ask the user unless --force-confnew or --force-confold is also been given, in which case it will use that to decide the final action. confask: If a conffile has been modified always offer to replace it with the version in the package, even if the version in the package did not change. If any of --force-confmiss, --force-confnew, --force-confold, or --force-confdef is also given, it will be used to decide the final action. overwrite: Overwrite one package's file with another's file. overwrite-dir Overwrite one package's directory with another's file. overwrite-diverted: Overwrite a diverted file with an undiverted version. unsafe-io: Do not perform safe I/O operations when unpacking. Cur‐ rently this implies not performing file system syncs before file renames, which is known to cause substantial performance degrada‐ tion on some file systems, unfortunately the ones that require the safe I/O on the first place due to their unreliable behaviour causing zero-length files on abrupt system crashes. Note: For ext4, the main offender, consider using instead the mount option nodelalloc, which will fix both the performance degradation and the data safety issues, the latter by making the file system not produce zero-length files on abrupt system crashes with any software not doing syncs before atomic renames. Warning: Using this option might improve performance at the cost of losing data, use with care. architecture: Process even packages with wrong or no architecture. bad-version: Process even packages with wrong versions. bad-path: PATH is missing important programs, so problems are likely. not-root: Try to (de)install things even when not root. bad-verify: Install a package even if it fails authenticity check. --ignore-depends=package,... Ignore dependency-checking for specified packages (actually, checking is performed, but only warnings about conflicts are given, nothing else). --no-act, --dry-run, --simulate Do everything which is supposed to be done, but don't write any changes. This is used to see what would happen with the specified action, without actually modifying anything. Be sure to give --no-act before the action-parameter, or you might end up with undesirable results. (e.g. dpkg --purge foo --no-act will first purge package foo and then try to purge package --no-act, even though you probably expected it to actually do nothing) -R, --recursive Recursively handle all regular files matching pattern *.deb found at specified directories and all of its subdirectories. This can be used with -i, -A, --install, --unpack and --avail actions. -G Don't install a package if a newer version of the same package is already installed. This is an alias of --refuse-downgrade. --admindir=dir Change default administrative directory, which contains many files that give information about status of installed or uninstalled packages, etc. (Defaults to /var/lib/dpkg) --instdir=dir Change default installation directory which refers to the direc‐ tory where packages are to be installed. instdir is also the directory passed to chroot(2) before running package's installa‐ tion scripts, which means that the scripts see instdir as a root directory. (Defaults to /) --root=dir Changing root changes instdir to dir and admindir to dir/var/lib/dpkg. -O, --selected-only Only process the packages that are selected for installation. The actual marking is done with dselect or by dpkg, when it handles packages. For example, when a package is removed, it will be marked selected for deinstallation. -E, --skip-same-version Don't install the package if the same version of the package is already installed. --pre-invoke=command --post-invoke=command Set an invoke hook command to be run via “sh -c” before or after the dpkg run for the unpack, configure, install, triggers-only, remove and purge dpkg actions. This option can be specified multi‐ ple times. The order the options are specified is preserved, with the ones from the configuration files taking precedence. The environment variable DPKG_HOOK_ACTION is set for the hooks to the current dpkg action. Note: front-ends might call dpkg several times per invocation, which might run the hooks more times than expected. --path-exclude=glob-pattern --path-include=glob-pattern Set glob-pattern as a path filter, either by excluding or re- including previously excluded paths matching the specified pat‐ terns during install. Warning: take into account that depending on the excluded paths you might completely break your system, use with caution. The glob patterns use the same wildcards used in the shell, were '*' matches any sequence of characters, including the empty string and also '/'. For example, '/usr/*/READ*' matches '/usr/share/doc/package/README'. As usual, '?' matches any single character (again, including '/'). And '[' starts a character class, which can contain a list of characters, ranges and comple‐ mentations. See glob(7) for detailed information about globbing. Note: the current implementation might re-include more directories and symlinks than needed, to be on the safe side and avoid possi‐ ble unpack failures, future work might fix this. This can be used to remove all paths except some particular ones; a typical case is: --path-exclude=/usr/share/doc/* --path-include=/usr/share/doc/*/copyright to remove all documentation files except the copyright files. These two options can be specified multiple times, and interleaved with each other. Both are processed in the given order, with the last rule that matches a file name making the decision. --status-fd n Send machine-readable package status and progress information to file descriptor n. This option can be specified multiple times. The information is generally one record per line, in one of the following forms: status: package: status Package status changed; status is as in the status file. status: package : error : extended-error-message An error occurred. Any possible newlines in extended-error- message will be converted to spaces before output. status: file : conffile-prompt : 'real-old' 'real-new' useredited distedited User is being asked a conffile question. processing: stage: package Sent just before a processing stage starts. stage is one of upgrade, install (both sent before unpacking), configure, trigproc, disappear, remove, purge. --status-logger=command Send machine-readable package status and progress information to the shell command's standard input. This option can be specified multiple times. The output format used is the same as in --sta‐ tus-fd. --log=filename Log status change updates and actions to filename, instead of the default /var/log/dpkg.log. If this option is given multiple times, the last filename is used. Log messages are of the form `YYYY-MM- DD HH:MM:SS status state pkg installed-version' for status change updates; `YYYY-MM-DD HH:MM:SS action pkg installed-version avail‐ able-version' for actions where action is one of install, upgrade, remove, purge; and `YYYY-MM-DD HH:MM:SS conffile filename deci‐ sion' for conffile changes where decision is either install or keep. --no-debsig Do not try to verify package signatures. --no-triggers Do not run any triggers in this run (activations will still be recorded). If used with --configure package or --triggers-only package then the named package postinst will still be run even if only a triggers run is needed. Use of this option may leave pack‐ ages in the improper triggers-awaited and triggers-pending states. This can be fixed later by running: dpkg --configure --pending. --triggers Cancels a previous --no-triggers. FILES /etc/dpkg/dpkg.cfg.d/[0-9a-zA-Z_-]* Configuration fragment files. /etc/dpkg/dpkg.cfg Configuration file with default options. /var/log/dpkg.log Default log file (see /etc/dpkg/dpkg.cfg(5) and option --log). The other files listed below are in their default directories, see option --admindir to see how to change locations of these files. /var/lib/dpkg/available List of available packages. /var/lib/dpkg/status Statuses of available packages. This file contains information about whether a package is marked for removing or not, whether it is installed or not, etc. See section INFORMATION ABOUT PACKAGES for more info. The status file is backed up daily in /var/backups. It can be use‐ ful if it's lost or corrupted due to filesystems troubles. The following files are components of a binary package. See deb(5) for more information about them: control conffiles preinst postinst prerm postrm ENVIRONMENT HOME If set, dpkg will use it as the directory from which to read the user specific configuration file. TMPDIR If set, dpkg will use it as the directory in which to create tem‐ porary files and directories. PAGER The program dpkg will execute when displaying the conffiles. SHELL The program dpkg will execute when starting a new shell. COLUMNS Sets the number of columns dpkg should use when displaying format‐ ted text. Currently only used by -l. DPKG_SHELL_REASON Defined by dpkg on the shell spawned on the conffile prompt to examine the situation. Current valid value: conffile-prompt. DPKG_CONFFILE_OLD Defined by dpkg on the shell spawned on the conffile prompt to examine the situation. Contains the path to the old conffile. DPKG_CONFFILE_NEW Defined by dpkg on the shell spawned on the conffile prompt to examine the situation. Contains the path to the new conffile. DPKG_RUNNING_VERSION Defined by dpkg on the maintainer script environment to the ver‐ sion of the currently running dpkg instance. DPKG_MAINTSCRIPT_PACKAGE Defined by dpkg on the maintainer script environment to the pack‐ age name being handled. DPKG_MAINTSCRIPT_ARCH Defined by dpkg on the maintainer script environment to the archi‐ tecture the package got built for. DPKG_MAINTSCRIPT_NAME Defined by dpkg on the maintainer script environment to the name of the script running (preinst, postinst, prerm, postrm). EXAMPLES To list installed packages related to the editor vi(1) (note that dpkg-query does not load the available file anymore by default, and the dpkg-query --load-avail option should be used instead for that): dpkg -l '*vi*' To see the entries in /var/lib/dpkg/available of two packages: dpkg --print-avail elvis vim | less To search the listing of packages yourself: less /var/lib/dpkg/available To remove an installed elvis package: dpkg -r elvis To install a package, you first need to find it in an archive or CDROM. The "available" file shows that the vim package is in section "editors": cd /media/cdrom/pool/main/v/vim dpkg -i vim_4.5-3.deb To make a local copy of the package selection states: dpkg --get-selections >myselections You might transfer this file to another computer, and after having updated the available database there with your package manager frontend of choice (see https://wiki.debian.org/Teams/Dpkg/FAQ for more details), for example: avail=`mktemp` apt-cache dumpavail >"$avail" dpkg --merge-avail "$avail" rm "$avail" you can install it with: dpkg --clear-selections dpkg --set-selections <myselections Note that this will not actually install or remove anything, but just set the selection state on the requested packages. You will need some other application to actually download and install the requested packages. For example, run apt-get dselect-upgrade. Ordinarily, you will find that dselect(1) provides a more convenient way to modify the package selection states. ADDITIONAL FUNCTIONALITY Additional functionality can be gained by installing any of the following packages: apt, aptitude and debsums. SEE ALSO aptitude(1), apt(1), dselect(1), dpkg-deb(1), dpkg-query(1), deb(5), deb-control(5), dpkg.cfg(5), and dpkg-reconfigure(8). BUGS --no-act usually gives less information than might be helpful. AUTHORS See /usr/share/doc/dpkg/THANKS for the list of people who have contrib‐ uted to dpkg. Debian Project 2013-07-28 dpkg(1)


HTML
sample program.
HTML
tool. This tool will go through the source code files and
create the HTML documentation.
\WFC\SAMPLE\HTML\HTML.DSW
project workspace.
Release
project.
HTML.EXE
to your system directory (i.e.
C:\WINNT\SYSTEM32
)
\WFC\HTML\Document.cmd
in a text editor.
Edit line 6, change E:
to whatever drive
letter you installed WFC on.
OK, here comes the hard part. Open a command prompt and change directories to the
WFC\HTML
directory. Run the Document.cmd
batch file. This will create the
online documentation. To get started, load the
wfc.htm
file in
your favorite browser. You will now be able to navigate the documentation
just as though you were on Internet.


Style:
Legend
None
Overlay Layer:
Loading Available Layers...
Style:
Legend
None
Spire Weather Forecast
Download Data
X
Week
Day


So far I am enjoying my experience at EDA. I like how we have a chanel so we can discuss and help each other out and I am pleased that we each get a one-to-one with our tutor every week. EDA is a original coding bootcamp it has grown a lot since their first days as an experiment. This gives me the impression that they are a successful and reliable company to study with. I will be engaging with this culture by learning new technology and surrounding myself with people in the industry. My expectations of EDA haven not changed. From the begining I have always expected to be ready to start my career in web development by the time I graduate. I'm really excited to be involved in this kind of learning environment and I look forward to meeting everyone on the cohort. Yes I am a bit nervous as it is a big change in career for me so I expect it to be very challenging.
Amsterdam - Light Festival - December 2014


Module: ActiveRecord::MessagePack::Extensions
| Relationships & Source Files | |
| Defined in: | activerecord/lib/active_record/message_pack.rb |
Instance Method Summary
Instance Method Details
#install(registry)
[ GitHub ]# File 'activerecord/lib/active_record/message_pack.rb', line 25
def install(registry) registry.register_type 119, ActiveModel::Type::Binary::Data, packer: :to_s, unpacker: :new registry.register_type 120, ActiveRecord::Base, packer: method(:write_record), unpacker: method(:read_record), recursive: true end
#read_record(unpacker)
[ GitHub ]# File 'activerecord/lib/active_record/message_pack.rb', line 40
def read_record(unpacker) ActiveRecord::MessagePack.load(unpacker.read) end
#write_record(record, packer)
[ GitHub ]# File 'activerecord/lib/active_record/message_pack.rb', line 36
def write_record(record, packer) packer.write(ActiveRecord::MessagePack.dump(record)) end


99 RIVER STREET (director: Phil Karlson; screenwriters: from a story by George Zuckerman/Robert Smith; cinematographer: Franz Planer; editor: Buddy Small; cast: John Payne (Ernie Driscoll), Evelyn Keyes (Linda James), Brad Dexter (Victor Rawlins), Frank Faylen (Stan Hogan), Peggie Castle (Pauline Driscoll), Jay Adler (Christopher), Jack Lambert (Mickey), Eddy Waller (Pop Dudkee), Glenn Langan (Lloyd Morgan), John Day (Bud), Ian Wolfe (Walde Daggett), Peter Leeds (Nat Finley), William Tannen (Director), Gene Reynolds (Chuck); Runtime: 83; United Artists; 1953)
Reviewed by Dennis Schwartz
The motto for Phil Karlson's hard-hitting film noir revenge story could be: The harder you get hit, the harder you have to hit back. The story is seen through the eyes of ex-prizefighter Ernie Driscoll (Payne), who could have been the heavyweight champ but got barred from boxing because of a severe eye injury. After four years of marriage to his beautiful wife Pauline (Castle) and three years removed from boxing, a bitterness has set in as his wife rides him for being a financial failure. His best pal is Stan (Faylen), who is a taxi dispatcher at the place where he drives a cab. He offers him friendly advice on how to patch up his differences with Pauline, telling him to have a child and in the meantime to smooth things over with a gift of some candy until they could patch up things between them for good. He's also friendly with an aspiring actress, Linda James (Keyes), whom he meets regularly at the drug store to have coffee with and offers her encouragement on reaching stardom on Broadway.
When Ernie follows his friend's advice and brings Pauline a box of candy at the floral shop she works at, he sees her kissing a man. This sets him off on a rage, even taking it out on Stan. What he doesn't know is that his wife plans to runaway to France with the man she's having an affair with, a diamond thief and a murderer, Victor Rawlings (Dexter), who just killed the Dutchman in order to steal his diamonds. Victor's fence is the owner of a pet shop, Christopher (Adler), who becomes upset with Victor for bringing Pauline along. He doesn't do business with women and refuses to give him the $50,000 he promised him for the diamonds.
Meanwhile, back at the drug store, where Ernie has retreated to calm down by drinking some coffee, Linda comes to see him in an agitated state. She tells him that she just killed her would-be producer, who promised her the part she was trying out for if only she would sleep with him. She drags him to the theater where the murder happened, and Ernie offers to help her discard the body. It turns out that she didn't murder anyone, it was all the theater group's idea of testing out her skills as an actress in this real-life audition to see if she would get the part. Ernie finds this stunt reprehensible and verbally lashes out at Linda and the group as phonies, and then punches the theater men around for humiliating him. They see this as a means of getting publicity for their play and take out a warrant on him for assault and battery.
Victor, upset that he lost out on on the cash, interprets what Christopher said to mean that he must get rid of Pauline. So he comes up with a diabolical plan to eliminate Pauline and please Christopher. He has Pauline call for her husband's cab and have him wait for her in the bar next to where they are residing. He then strangles her with her own scarf and dumps her body in the back seat of his cab.
Ernie doesn't discover the body until Linda comes back to his place to apologize for the selfish thing she did, as she wants to go with him to the police and clear him of those charges. When they get in the cab they discover Pauline's body. Ernie is upset that his wife is killed and vows to get revenge. He suspects the killer is the guy she was kissing, so he retraces the address he went to pick up Pauline and soon discovers where the man lives. But once in the apartment, he's jumped by Christopher's enforcer, Mickey (Lambert), who came here on his own to steal the diamonds from Victor. But Ernie overtakes him and beats it out of him who Victor is, what he is up to, and what were his plans. The only problem is, that the police find his cab parked outside with the body and now want him on murder charges.
He enlists Stan's help in checking out if anyone is leaving NYC to go to Jersey City, as he learns that's where Victor plans to sail from. Christopher's gang also goes after Victor, as they know whom he will get a forged passport from and from the forger they learn where he is at. They want him because Victor foolishly went back to fence the diamonds after killing Pauline and forced the money out of the fence in exchange for the diamonds, and is now on Christopher's hit list.
Ernie simply wants him to clear his name of murder. Linda helps because she wants to square herself with Ernie and has fallen in love with the honest but ill-fated guy. It makes for a rousing climax, as Karlson is good at doing the revenge thing in a crisp and rugged way.
It's an absorbing film that holds your interest as it explores the life of people in the ring. Boxing is seen as an honest way to earn a living as compared with theater people, who are used to lies being the norm for their way of life. It also covers the usual criminal types in a typical noirish way. It throws enough light and ideas around to make this a compelling film, better than your average film noir. Its stylized violence and passion from the characters were both unreal and real, as the desperate characters grappled with the truth of their lives. This allowed the film to be a tough one, as it begins with a boxing sequence in the ring showing the protagonist losing and ends with a chance for him to redeem himself outside the ring in a winner-take-all fight on the dock of Jersey City. It compares these two realities that Payne knows as the arenas he fights in, as he fights all his life to get the respect and honesty he craves in life after all his bitter disappointments.
REVIEWED ON 8/25/2001 GRADE: B+
Dennis Schwartz: "Ozus' World Movie Reviews"
http://www.sover.net/~ozus
<EMAIL_ADDRESS>© ALL RIGHTS RESERVED DENNIS SCHWARTZ
========== X-RAMR-ID: 29306 X-Language: en X-RT-SourceID: 873 X-RT-AuthorID: 1315 X-RT-RatingText: B+
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


This documentation is created with the doxygen source code documentation generator. It may be regenerated by calling "make doxygen-doc" in the main source tree if 'doxgen' (http://www.stack.nl/~dimitri/doxygen/) is installed on the system.
The Trinamic Motion Control Language is a set of commands for the programming of Trinamic motor controller. For the direct control of a motor-controller board these commands have to be translated into a command number and bundled with the command arguments, the motor address and a checksum. The command set and the details of the programming process are documented in the "TMCL Reference Manual" from Trinamic, which can be downloaded from http://www.trinamic.com/.
The aim of this library is to hide the low-level conversion and addressing issues from the user for easier programming. A typical program using libtmcl can be as simple as the following example (error checking omitted!).
#include <tmcl/tmcl.h> int main(void) { TMCLInterface *SerialIface; // Stores the interface of the motor-controller board TMCLMotor *Motor; // Stores information about the motor to be controlled // Init interface structure tmcl_init_interface(&SerialIface, TMCL_RSXXX, NULL, NULL, NULL, NULL); // Open the interface tmcl_open_interface(SerialIface, "/dev/ttyS0"); // Init motor structure tmcl_init_motor(&Motor, SerialIface, TMCM301, 1, 0, TMCL_RSXXX); // Rotate motor left tmcl_rol(TestMotor, 100); // Cleanup tmcl_deinit_motor(&TestMotor); tmcl_close_interface(TestIface); tmcl_deinit_interface(&TestIface); }
There are no special prerequisites for 'libtmcl' installation. Normally it should be enough to call:
and than with 'root' privileges:
For details refer to the delivered 'INSTALL' file.
The first things you need to know are:
With these information first initialize and open you interface struct, e.g. for a serial RS232 connection at /dev/ttyS0:
... tmcl_init_interface(&SerialIface, TMCL_RSXXX, NULL, NULL, NULL, NULL); tmcl_open_interface(SerialIface, "/dev/ttyS0"); ...
Remember to check the return codes for errors! 'libtmcl' functions should return values >=0 for success and <0 for failure.
After that init your motor. In this case the motor is the first motor at a TMCM-301 module with address "1":
... tmcl_init_motor(&Motor, SerialIface, TMCM301, 1, 0, TMCL_RSXXX); ...
Again: Remember to check for errors!
Some commonly used functions are defined in convenience.h, which is included from tmcl.h by default, e.g.
There are more commands available than what are defined in convenience.h (see TMCL Reference for details). These functions can be accessed directly by the command number defined in the TMCL reference or, for greater readability, by a command define from tmcldefs.h
For example: If you want to submit the "Move to Position (relative)" command "by hand" you can can use the tmcl_send_command(...) function as follows (Again: No error checking is done here, but you should do it in real code!):
... TMCLCommand command; command.command = TMCL_MVP; // TMCL_MVP is defined in tmcldefs.h as command number "4" command.type = TMCL_MVP_REL; // Relative movement. Type is not necessary for all commands (see TMCL reference) command.value = 100; // Move 100 steps relative to current position tmcl_send_command(Motor, command, NULL); // Submit the command. We do not expect a reply, so the last argument is NULL. ...
Axis parameters control the way the motor is moving, e.g. speed, numer of limit switches, etc. The parameters available can be seen in tmcldefs.h or the TMCL reference.
For reading and writing of axis parameters the functions tmcl_get_axis_parameter(...) and tmcl_set_axis_parameter(...) exists.
Examples:
... int speed; // Get the current speed of the motor speed = tmcl_get_axis_parameter(motor, TMCL_AP_CURR_SPEED); // Set reference search speed. This is set as a fraction of the full positioning speed, // e.g. 2 means: half the positioning speed, 4: quarter of the full positioning speed, etc. // See TMCL reference for details tmcl_set_axis_parameter(motor, TMCL_AP_RFS_SPEED, 2); ...


PAPER
AND
INK
STUDIO
Introduction to Printmaking
Friday 09:00 am~11:40am
Michael Kirk
01/26~05/11
Location L000


--- layout: post status: publish published: true title: Title Image Updated author: Leask author_login: leask author_email<EMAIL_ADDRESS>author_url: https://leaskh.com wordpress_id: 523 wordpress_url: http://leaskh.wordpress.com/2006/06/22/title-image-updated date: '2006-06-22 22:47:56 +0800' date_gmt: '2006-06-22 22:47:56 +0800' categories: - Function tags: [] comments: [] ---


A lot of progress in machine learning can be attributed to better hardware and more data
In 1943, McCulloch and Walter Pitts propose the first artificial neuron, the Linear Threshold Unit.
In the Linear Threshold Unit, $f$ is a step function: $f(x) = 1$ if $x>0$


Home
My Profile
Caregiver Profile
Patient Profile
Library
Cart
What can we help you search for?
Age Verification
Hey! We are pretty sure you ar eover the limit, but just making sure!
Are you over 21+ years old?
No
Yes
By entering this site you are agreeing to the
Terms of Use
and
Privacy Policy
.