Smalltalk: Collections
A Generic Dictionary
June 21, 2004 20:15:00.266
This week, I thought I'd experiment with some new Collection classes
The Hypothesis
Sometimes, I want a dictionary that looks up on some computed attribute of some keys. With the base library, I have two choices. Equality and Identity. Identity seems pretty straightforward. But sometimes just what makes an object "equal" in its role as a key, can be a little less. For example, what if I compute values for given floating point inputs, but I want them bin them to the nearest 1/10th. Or what if I want to lookup customers by their name, and it's ok to assume that the lookup is case insensitive.
We could apply the conversion function to our computed key going in and out of the dictionary, but that gets old.
Also, I'm intrigued that the one size fits all hash function might not always be all that is needed for a given domain. And if we could use a specific hash function we might be able to improve the speed of lookup.
The Implementation
What we need is a dictionary where we can parameterize the functions used to index keys in the dictionary. There are two functions involved, first the hash function, and secondly, the comparison function.
Smalltalk.Core defineClass: #GenericDictionary
 superclass: #{Core.Dictionary}
 indexedType: #objects
 private: false
 instanceVariableNames: 'compareFunction hashFunction '
 classInstanceVariableNames: ''
 imports: ''
 category: 'Collections-Unordered'
Now we've got our dictionary, we'll use blocks for our functions. Here's our simple setter. We just provide one dual arg version. One has to still observe the invariant that all objects which are equal MUST hash the same, so forcing the application program to set the two functions in context of each other is probably a good thing.
compare: a2ArgBlock hash: a1ArgBlock
 compareFunction := a2ArgBlock.
 hashFunction := a1ArgBlock
We want to initialize new instances to a good default state; the default use of = and hash seems good. Sets and thereby Dictionaries, don't use an initialize method, the use a setTally method at creation time to get initialized. So we override thusly:
setTally
 self compare: [:a :b | a = b] hash: [:obj | obj hash].
 ^super setTally
With that in place, it turns there's exactly one method that needs to be tuned to use our functions:
findKeyOrNil: key
 "overriden to use hash and compare function blocks, rather than hardcoded #hash and #="
 | location length probe pass |
 length := self basicSize.
 pass := 1.
 location := self initialIndexFor: (hashFunction value: key)
 boundedBy: length.

 [(probe := self basicAt: location) == nil
 or: [compareFunction value: probe key value: key]]
 whileFalse:
 [(location := location + 1) > length
 ifTrue:
 [location := 1.
 pass := pass + 1.
 pass > 2 ifTrue: [^self grow findKeyOrNil: key]]].
 ^location
That's all there is to it.
The Results
The case insensitive keys is kind of fun. It seems to work fine:
dict := GenericDictionary new
 compare: [:a :b | a equivalentTo: b ignoreCase: true]
 hash: [:a | a asLowercase hash].
dict add: 'Travis' -> 'Griggs'.
Transcript
 show: (dict at: 'travis');
 cr.
dict at: 'TRAVIS' put: '(The Kid in Old Yeller)'.
Transcript
 show: (dict at: 'traVIS');
 cr
outputs 'Griggs' and then '(The Kid in Old Yeller)' to my transcript.
I was kind of disappointed in my attempts to find a domain where I could best the default implementation for speed. Adding the extra level of block invocation will make our version a little slower than default for the default case. I used a timing test of the form:
| dict keys | dict := (GenericDictionary new: 1000).
rnd := Random new.
keys := (1 to: 100) collect: [:each | rnd next].
(Time millisecondsToRun: [1000 timesRepeat: [1 to: keys size do: [:i | dict at: (keys at: i) put: $y]]]) out.
It's not too bad, for this case, it was only about 10-15% slower. I then tried some floating point domains and specialized hash functions. In most cases, the default remained faster. Only after having a good look at the Float hash method was able to derive one where I could come out ahead:
| dict keys | dict := (GenericDictionary new: 1000) compare: [:a :b | a = b] hash: [:a | a truncated].
rnd := Random new.
keys := (1 to: 100) collect: [:each | rnd next * 1000].
(Time millisecondsToRun: [1000 timesRepeat: [1 to: keys size do: [:i | dict at: (keys at: i) put: $y]]]) out
This particular example assumes a set of floating point keys that are sparsely spread far apart. At this point, we know that simply truncating them for a hash function is enough to get good separation, the default hash function does a bit more than that. So what we lose in block invocation, we gain by much faster hashing, for an overall speed increase of about 2.5x.
I'd have to conclude that only in rare cases is one going to come up with specialized hash/compare functions that are going to be a significant speed improvement. It's still kind of nice to be able to use it as a binning histogram. Or a case insensitive dictionary. I'll have to cogitate to see if there aren't some more interesting problems we could throw this guy at. Can you think of any?
Comments
[isomer] June 22, 2004 8:26:59.488
Travis, this is useful for more than just dictionaries. It would be great to have a pluggable comparison block for sets, and sequenceable collections too.
Strongtalk
[water] June 23, 2004 1:51:25.296
The Strongtalk collections system has this up and down the hierarchy built in to the main classes. It doesn't take a performance hit because of the cheap inlining of blocks performed pervasively. VW may be sophisticated enough now to handle this.


text:
The CAA and SAH Release Guidelines for the Evaluation of Digital Scholarship in Art and Architectural History. The College Art Association and Society of Architectural Historians have released guidelines that include attention to process:
A work of digital scholarship often requires developing or refining a methodology. That work should be evaluated as a contribution to scholarship, just as methodological innovations in traditional scholarship are given weight in assessments of achievement. By extension, digital scholarship may need to be evaluated by the process of analysis in addition to the results of the analysis. (p. 5)
The guidelines go on how to identify the importance of the process through things like project narratives. They also talk about how the "inadequacy of existing peer review for digital scholarship is directly related to the changing nature of publications. In many cases, peer review for a digital publication is little different from that of a print publication,…" It sounds like the arts are going through the same discussions as we are.

source: openbmb/Ultra-FineWeb


Heading image
Heading icon Blog
Why use Skip Logic on your forms
Surveys are being carried out in shopping centres, the workplace, training establishments, in hospitality and many other sectors. Survey forms can often be lengthy and include unnecessary questions. Other important information as regards to or elaborating on a specific question is often omitted.
Administrators who know how people react when faced with a series of questions can easily make the experience more efficient and user friendly by using Skip Logic in their forms. Being able to bypass irrelevant questions hastens the survey time and improves the experience of the interviewee. In turn this can reflect on the professionalism of marketing companies or other organisations that are carrying out surveys or audits.
Skip Logic can be used on a form where a question requires the responder to make a choice. The function can also be used to bypass unnecessary questions, perhaps even skipping a whole section within a form based on the answer to a previous question. To increase efficiency, an administrator can build a customised route through questions presented on a survey or any other form. There are many examples of where Skip Logic can be used on survey forms.
A favourite example of ours, is to imagine If your question is to find out the respondents favourite Ice Cream, they need to have a choice! (Chocolate, Vanilla, Strawberry, Pistachio, Mix)
If the respondent picks "mix", this gives you the opportunity to ask a follow up question or skip other questions that may have been related to the other flavours.
For this example, If "Mix" was chosen, you can then ask for a detailed description of the "Mix" flavour of choice.
Alternatively, if "Pistachio" was chosen, you can ask a more specific follow up question like "Do you like any other types of Nut other than Pistachio?".
Another example is if you have a question that requires the person to state whether they are "married" or "single". Based on the answer, a further question might require details of a spouse or alternatively move to the next question or section if the responder is not in a relationship.
A responder could be asked to provide an answer based on which mode of transport they used to travel to work. The options might be "car, bus, bicycle or walking". These options present the administrator with the chance to ask follow up questions on how long it took to get to work by each mode of travel, bus routes used, travel alone or car share.
At NestForms, Skip Logic is easily applied when using certain components within your form that allow you to ask key questions. You can find more information by viewing the Skip Logic help page on the NestForms website.
FREE for
14 days!
Illustration mobile


Date.Between(d1, d2)); var result = rdb.Query("salesinvoice", "date.between(\"2001-1-1\",\"2010-1-1\""); var result = rdb.Query("salesinvoice", "serial.between(20,30)");
The same works for the WebStudio interface.
Also you can query any date column parts like this :
var result = rdb.Query(x => x.Date.Year == 2016 && x.Date.Month == 8); var result = rdb.Query(x => x.Date.Hour < 10);
Appendix v3.3.12 - In()
In this release you can now use In() on column and date parts so :
var result = rdb.Query(x => x.Serial.In(1,3,5,7)); var result = rdb.Query(x => x.Serial.In(new int[] { 1,3,5,7 })); var arr = new int[] {1,3,5,7}; var result = rdb.Query(x => x.Serial.In(arr)); var result = rdb.Query(x => x.Date.Year.In(2000, 2010)); var result = rdb.Query("salesinvoice", "serial.in(1,3,5,7)");
Also Between() has been extended to work with date parts :
var result = rdb.Query(x => x.Date.Hour.Between(12, 15);
History
LEAVE A REPLY


text:
Ever been to a fancy restaurant, ordered a dessert, and marveled at the fluffy cloud of whipped cream on top? Or perhaps you've been at a friend's house and watched them effortlessly create a frothy masterpiece with a canister in hand? The secret behind these culinary clouds is the "Whip It" cream charger. Let's dive into this world of airy delights!
What Exactly is a "Whip It" Cream Charger?
"Whip It" cream chargers are small, cylindrical cartridges filled with nitrous oxide (N2O). This gas is the magic ingredient that, when released into a container of liquid cream, aerates it, turning the liquid into a soft, fluffy whipped cream. Think of it as giving your cream a little pep talk to puff up and be the best version of itself!
How Does It Work?
The science behind it is pretty straightforward:
- The Canister: You start with a whipped cream dispenser, which is essentially a canister with a nozzle.
- The Charger: The "Whip It" cream charger is then attached to the dispenser.
- The Magic: When the nitrous oxide from the charger is released into the cream, it gets trapped in the fatty molecules of the cream, causing it to expand and become whipped cream.
- Voila!: Press the nozzle, and out comes the fluffy goodness!
Why "Whip It" Over Other Brands?
While there are several brands of cream chargers in the market, "Whip It" has garnered a reputation for its quality and consistency. They ensure that the nitrous oxide used is of food-grade quality, ensuring that your whipped cream is not only fluffy but also safe to consume.
While most of us are familiar with whipped cream atop our hot chocolates or pies, the culinary applications of "Whip It" chargers extend beyond just desserts. Gourmet chefs use them to create foams and espumas, adding a touch of sophistication to savory dishes.
A Word of Caution
While "Whip It" cream chargers are a fantastic culinary tool, it's essential to use them as intended. Misuse of nitrous oxide outside of its culinary application can be dangerous. Always prioritize safety!
Wrapping It Up
"Whip It" cream chargers have revolutionized the world of desserts and gourmet dishes, making it easier than ever for both professionals and home cooks to add a touch of elegance to their creations. So, the next time you see that perfect dollop of whipped cream, you'll know the magic behind it!
Remember, whether you're a culinary pro or just someone who loves a good dessert, "Whip It" cream chargers are your ticket to fluffy perfection! 🍦🍰🍮

source: m-a-p/FineFineWeb


1, @str2, @str3, @str4, @str5, @str6
The parameter list is the same as for log_insert_sp, except that there are two more parameters in the beginning, @@servername and @dbname. loopback_sp is implemented in C#, and you find the source code in the file slog_loopback.cs. The top of the file looks like this:
using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
[assembly: System.Security.AllowPartiallyTrustedCallers]
public partial class SqlEventLog {
 [System.Security.SecuritySafeCritical]
 [Microsoft.SqlServer.Server.SqlProcedure]
 public static void slog_loopback(
 String server,
 String dbname,
 out SqlInt64 logid,
 SqlString msgid,
 SqlInt32 errno,
 ...
 SqlString p6)
 {
First there is the regular set of using clauses and a class declaration that you can expect in a C# file. There is an assembly attribute and two method attributes. The method attribute
 [Microsoft.SqlServer.Server.SqlProcedure]
states that this method is a stored procedure in SQL Server. This is followed by the declaration of the method itself. For the first two parameters server and dbname, I use the standard C# type. For all other parameters I use the special Sqlxxx classes from the System.Data.SqlTypes namespace that are able to handle NULL values.
You can see here that p1 to p6 are SqlString. So why aren't they anything that maps to sql_variant? There is no specific class in for sql_variant in SqlTypes, but according to Books Online you can use System.Object for sql_variant. However, when testing on SQL 2008, I found that passing money and smallmoney values produced a TDS error while binary values were always passed as NULL. When testing on SQL 2012, I found that the issue with money and smallmoney had been addressed, but binary values were still passed as NULL. I filed a bug for the problem with binary values. I have not investigated what the situation is in SQL 2014 and later versions, but the bug was closed as External.
The first piece of code is where I set up the connection, and here are some important things to note:
SqlConnectionStringBuilder cstring = new SqlConnectionStringBuilder();
cstring.DataSource = server;
cstring.InitialCatalog = dbname;
cstring.IntegratedSecurity = true;
cstring.Enlist = false;
using (SqlConnection cnn = new SqlConnection(cstring.ConnectionString))
First thing to observe is that I use the class SqlConnectionStringBuilder rather than just forming the string by concatenation. This is a cleaner way to build a connection string, and it's essential to use this class when things like server and database are parameters. While very unlikely, they could include a semicolon in the name which would cause problems.
You may ask why server and dbname are parameters? Doesn't the C# stored procedure know in which database it is executing? And, by the way, the server could be left out, doesn't it default to "(local)"? Yes, if you leave out the server, the connection will be made to the local default instance, but you may be running in a named instance... And while the C# code could retrieve the name of the server and the database by running SELECT @@servername, db_name() on the context connection, it seemed simpler to have sqleventlog_sp to retrieve those values before calling loopback_sp.
I use integrated security for the loopback, and the net effect of this is that the loopback connection is always performed by the service account for SQL Server.
This line is extremely critical:
cstring.Enlist = false;
Without it, SqlClient will extend the current transaction to the new connection, thinking that we want a distributed transaction – the exact opposite of what we want.
The rest of the C# code sets up the call and defines all the parameters to log_insert_sp and this nothing I take up space with here.
The C# code has to be added to SQL Server, and the way to do that is to create an assembly. An assembly in SQL Server is always created with a certain permission set. The default is SAFE which you use for assemblies that perform all operations in .NET and do not access resources outside SQL Server. This may sound as a fit for the loopback procedure, but to make the loopback connection, we have to go outside SQL Server if only to come back. For this reason, the loopback assembly requires the permission set EXTERNAL_ACCESS and creating an assembly with this permission calls for some extra steps. The first is that when you compile the C# file you need to sign the assembly with a key, which you do like this:
SN -k keypair.snk
CSC /target:library /keyfile:keypair.snk slog_loopback.cs
SN presents itself as .NET Framework Strong Name Utility, and SN -? reveals that it can do quite a few things, but the only option of interest to us is ‑k which creates a pair of a public and a private key. By including the /keyfile option when compiling the DLL, you sign the assembly with the key. (In .NET parlance this creates a strong name, a term which I find more confusing than helpful.)
All modern Windows installations ship with CSC, the C# compiler (to be found in C:\Windows\Microsoft.NET\Framework\v2.0.50727), but to get access to SN you need to install Visual Studio or the .NET Framework SDK, the latter is a free download.
Note: Rather than compiling on the command line, you can build and deploy the assembly from Visual Studio. However, I am not position to describe how to do this, because Visual Studio goes over my head.
Next step is to create the assembly, and the code for this is in the file slog_loopback_assem.sql. This file consists of two parts. The first part operates in the master database and the purpose is to load the key in keypair.snk as an asymmetric key in SQL Server:
USE master
go
DECLARE @sql nvarchar(MAX),
 @password char(40)
SELECT @password = convert(char(36), newid()) + 'Ab4?'
SELECT @sql = 'CREATE ASYMMETRIC KEY slog_loopback FROM FILE = ' +
 '''$(CD)\keypair.snk'' ' +
 'ENCRYPTION BY PASSWORD = ''' + @password + ''''
PRINT @sql
EXEC(@sql)
When you create a key in SQL Server it must be protected by something, another key or a password. We use a password, but in this case there is no reason to track the password – if you were to replace the assembly, you would generate a new key and drop the old one. For this reason I create the password as a GUID and add some extra characters from different groups to ensure that I pass the complexity test for passwords in Windows. Because CREATE ASYMMETRIC KEY does not accept a variable for the password, I need to use dynamic SQL. The notation $(CD) looks sort of odd here, but this is an SQLCMD variable for the current directory and it is set in build_sqleventlog.bat.
Once the key has been created, I create a login from the key and grant this key the permission for EXTERNAL ACCESS ASSEMBLY:
CREATE LOGIN slog_loopback$asymkey FROM ASYMMETRIC KEY slog_loopback
GRANT EXTERNAL ACCESS ASSEMBLY TO slog_loopback$asymkey
You may be concerned by a login created on your server, but don't worry. It is not a login that can log in; it is only a container where to put the permissions, as keys cannot be granted permissions directly. The use of a dollar character in the login name is just a private convention I have embraced; there is no secret meaning with it.
In the second part of the file I return to the target database and load the assembly itself:
USE $(SQLCMDDBNAME)
go
CREATE ASSEMBLY slog_loopback FROM '$(CD)\slog_loopback.dll'
WITH PERMISSION_SET = EXTERNAL_ACCESS
Because the assembly is signed with the key in master, the assembly is granted the access level. If you would try to create the assembly without the key, creation would fail with this error:
Msg 10327, Level 14, State 1, Line 1
CREATE ASSEMBLY for assembly 'slog_loopback' failed because assembly 'slog_loopback' is not authorized for PERMISSION_SET = EXTERNAL_ACCESS. The assembly is authorized when either of the following is true: the database owner (DBO) has EXTERNAL ACCESS ASSEMBLY permission and the database has the TRUSTWORTHY database property on; or the assembly is signed with a certificate or an asymmetric key that has a corresponding login with EXTERNAL ACCESS ASSEMBLY permission.
As the error


text:
Fatty-Liver Disease Discovery Promises New Treatments, Has Cal Researchers Shouting?Go Bears!?Tuesday, May 01, 2012
Two bile acids that are naturally produced by the body may help reduce the amount of fat absorbed by the liver, according to new University of California, Berkeley research. Fatty liver disease is common in people who are obese and contributes to insulin resistance in people with type 2 diabetes. Understanding how these substances can slow or block the development of fatty liver disease may lead to new treatments. Bile acids are produced when the body breaks down cholesterol and helps to eliminate extra cholesterol and absorb dietary fat. The researchers tested more than 30 different bile acids before finding two, ursodeoxycholic acid (UDCA), also known as "bear bile acid," and deoxycholic acid (DCA), that appear to inhibit liver-specific transporter proteins that carry fatty acids into the liver. In studies with mice, those eating high-fat diets that were treated with either UDCA or DCA showed lower accumulations of fat in their livers than mice in a control group. In addition, the researchers found that DCA interacts with bacteria in the gut, which also may contribute to how much dietary fat is absorbed by the liver. The researchers plan to test whether UDCA and DCA can prevent type 2 diabetes in animal studies.


When working with a multi-terrain setup, it often happens that you get unwanted seams or steps in your world - either on the border between two terrains, or at the edge of a stamp. This article explains how you can get rid off those seams in an elegant way with the stamper in Gaia 2 / Pro.
Our example setup: Two terrains with unaligned heights between the borders.
1. Remove all masks from the stamper. Set the Operation Type to "Set Height", then Add a Distance Mask with
Influence: Global
Axes: X or Z, depending on which axis your seam / edge runs across.
For the Distance Mask Curve set up a hill-like curve. Combined your mask settings should look like this:
You should now be seeing some "hill-like" structure that mimics the curve of the distance mask when the stamp preview is enabled, depending on the height of the stamper it should either be a hill or a valley in your existing terrains:
2. Position the Stamper exactly above the edge you want to blend away. You can experiment a bit with the height to decide at which height the transition should take place:
3. In theory you can stamp now and the two terrains will be merged according to the stamp preview. However you will notice that the seam area will look a bit bland and featureless. You can change this by adding an additional image mask, then selecting a stamp image that shows interesting features that you would like to see in the transition:
Keep in mind that you can just open the stamp browser to flip through the available stamps,the preview will update accordingly:
If you are happy with the result, you can press the stamp button, and you should see your stamp / edge being replaced with the transition you just created. Here are the two terrains from the example setup at the beginning:
If you don't like the transition taking place over such a large area across your world, you can also fine tune the curve, but if you overdo it, it might become obvious that thereis some sort of artifical transition going on between the terrains:


text:
Mortgage Closers are the communication center point between all parties involved in the transaction. While assisting the borrowers with the finishing touches on their loan process they answer questions, ensure everyone is on the same timeline, and keep everything moving forward according to plan.
- 1 How much does a mortgage loan closer make?
- 2 Is being a mortgage closer hard?
- 3 What is the difference between mortgage loan processor and mortgage loan closer?
- 4 What is a loan processor salary?
- 5 How many loans can a mortgage closer handle?
- 6 How do I become a successful mortgage closer?
- 7 Is loan closer a good career?
- 8 Do loan processors get commission?
- 9 Can a loan processor deny a loan?
- 10 Who makes more money loan officer or loan processor?
- 11 Do mortgage closer get commission?
- 12 How much does a Senior Mortgage Closer make?
How much does a mortgage loan closer make?
Salary Ranges for Mortgage Loan Closers The salaries of Mortgage Loan Closers in the US range from $25,944 to $130,630, with a median salary of $40,059. The middle 57% of Mortgage Loan Closers makes between $40,059 and $63,430, with the top 86% making $130,630.
Is being a mortgage closer hard?
Mortgage loan closers must have a minimum of a high school diploma and experience working in banking and loans. Mortgage loan closers coordinate a complicated process, so you need to have excellent attention to detail and organizational skills. You should also be a clear communicator and have strong math skills.
What is the difference between mortgage loan processor and mortgage loan closer?
Loan processor vs. While a mortgage processor makes sure your application, documents and supplemental information are accounted for and in order, a mortgage loan underwriter determines whether you meet the guidelines for the home loan you've requested.
What is a loan processor salary?
Loan officers/loan processor in the United States make an average salary of $50,689 per year or $24.37 per hour. People on the lower end of that spectrum, the bottom 10% to be exact, make roughly $24,000 a year, while the top 10% makes $105,000. As most things go, location can be critical.
How many loans can a mortgage closer handle?
Most loan officers close anywhere from 18 to 25 loans in a year, with some doing as many as 35 to 40.
How do I become a successful mortgage closer?
Mortgage Closer Requirements:
- High school diploma/GED.
- Completion of a loan closing certificate program preferred.
- 1+ years of experience in mortgage closing.
- Knowledge of different loan types.
- Working knowledge of mortgage industry regulations.
- Proficiency in Microsoft Office and financial software programs.
Is loan closer a good career?
The U.S. Bureau of Labor Statistics (BLS) predicts faster than average job growth of 8% for loan interviewers and clerks, including loan closing occupations, throughout the 2019-2029 period. Candidates with good customer service skills and loan closing experience may have a competitive edge in the job market.
Do loan processors get commission?
Yes, loan processors can and do earn commissions. Usually, loan processors get paid either for each loan file application executed or through a salary which comes with a bonus for a particular volume of monthly funded loans.
Can a loan processor deny a loan?
The answer is yes. He or she can make a negative decision regarding your file, and that decision can cause your loan to be rejected. First-time home buyers / borrowers often ask if they can be turned down for a loan, after they've been pre-approved by the lender.
Who makes more money loan officer or loan processor?
Whereas loan officers/loan processor tend to make the most money in the finance industry with an average salary of $62,747. The education levels that mortgage consultants earn is a bit different than that of loan officers/loan processor.
Do mortgage closer get commission?
Do mortgage loan originators receive a commission? Most mortgage loan originators receive a commission on the loans they originate.
How much does a Senior Mortgage Closer make?
While ZipRecruiter is seeing annual salaries as high as $103,500 and as low as $21,000, the majority of Senior Mortgage Loan Closer salaries currently range between $45,000 (25th percentile) to $65,000 (75th percentile) with top earners (90th percentile) making $87,500 annually across the United States.


text:
Stilt houses in southern Ca Mau help cope with climate change
CA MAU — Residents are building stilt houses to adapt to rising sea levels in southernmost Ca Mau Province's Ngoc Hien District.
Chairman of the district People's Committee Nguyen Truong Giang said the province was below sea level and its 254-km coastline and 800km of river and canal lengths were the most threatened by climate change in the country.
"In the last five years, the sea level has risen higher and higher in this district, and only the old style houses with stilts were unaffected by the problem," Giang said.
Stilt houses suited the conditions and also the tight economics in Ngoc Hien District where the rate of poor households ranked as one of the highest in the country, Giang said.
A stilt house cost VND20-50 million (US$950-1,900) and stands on 1-1.5m piles made from mangrove timber. It helps people avoid the moisture of coastal salt water, especially at high tide.
Tran Van Phung, in Dat Mui Village, said such houses cost less because timber from mangrove trees was cheap and the homes did not have much furniture, such as beds, chairs and tables.
The houses lasted about 10 years and could withstand 1-m sea levels, said Phung adding in the past, traditional houses went under 20cm of water.
In the last five years, Ngoc Hien authorities had helped 1,200 poor households build the houses. Most offices, companies and residential houses were also built on stilts.
However, Giang warned that stilt houses could only adapt to rises in sea level, not strong storms. The district banned people from building their houses near the sea and encouraged those who had houses there to move to safer areas.
Along coastal rivers there were thousands of vulnerable households facing high tides regularly.
Apart from stilt houses, Ngoc Hien District was asking for money to build sea dykes to mitigate further climate change impacts. — VNS

source: HuggingFaceFW/fineweb-edu


What is coworking?
Coworking refers to people working together in a shared space, often with different projects or companies.
Similar to coliving, coworking is enabled by pooling resources between people to create workspace that is both productive and less expensive for all, without making the sacrifices made by people who work from home or cafes.
Book a stay at Outsite today.


text:
Program Launch: Success Center for First-Gen, Limited-Income Students
New student success center will unite formerly separate resources and provide students with mentors, financial support, and more.
Phillips & Deleon / IEEE Transactions on Professional Communication / February 2022
About the case: First-generation Latinx students in technical and professional communication (TPC) and other graduate programs represent a growing percentage of students, yet stories of their experiences within higher education remain muted. The authors analyzed 10 Latinx testimonios (culturally situated narratives) wherein they voice their experiences as first-generation students in US graduate programs. Testimonialistas expressed how they navigate the complexities of being first-generation students and described how they persist and enact social justice. Situating the case: TPC programs may examine the relationship between social injustices and student retention and recruitment efforts, yet there is a dearth of literature regarding specific obstacles that Latinx students face. The authors examined how they build success through coalitional action and culturally informed tactical decision-making.
Methods: The authors recruited participants who self-identified as first-generation Latinx students in TPC and other graduate programs. The authors conducted and recorded semistructured interview sessions based in testimonio and intersectional feminist methodologies. The authors used qualitative data coding and MAXQDA coding software to assemble and map social justice themes at work across the testimonios. Results: Analysis suggests that first-generation Latinx graduate students draw on complex informal and formal networks to aid their success, desire more effective culturally responsive mentorship, and develop tactical decision-making skills to circumvent oppressive behaviors. Conclusions: The authors suggest that directors, mentors, administrators, faculty, and Latinx students begin with a social justice framework to better listen to, understand, and address first-generation Latinx college experiences and build cohort-based support mechanisms into programmatic objectives and professional development sessions.


text:
The (RTRS) is a multi-stakeholder initiative which aims to facilitate a global dialogue on soy production that is economically viable, socially equitable and environmentally sound. It provides stakeholders and interested parties – producers, social organizations, business, and industry - with the opportunity to jointly develop global solutions leading to responsible soy production.
This feature enables you to search for the tools, mechanisms and guidance available globally. These documents and websites can help your company in its efforts to integrate biodiversity and ecosystem management into daily business practice. The content can be browsed or searched by keyword, country, sector or category.
Rate this page


text:
Accordion book fun
How you can help at home: Make a homemade book with your child and build his reading and writing skills.
By Jennifer Thompson, Consulting Educator
Create a literary masterpiece with your child. Children who love books will be even more excited about making a book that you can create together. The process of crafting homemade books can be a cherished experience for parent and child for many years to come.
What You'll Need:
- Unlined, colorful, 5" X 8" index cards
- One yard of colorful fabric ribbon at least two to three inches wide
- Tacky glue
Here's How to Do It
Encourage your child to draw or write her story on the index cards, and make a cover page with the title and author of the story.
Stretch the ribbon out on top of a table, and line the cards up horizontally across it, one inch apart, in the order of the story. There should be extra ribbon at both ends. Glue the cover page about six inches from the top of the ribbon. Then continue gluing each consecutive page about one inch from the page above it. Do this until you have all the pages placed on the ribbon. When the glue is dry, fold up the squares starting with the cover page, accordion style, and then gather the ribbon at both ends. The ribbon can be tied in a bow to make a beautiful book!


text:
In audio codecs, if you will analyse the wireshark traces for any codec. Lets say AMR, you will have the following observations
For voice packets, the marker bits indicates the beginning of a talkspurt. Beginning of talkspurts are good opportunities to adjust the playout delay at the receiver to compensate for differences between the sender and receiver clock rates as well as changes in the network delay jitter. Packets during a talkspurt need to played out continuously, while listeners generally are not sensitive to slight variations in the durations of a pause.
The marker bit is a hint; the beginning of a talkspurt can also be computed by comparing the difference in timestamps and sequence numbers between two packets, assuming the timestamp clock rate is known.
Packets may arrive out of order, so that the packet with the marker bit is received after the second packet in the talkspurt. As long as the playout delay is longer than this reordering, the receiver can still perform delay adaptation. If not, it simply has to wait for the next talkspurt.
The same thing can be read here too.


text:
Social Structure of Ancient China
Let's learn about China's social structure
Description: Peasants Of Ancient China
Image copyright: _URL_
A. Which groups made up China's Social structure?
*In first class were the kings and nobles; they were at the highest level.
*Then came the lords and warriors, they were in the second class.
*Lastly were the peasants, they were in the lowest class.
B. What were the rights and responsibilities of each group?
*The kings lead the government and gave land to different lords.
*The lords' responsibilities were to pay the taxes to the king and provided warriors to protect the land.
*Peasants farmed the nobles land and worked for the nobles and kings.
C. Why were some groups more powerful than others?
*They were more powerful because they were wealthy and known.
* They had a lot more resources than others.
D. Why were boy children highly valued in Ancient China's society?
*Boys were valued girls more because they were the ones that passed down the family names to their families.
*When their parents got old, the boys were the ones that took care of their parents.
E. Compare and contrast ancient China's social structure with the United States (our country)
*They are similar because the kings and president are in the highest class.
*In the second class in the U.S. are educated adults like lawyers and surgeons and people in the army like marines. While in china it is the warriors.
*In the lower class are the homeless and the citizens of
The U.S. In ancient China it is the servants and the slaves.


Viewing SPARQLed Data in a Google Spreadsheet
This is a stub post as much as anything to help me keep tabs on a technique I've not had any time to properly play with, let alone document: consuming Linked Data in a Google spreadsheet.
First up – why might this be useful? In short, I think that many people who might want to make use of data are probably comfortable with spreadsheets but not with code, so giving them access to SPARQL and RDF is not necessarily useful.
So whilst the recipe shown here is a hacky one, at least it opens up the playground a little to explore what the issues might be – and what things might be facilitated by – providing fluid, live data routes from RDF triple stores into spreadsheets.
So here's what I'm aiming for – some data from the education datastore in a spreadsheet:
And how did it get there? Via a CSV import using the =importData formula.
And where did the CSV come from? The sparqlproxy webservice:
As well as giving CSV output, the serivce can also gnerate HTML and a variety of JSON formats, including the MIT Simile and Googl Viz API formats (which means it's easy to just plug other data into a wide variety of visualisation formats.
To get the data into a Google spreadsheet, simply copy the CSV URI into an =importData("CSV_URI_HERE") formula in a spreadsheet cell.
The sparqlproxy service can also pull in and transform queries that have been posted on the web:
So for example, in the above case the query at looks like:
What this means is that someone else can write complex queries and mortals can then access the data and display it however they want. (What I'd really like to see is a social site that supports the sharing of endpoint/query pairs for particular queries (I could probably even hack something to do this using delicious?) ;-)
Once the data is in the spreadsheet, it can be played with in the normal way of course. So for example, I can query the spreadsheet using my old prototype Guardian datastore explorer:
In the above example, the route is then:
1) a sparql query onto is run through
2) the sparqlproxy service to produce a CSV output that is
3) pulled into a Google spreadsheet using an =importData() formula, and in turn
4) queried using my Google Datastore explorer using the Google visualisation API query language and then
5) rendered in a Google Visualisation table widget.
Lurvely… :-)
 1. Pingback: Sharing Linked Data Queries With Mortals… « OUseful.Info, the blog…
 2. Pingback: Programming Pipes With Delicious and Sharing SPARQL Queries As A Result « OUseful.Info, the blog…
 3. Pingback: Dashboard Views as Data Source Directories: Open Data Communities « OUseful.Info, the blog…


By Topic
Compensating for the Initialization and Sampling of EWMA Run-to-Run Controlled Processes
Sign In
Formats Non-Member Member
$31 $13
Become an IEEE Member or Subscribe to
IEEE Xplore for exclusive pricing!
close button
puzzle piece
Learn more about:
IEEE membership
IEEE Xplore subscriptions
3 Author(s)
Good, R.P. ; GLOBALFOUNDRIES, Austin, TX, USA ; Pabst, D. ; Stirton, J.B.
The exponentially weighted moving average (EWMA) filter is commonly used for state estimation of run-to-run controllers in semiconductor manufacturing. It is widely known that, when at steady state, the EWMA filter provides the minimum mean square error (MSE) forecast for an integrated moving average (IMA) process. The forecast, however, is optimal if and only if every output of the IMA process is measured. If an EWMA controller is implemented utilizing sampled process data, then it is necessary to retune the controller to maintain optimal performance. Furthermore, in practice, the complex interacting selection criteria of advanced sampling applications often cause measurement frequency to be highly irregular. In this paper, a sampling compensation algorithm (SCA) is derived based on the minimum-norm IMA (MNIMA) forecast. The algorithm provides the minimum mean-square-error (MMSE) forecast of an IMA process for irregularly sampled processes and is robust to initialization.
Published in:
Semiconductor Manufacturing, IEEE Transactions on (Volume:23, Issue: 2 )


FqkC by xxG which we represent qk messages, its length k by code words, of lengthn.
The generator matrix G of a C code is not unique; G can be transformed into G=IkA with Ik the identity matrix with k order and A the matrix of k lines and nk columns.
G and G generate the same C subspace; G is called canonical generator matrix and if the generator matrix of a code is of the form G=IkA, this code is said systematic.
Theorem
Let C a nkq linear code.
 1. If G is a generator matrix of C and H a parity control matrix of C then GHt=0.
 2. If G is a k×n matrix of rank k and H is a nk×n matrix of rank nk such as GHt=0 then we have:
H is a parity control matrix of C if and only if G is a generator matrix of C.
Proof
 1. We know that Ht=0, xC, in particular we have GiHt=0 for all i=1k with Gi is line of G. It follows that GHt=0.
 2. ) Since GHt=0, then we have GiHt=0. For all i=1k. And since H is a parity control matrix of C, we have the Gi belong to C. rgG=k, then Gii=1k constitute a basis of C. It follows that G is a generator matrix of C.
) we have yC if and only if it exists xFqk such as y=xG. Then yC if and only if yHt=xGHt=0. Then H is a parity control matrix of C.
In the case of systematic code, we have the following corollary.
Corollary
Let C a nkq linear code
 1. If G=IkA a canonical generator matrix of C then H=AtInk is a parity control matrix ofC.
 2. If H=BInk is a parity control matrix of C then, G=IkBt is a generator matrix of C.
Proof
By applying the preceding theorem
 1. we have GHt=IkAAtInkt=A+A=0, if G is a generator matrix of C then, H is a parity control matrix ofC.
 2. we have GHt=IkBtBInkt=BtBt=0 then if H is a parity control matrix of C we will have G is a generator matrix of C.
Encoding and decoding
The coding is obtained by applying the generator matrix. Decoding consists in applying the control matrix to the message; if the result is 0 then the message is valid otherwise look for errors and correct them. Hxt is called syndrome. Suppose the word x is sent through a noisy channel and the word received is y so the error vector is e=yx.
Given y, the decoder must decide which word of the code x has been transmitted (which error vector?). For a vector u and a code C we call coset class of C, the set u+C=u+ccC. A representative of a class of C of minimum weight is called a leader of this class.
Theorem
Let C a nkdq linear code then,
 1. u and v are of the same coset class of C if and only if uvC.
 2. Any vector of Fqn is in a coset of C.
 3. Given two coset classes, they are either disjoint or identical.
Proof
 1. If u,vx+C then, it exists y,zC such as u=x+y and v=x+z, then uv=yzC, because C is a vector subspace of Fqn.
If uvC it exists xC such as uv=x then u=v+xv+C and we have v=v+0v+C.
 1. Let aFqn, on a 0C thena=a+0a+C.
 2. Suppose that a+Cb+C, the nit exists vFqn such as a+Cb+C contains the element v, the nit exists x,yC such as v=a+x=b+y hence b=a+xy and a=b+yx. b+cb+C we have b+c=a+xy+ca+C (then b+Ca+C). a+ca+C We have a+c=b+yx+cb+C (then a+Cb+C), hence b+C=a+C.
Principle
We construct the standard array of C which is a matrix of qnk lines and qk columns. It contains all the vectors of Fqn; its first line corresponds to the words of C with vector 0 on the left. The other lines represent the cosets ui+C with the class leader ui to the left. The procedure is as follows:
 1. We list the words of C starting with 0 on the first line.
 2. We choose a vector u1 of minimum weight that does not belong to the first line and we list in the second line the elements u1+C, by entering below 0 the class leader u1 and below each element xC the element u1+x.
 3. We choose u2 in the same way and we repeat the same operation.
 4. We iterate this process until all the side classes are listed and all the vectors of Fqn appear only once.
When the word y is received, we look for its position in the standard table. The decoder then decides that the error vector e corresponds to the class leader who is located in the first column of the same row of y and decode y like x=ye, by choosing the code word of the first line on the same column ofy.
Remark
The standard table provides nearest neighbor decoding. Note that this process is too slow and too expensive in memory for large codes. In practice each code has by its structure a decoding algorithm.
2.4 The hamming code
A Hamming code with r2 redundancy is a linear code 2r12r1r2 its parity control matrix H, with H is a matrix of r lines and 2r1 columns that correspond to the set of all nonzero vectors of F2r.
Theorem
The minimum distance of the Hamming 2r12r1r2 code is d=3 (it therefore corrects a single error).
Proof
This code does not contain any element of weight 1 and 2 otherwise we would have a column of H which would be zero or two columns of H would be identical.
It exists xC such as wx=3, indeed by definition of the parity control matrix H, the first 3 columns are 000000011101 then the vector x=11100 its weight wx=3 and belongs to C because Hxt=0.
Decoding
The vector syndrome x of which only the jth component is nonzero is none other than the transpose of the jth column of H. If the columns of H are ordered in increasing order of binary numbers, the jth column corresponds to the binary writing of j, hence the following decoding algorithm:
Let y a message received, we calculate Hyt. If Hyt=0 then, y corresponds to the message transmitted. If Hyt0 and assuming there is only one error, Hyt directly gives the position of the error written in binary in the form b3b2b1b0. We can then correct y=y1yn like x+ej for j=i=1nbi2i and ej the vector of which only the jth coordinate is nonzero.
2.5 The Reed-Solomon codes
Let n=q1 with q=2m et Fqxk The set of polynomials of degree strictly less than k on F2m. Let us build a length code n and dimension k. Let L=α1α2αn a vector formed of distinct elements of F2m=αii=1n, with α primitive of F2m. Each word of the code is the evaluation of a function f of Fqxk on L then, we have a length code n and dimension k and generator matrix
G=111α1α2αn......α1k1α2k1αnk1.
By its structure, this code has a minimum distance of at least nk+1, because two polynomials of degrees less than k distinct cannot be equal in addition to k1 positions. This distance is exactly equal to nk+1, since the evaluation of a polynomial of the form i=1k1xαi his weight is nk+1. So we have a code on F2m of the form nknk+1q which can have both good transmission rate and good correction ability.
Remark
Reed-Solomon codes represent a special case of a slightly more general class called generalized Reed-Solomon codes GRS whose definition is as follows.
Definition
Let v1v2vn a vector of length n in F2m et α1α2αn a vector of length n in F2m, with the αi are distinct two by two.
The set of codes with the generator matrix G of the form G=v1v2vnv1α1v2α2vnαn..v1α1k1v2α2k1vnαnk1 is called the family of generalized Reed-Solomon codes.
2.6 The classical Goppa codes
Definition
Let L=α1α2αn a


text:
A Case Study of Groundwater Quality in Industrial Area of Srinagar, J&K
Abstract - Main source of drinking and daily use for domestic purposes is the groundwater, for both urban and rural areas. Surface and ground water are frequently polluted as a result of industrial and agricultural operations. Study of groundwater in Srinagar capital has been conducted to determine its appropriateness for home use. To know about the present quality of groundwater in industrial and non-industrial areas of Srinagar district of Jammu & Kashmir, the present study was conducted. Samples were collected from each site (two from each site) and various parameters including pH, total hardness, electrical conductivity, total dissolved solids, total alkalinity, chlorides, calcium, magnesium, BOD and turbidity were analysed and variation of groundwater quality is analysed by the related parameter. Water samples were collected from industrial and non-industrial areas of Srinagar through different sources which include hand-pumps, tube-wells and springs. The samples were collected and shifted to cleaned plastic bottles; each sample was then namedwith marker and brought to the laboratory for testing. Standard methods are used in the research for determining various parameters and results obtained were compared with the Bureau of Indian Standards (BIS) guideline values and Water Quality Index (WQI) was calculated for each stations. The WQI in industrial area was found with the least value of 40.97 and highest WQI value was observed as 63.1. The computed WQI shows that water samples lie in 'good to 'poor' category indicating that groundwater is not fit for direct consumption and treatment is required in the area. Similarly, the WQI in non-industrial area was found with the minimum value of 34.08 and the maximum value of 48.16. The computed WQI shows that water samples fall in 'good' category and is thus fit for domestic purposes.
Keywords - Industrial Area, Groundwater Quality


text:
Are you confused about when to use "taking" or "taken" in your sentences? It's a common dilemma for many English learners, but with a little knowledge, you can avoid making mistakes and sound more professional in your writing.
Let's start with the basics. "Taking" is the present participle of the verb "take," which means to hold, grasp, or receive something. On the other hand, "taken" is the past participle of "take," which means something that has been received, captured, or brought under control.
Here are some examples to help you distinguish between "taking" and "taken."
1. I am taking a shower
2. She has taken a shower
In the first example, "taking" is used because the action is ongoing, and the subject is currently in the process of taking a shower. In contrast, the second sentence uses "taken" because the subject has already completed the action of taking a shower.
Now, let's explore some other situations where "taking" or "taken" may be used.
When to use "taking"?
1. To express an ongoing activity:
"I am taking a class on literature."
2. To describe someone's behavior:
"He is taking his boss's advice."
3. To refer to medications or drugs being consumed:
"She is taking aspirin for her headache."
4. To indicate transportation:
"I am taking a taxi to the airport."
5. To define involvement or responsibility:
"I am taking responsibility for the project."
When to use "taken"?
1. To refer to the past:
"She has taken dance lessons since she was five."
2. To describe an action that has been completed:
"He has taken care of the paperwork."
3. To indicate a state of possession:
"They have taken ownership of the property."
4. To show that permission has been granted:
"I have taken permission from my boss to take a day off."
5. To show control over something:
"The police have taken the suspect into custody."
So, what are some tips that can help you use "taking" or "taken" correctly in your sentences? Here are a few suggestions:
1. Pay attention to the tense: If you're talking about something that is happening currently, use "taking." If you're discussing something that has already happened, use "taken."
2. Think about the context: Consider the situation or the event being described and choose the appropriate form of the verb.
3. Use an online grammar checker: There are several online tools available that can help you check your grammar and ensure that you're using the right form of the verb.
4. Read widely: To improve your grammar and sentence structure, read widely and pay attention to how other writers use "taking" or "taken."
Using "taking" and "taken" correctly may seem like a small detail, but it can make a big difference in how your writing is perceived. By following the guidelines presented here, you can avoid making mistakes and present yourself as a knowledgeable and competent writer. Happy writing!


text:
Dual 3D Electromagnetic Articulograph
(EMA, Carstens AG501 & AG501 Twin)
Location: College of Humanities, 2nd floor, Room No. 216
- Electromagnetic Articulograph (EMA, Carsten AG501) is used to investigate kinematic aspects of articulation.
- EMA consists of microscopic sensor coils (which are attached to a subject's articulators such as the tongue, the jaw, and the lips) and a control computer.
- EMA system converts the voltage variation generated in the electromagnetic field between the transmitters and the sensor coils into measurable numeric values, with which the articulatory movement can be examined. The control computer displays the movement of the articulators in real time, which enables experimenters to measure and analyze vertical and horizontal articulatory movements in mid-sagittal dimension inside the vocal tract. In addition, the coordination between articulatory movements and their corresponding acoustic waves can be investigated with this system.
- The Articulograph AG501 Twin offers the same features as the AG501 but includes an alternating frequency. In combination with the AG 501, it allows the simultaneous recording of the subject.


text:
Nitrogen fertilisers for rape (Brassica campestris and B napus) and wheat in Western Australia
Absolute yield increases tended to be greater for wheat than rape at 63 per cent of the nitrogen responsive sites, but percentage yield increases and rate of N for maximum yield tended to be greater for rape than for wheat. When average response curves over all trials were considered, there was little difference between the two crops in terms of percentage responsiveness and N rate for maximum yield in areas with less than 460 mm average rainfall, but in higher rainfall areas the response to N was higher.
Yields, Wheat, Economic analysis, Nitrogen fertilizers, Rapeseed, Western Australia
Mason, M G. (1979), Nitrogen fertilisers for rape (Brassica campestris and B napus) and wheat in Western Australia. Department of Agriculture and Food, Western Australia, Perth. Technical Bulletin 46.
Maps are not included as part of the complete document download. If this bulletin contains a map, it will be available in the Individual Parts list below.
This document is currently not available here.


Apple Invested Capital vs Earnings before Tax Analysis
Invested Capital vs Earnings before Tax
Invested Capital
Invested capital represents the total cash investment that shareholders and debt holders have contributed to Apple Inc. There are two different methods for calculating Apple Inc invested capital: operating approach and financing approach. Understanding ##company1# invested capital allows investors to to calculate measures of performance such as return on invested capital or return on capital employed. Invested capital is an input into the calculation of Return on Invested Capital, and is calculated as: Total Debt plus Total Assets minus Goodwill and Intangible Assets minus Cash and Equivalents minus Current Liabilities. Please note this calculation method is subject to change.
Earnings before Tax
Accounts Relationship
Invested Capital vs Earnings before Tax
Significance: Very Strong Relationship
Overlapping area represents amount of trend that can be explained by analyzing historical patterns of Apple Inc Invested Capital account and Earnings before Tax
Correlation Coefficient
Relationship DirectionPositive
Relationship StrengthStrong


text:
Abstract. The growth of small tellurium clusters in helium and the influence of a metal impurity (dysprosium atoms) on the cluster size distribution are investigated in a double laser vaporization source. A model describing the role of the carrier gas as collision partner is presented, emphasizing the crucial influence of the gas pressure on cluster formation. Changes in cluster reactivity due to dysprosium addition are discussed in terms of ionic structures Dy 3+ (TeN) 3 − containing a radical electron. PACS. 36.40.Jn Reactivity of clusters – 36.40.Qv Stability and fragmentation of clusters – 34.10.+x General theories and models of atomic and molecular collisions and interactions (including statistical theories, transition state, stochastic and trajectory models, etc.) 1
To submit an update or takedown request for this paper, please submit an Update/Correction/Removal Request.


The biggest erogenous zone for women is not between her legs but between her ears. Stimulating her body is the easy part. Stimulating her mind shows her what you are really made of. There are many different ways to stimulate a woman's mind so try different techniques. Study, listen and understand your woman and her every need. When your woman grows accustomed to one technique, change things up. Add to your list of things to do to continue stimulating her mind. Each woman has her own unique ways of being stimulated. Be creative and enjoy exploring your options.
Although there are many ways to stimulate a woman's mind, I have compiled a list of 10 ways that will definitely get you started. Please feel free to add to this list in the comments section.
1. Take Charge Women look up to men who are willing to take charge as the leader. Not only wear the title of leader but men who are willing to follow through as the leader and make things happen. Most women embrace having a take charge person that she can trust to lead, direct and follow through.
2.Intelligence Broaden your topics of conversation by studying and researching the things women are interested in. Talk to her outside of bedroom topics. Discuss your life, goals and dreams. Challenge her thinking with new perspectives. Express yourself and articulate your emotions. Instead of groping her and/or being overly sexually explicit about your desires, find other intelligent ways of expressing your desires to her. Express to her she is worth the extra effort and she stands out from the rest.
3.Listening Skills When communicating with a particular woman do your research and find out what her interests are. Listen to her and make mental notes of the certain things she likes or things that make her smile. Listen to what she talks about most often. If she tells you she really likes a certain scent on you, wear it more often. If she tells you she likes a particular food, visit those places for your dates. Take the time to really listen to her and take mental notes. She will tell you exactly what it takes to stimulate her mind. If she doesn't tell you right away, continue striving to earn her trust. Find ways to get her to talking while you patiently listen and take mental notes.
4.Observation Pay attention to the details of her life. What perfume is she wearing? Or has she mentioned a favorite scent? What is her favorite food? Is she a homebody or like large crowds? Pay attention to the small details of her life. Once the details of her life are revealed, do things to show her you are interested in her life. Don't ask her if you should, just do it and do it just because… What are her favorite television shows, designer handbags, shoes, favorite movies, favorite artists, favorite celebrities and/or genre of music. Broaden your knowledge on certain topics. Venture into different places to travel, things to see or people to meet in order to mentally stimulate your woman's mind.
5.Mannerism Show some manners. When you go out on dates with your woman, sit facing the door. Facing the door shows her you have her back. Also when escorting her out, be sure to walk on the traffic side. This shows her you are her protector. When you show her you are a gentleman by opening doors, being respectful and just showing old school charm; this can also stimulate a woman's mind.
6.Pure Emotion When you speak from the heart and are not afraid to share your innermost secrets with her, this shows that you trust her. This stimulates her mind and causes her to trust you with her innermost secrets. Openly express your emotions with her.
7.New Experiences If you frequently visit rhythm and blues venues, try something different. Maybe Jazz/Blues, Country/Western, Caribbean, salsa, piano bars, poetry night or something she hasn't experienced before. Be creative.
8.No Pretending A woman can sense when you are not who you claim to be. Boasting about your six figure salary and all of your exquisite tastes will not stimulate a woman's mind. Maybe a gold digger's mind but not a woman seeking a true partnership. Research diverse topics and share your knowledge with her. If a woman senses you are running game, she will shut down and not trust you. All mental stimulation is lost. Be truthful and honest.
9.Earn Her Trust When a woman has the confidence in her man that he is a problem solver; she begins to let her guard down and trust you more. She opens up her heart to you, knowing you have her best interests in mind. She feels protected and safe. She knows you are safeguarding her heart. She can share things with you that the world doesn't know. She can lean on you for strength when she is weak and you will catch her.
10. Sense of Humor Find ways to make her laugh. Find her unique sense of humor and keep her laughing. Laughter soothes the soul and will stimulate her mind.
Author's Bio:


What most people don't know is that this feature actually went in incomplete. I've had grand plans to finish this, but it's a biggish project and I've simply never had the time to do it.
What I mean by incomplete is that the underlying framework of this feature actually involves a process internally known as a'rendering pipeline' (or just 'pipeline'). This pipeline contains a number of rendering possibilities and it chooses one based on available information. If you've used Page Manager extensively, you've seen this before. It's called a Variant, and it lets you pick the page that's actually displayed based upon selection criteria. Typically this involves things like user access, or node type, or taxonomy term type, or other, less-used items such as user language.
In most places you can put a panel, if you have the Panels IPE module there is a radio selector that lets you pick the standard renderer, or the IPE renderer. In reality, both of these are pipeline selectors. The standard renderer always selects the standard renderer and therefore it's the simplest version. However, the IPE renderer actually has two possibilities. In code terms the flow of what this does looks something like this.
if (user_access('use panels ipe')) {
 else {
But the system is far more capable than that. Underneath, something that doesn't happen, but easily could is that we could add another pipeline. Let's call this, "Super IPE". Here is some total pseudocode:
if (user_has_role('administrator')) {
 return array(
'type' => 'ipe',
'options' => array(
'can change style' => TRUE,
'can unlock panes' => TRUE,
'can change layout' => TRUE,
'can add panes' => TRUE,
'can remove panes' => TRUE
 else if (
user_access('use panels ipe')) {
 else {
If the above existed, our radio could then offer three choices:
 - Super IPE
 - IPE
 - Standard
In other words, we can actually have different levels of IPE. Except for the part where we don't have a UI to actually set this up, and the IPE itself doesn't actually know how to interpret these options. You could add as many of them as you like and select the appropriate when to use when creating the panel. In theory we could probably do some kind of context selection as well, though that's not baked in there yet.
But that's the easy part!
What we don't have, still, is the UI to do this. The UI is a relatively complex thing to do. What I really want to do is to take the tabbed operation sets used in the Page Manager UI and abstract that, so I can make more complicated, multi-form, multi-wizard UIs just by plugging in what the operations will be and link them to forms. And theme the result, but apply a standard theme so that we can still do the basics without getting too fussed about that.
Then we need to build the UI for pipelines. Pipelines are already exportable objects, so we simply need to attach the Export UI, build the variant selection mechanism. Then we need to modify Panels IPE to actually have an options form and support the options. I need to figure out what actually should be optional and use a good system for setting defaults. There's a lot of really interesting potential options here.
 - Available layouts.
 - Available content.
 - Possibly different content selectors.
 - Theming keywords, kind of like how Views has alternate templates just for a particular view.
 - Pane locking -- have some panes "locked" and not movable without increased permissions.
There's probably more I haven't thought of. Some of these features exist now, some of them would take some implementation.
In addition, once in place, we could also create pipelines for the backend system as well. It uses the same essential mechanism. It would then be possible for site builders to customize the editing experience very granularly.
This isn't a small project, but it's an exciting one, and would make a great expansion to the already existing functionality. Both Sam Boyer and I would love to get funding so we can take this system to the next step. Some projects I'm on will already have me working on parts of this. Being able to do even more would be a big win for everyone!
I'm still working on the best way to fund this. I'm thinking about kickstarter, or just taking pledges and billing people through my company, or what. Both have their ups and downs. Who has good ideas on that front?
That sounds awesome. I would definitely contribute to your work by funding it through kickstarter or something similar.
Nice, I'm in.
Some thought:
- People don't really have mental image about the funding amount needed, but always like to have all the functions. So making somekind of sponsor / contribute suggestion, e.g. kickstarter, would help. I read research somewhere about this. People who willing to support, won't do $1 contribute if they know you need 500 contributor average of $20 ;) (and frankly... it's Panel, $1 don't make anyone feel proud much)
- This look interesting. Somekind of this would be easy to understand.
Yeah, I haven't worked out how much funding I think it needs right now yet. Want to talk to Sam about it and get his opinion but of course it's Drupalcon right now, so he's not available. :)
Hi Earl!
At DrupalCon Chicago a whole bunch of people tried to start planning a better infrastructure for coordinating community initiatives, including with funding. Barry Madore of Advantage Labs is at DrupalCon London one of those continuing the work.
The idea is to be Kickstarter-like but better adapted for Free Software and interested parties finding each other over time, allowing more flexibility with revisions to the amounts needed and the deliverables planned, and potentially more integrated with other community resources in terms of credit for supporting.
I think Kickstarter would work for you in this case but i'd be honored if you would be one of the pilot projects of this initiative, which would accept tax-deductible donations directed to open source development. A lot of details have to be worked out but the
benjamin, agaric
This functionality is based on the work I did for the Payment API (which is itself a good candidate for crowd sourced funding!). It's more than a what-if, there's working code already in use. I think that making a funding model like this available to Drupal developers would be a huge win. I know very well how hard it is to make the headspace to do biggish projects while still making ends meet, and I would really like to see good developers doing important work without having to depend on the largesse of an employer or client.
The big questions on an initiative like this surround governance and overall organization, but honestly, having a project that generates resources for someone as well known as yourself would be a huge benefit for a by-Drupal-for-Drupal crowdsourcing effort.
Thanks, this functionality will help us for our next project.
Add new comment


The Richest Man in Babylon – Book Summary
Richest Man in Babylon Cover
Follow Us & Share!!
This book is created from the ancient tablet found in the rich city of Babylon. This tablet consists of timeless principles on finance and considered a cure to the lean purse problem. It is said the most of the famous principles of investing and finance are derived from this tablet.
Any person who wants to learn personal finance principles in short stories should read this book. This covers topics about luck in a person's life to things to consider when lending principles. The principles mentioned in the tablet made Babylon a rich city along with the people living in it.
The Richest Man in Babylon
This chapter starts off with a story about two friends, Bansir and Kobi, discussing how they dreamt about having lots of wealth. Both friends dreamt about having lots of gold coins to make their purses fat but till today failed to do it.
They start to wonder the reason behind it but fail to realize. Kobi witnesses a rich person in a golden chariot and clothes made of fine silk wonder about his secret for his wealth. Bansir soon realized that the rich person was their school Arkad and was also the richest man in Babylon.
Bansir and Kobi then decide to take the guidance and understand the secret behind the wealth. Arkad being childhood friend agrees to share his secret with them.
Arkad mentioned that
 - Every person when receiving the salary should at least save 10% of the income before paying off the bills or making any purchases.
 - The saved money should be put at work where it starts multiplying itself and further generating more wealth.
 - Advice is one thing that everyone gives for free, but advice should be taken from individuals from expertise in their respective fields only. Eg investing tips on finance should be taken from a finance expert and not a gambler.
 - Staying away from the investment opportunity that promises exorbitant returns as those are huge risks and way to lose the money. A small return with assured safe investment is always better.
Cure for the Lean Purse
 This chapter describes to the reader the ways to increase saving. Once King of Babylon was facing the problem of poverty and the decline of trade in the kingdom. Facing this problem the King called up Arkad once again to solve this problem.
Arkad along with King decided to share the financial learning with the people in the kingdom that he had learned all along with his life. Arkad starts his story mentioning that he had started with a humble beginning.
For every money you receive, keep one-tenth of the money and eventually, it will increase money in saving which will help you feel good.
To have a clear understanding between necessary expenses with desire, if one does not have a clear budgeting system in place will eventually have empty pockets by the end of the month. So have a budget for expenses for and clear understanding of necessary expenses. Limit your expenses to 90% of your earning.
Saving 10 % of earnings is the start. The next step is investing the money so that it starts multiplying itself. This starts producing a stream of income contributing to one's wealth.
Learning to guard small amounts of money before handling large amounts of money. Not being misleading to make huge wealth rapidly.
Ensuring a future income. A person should plan certain investments or provisions that may endure safely for many years. Provide in advance for the needs of the growing age and the protection of the family.Increasing your earning ability cultivate the power by studying and becoming wiser, to become more skillful. This will increase the wealth of the individual.
Understanding Luck
This story starts with King of Babylon along with his advisors one fine evening discussing luck. King wanted to understand luck and if there was any way to attract it.
Each subject in the meeting mentioned instances where some had luck and some misfortune. Then the discussion turned to create money through gambling. Most of the time creating riches from gambling is not possible. The gambling house creates odds in such a way that the person playing has more probability of losing money compared to winning the money.
As the discussion continued the conclusion was drawn that good luck comes to those who accept the opportunity. Most of the time people are not able to take action on the opportunity and fall prey to procrastination.
While luck follows in such a way that the men take quick action on the opportunity desiring to be lucky. The spirit of procrastination follows men that they tend to delayed action and in the event, the opportunity is lost.
Once a person understands the procrastination and masters it then he is truly on the path of creating riches for himself. The ending note of this chapter is the men who take action are favored by the goddess of luck.
Babylonian Proverb
Babylonian Proverb
The Five Laws of Wealth
Here is the story where the richest man in Babylon Arkad tests the wealth management skills of his son named Nomasir. Nomasir was asked to prove his earning and management skill after which the wealth created by Arkad will be passed on to him.
While Nomasir embarked on this journey he was given some gold coin and the tablet which mentioned the five laws of wealth. Nomasir lost all the gold coins which were handed to him. The son persisted and followed the five principles of wealth and returned with bags filled with gold.
The five laws of wealth
 1. The more money is saved, the more readily it comes in increased quantities. The money which is saved earns more money, and it earns more & more.
 2. Every man who saves some money aside, opportunity comes for its most profitable use that it surprisingly multiplies itself.
 3. Money clings to the protection of the cautious owner who invests it under the advice of men wise in its handling.
 5. Money flees from the man who would force it to impossible earnings or who follows the alluring advice of tricksters and schemers or who trusts it to his own inexperience desires in investment.
Gold Lender of Babylon
This story teaches about lending. This solves the dilemma regarding lending and how to lend money or invest money in the business. The story revolves around the spear maker named Rodan in the city of Babylon. Rodan was gifted gold coins by the King for his craftsmanship.
Rodan's sister came to know about this and asked Rodan to lend that gold coin so her husband could start a business. Rodan was not sure whether this investment was the best option.
Rodan went to a moneylender named Mathon who would lend money to people to start their business. Rodan wanted to seek the counsel of the expert. Mathon seeing that Random wanted to make the best use of the money was a delight and shared his wisdom.
Rules of Lending
 - Help friends in such a way that it will not bring in the burden of friends on to yourself
 - When lending, always secure a token as security so that if the person fails to pay back the money, the lender's money is not lost.
 - The safest loans are those whose possessions are of more value than the one they desire.
 - Lending money to people always asks about their plan of repaying the money back. Check the knowledge of the person and their source of money generation.
 - Never be swayed by mentions or obligation to trust money to other people.
 - Not investing money in risky opportunities where there is a chance of losing money is always better than investing in these opportunities.
understanding Lending
Tablets from the Richest Man in Babylon
Along the chapter, the author mentions that his archaeological team found ancient clay tablets. The clay tablets mentioned words for leading a life of happiness and success.
Words from Tablets
 - A man should keep doing the deeds which makes it worthwhile for his nation & people. This in return will get respect from the nation and people.
 - Taking good care of wife and family as they add in the additional strength to man's vision
 - seeking easy wealth is the way to find disaster and to see oneself in the debts
 - If you truly seek to undo your mistake and ask for forgiveness with clear intentions most of the time you will receive forgiveness.
This book uncovered that people who desired wealth had an understanding of how money works. People of Babylon discovered the money principle which made the people and the city the richest city at its time. It is really amazing how the money principles have stayed the same for ages and are used even today with few tweaks.
One-Line Take-Away
 - Always set 10% of income and invest it in the right places.
 - Getting rich overnight schemes are all risk opportunities to lose money.
 - Learning and cultivating the right mindset is a must to make a person wealthy.
Book Recommended
This is a small book who is looking to understand how money works but is written in old English. This book has stories to make each reader understand money principles and also inspire along the way.
Score – 7/10
Roopesh Bhosle is an author at Hackedwits and writes on summary for books from Business and Finance. A Project Manager at day and content writer at night. Love to learn new things, to connect dots in life. Connect with me on LinkedIn for collaboration on project or Guest Post
You may also like...
Leave a Reply


Northern rail priorities statement: five priorities for immediate action and investment
Published Fri 16 Mar 2012
The Northern Economic Futures Commission, convened and supported by IPPR North, calls for five points of action and investment to maximise the economic potential of rail in the north of England, especially on the back of already agreed HS2 developments between London and Birmingham.
Alongside skills and innovation, transport infrastructure is crucial for ensuring that the northern economy is the driver of national prosperity that it has the potential to be. Infrastructure investment can give an immediate boost to struggling local economies as well as providing a basis for sustainable economic growth.
The five northern rail priories are:
 1. Northern Hub: a network of rail connections and improvements through central Manchester with improved capacity out to Liverpool, Blackpool, Leeds, Sheffield and Manchester Airport.
 2. HS2-Midland Mainline Connection: a Birmingham-Derby connection to hook up HS2 with the existing Midland main line to York, thereby allowing the North to reap immediate rewards from significant investment in HS2.
 3. Extending transpennine electrification: existing plans will see the TransPennine line electrified between Manchester and York - now this is the right time to extend this programme to include connecting lines to Middlesbrough, Scarborough and Hull, which also maximises the benefits of connections to the existing East Coast main line to Newcastle.
 4. Improved rolling stock: to increase cost efficiency, reduce carbon emissions and create manufacturing jobs in the region.
 5. Station capacity improvements at Leeds, Sheffield and Liverpool Lime Street stations: to boost train and passenger numbers and encourage a preferential shift from road to rail.
View a map of the commission's five rail priorities.
Back to top


The following information relates to the integration of LDAP server and keycload in VMware Telco Cloud Operations.
The LDAP server is reachable by using FQDN for LDAPS configuration.
Configuration Steps
The integration between Keycloak and LDAP depends on the schema configured in the LDAP server. The examples provided are used as an example only. The information cannot be used as it is in the customer environment. The configuration must use the Keycloak UI.
Note: For information about managing users and access control, go to VMware Telco Cloud Operations Configuration Guide.
 1. Login to the Keycloak UI using admin credentials. You can access Keycloak by using the following URL: http://<control-plane-node-1>/auth. The administrator user name is admin and default password is vmware@1!.
 2. Create a new instance of User Federation for LDAP. Following table provide an example
 Setting Value
 Enabled On
 Console Display Name <Any String >
 Priority 0
 Import Users OFF
 Edit Mode READ_ONLY
 Sync Registrations OFF
 Vendor Active Directory
 Username LDAP attribute Cn
 RDN LDAP attribute Cn
 User Object Classes *
 Connection URL ldap://<fqdn of LDAP>
 Users DN ou=users,dc=tco,dc=com
 Custom User LDAP Filter
 Search Scope One Level
 Bind Type Simple
 Bind DN cn=ldapadmin,ou=users,dc=tco,dc=com
 Bind Credential Password for ldapadmin
 Do not select the Synchronize Changed User or Synchronize All User button. The Import Users value is set to Of, and all other parameters depend on the LDAP schema.
 Note: The configuration of a secured LDAP and an unsecured LDAP is the same, except the Connection URL field value must start with ldaps://.
 Schema for users
 dn: ou=users,dc=tco,dc=com
 objectClass: organizationalUnit
 ou: People
 ou: users

 Schema for admin users
 dn: cn=ldapadmin,dc=tco,dc=com
 objectClass: organizationalRole
 cn: ldapadmin
 description: LDAP Admin

 3. Create a user-attribute-ldap-mapper on the same User Federation instance.
 This mapper is required for mapping the LDAP group information into the user attribute. To create an LDAP mapper, navigate through the User Federation > Ldap LDAP Mappers > Create LDAP mapper menu.
 Mapper Type user-attribute-ldap-mapper
 User Model Attribute memberOf
 LDAP Attribute This attribute contains the group information.
 In the example schema, it shows memberOf.
 Read Only ON
 Is Mandatory in LDAP OFF
 Is Binary Attribute OFF
 The following schema is used for configuring the LDAP user. The memberOf attribute in user contains the name of the groups that the user is part of:
 dn: cn={5}smartsengineer,cn=schema,cn=config
 objectClass: olcSchemaConfig
 cn: {5}smartsengineer
 olcAttributeTypes: {0}( 2.25.128424792425578037463837247958458780603.1 NAME
 'memberOf' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX
 1.3.6.1.4.1.1466.115.121.1.15 )
 olcAttributeTypes: {1}( 2.25.128424792425578037463837247958458780603.2 NAME
 'homeTown' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX
 1.3.6.1.4.1.1466.115.121.1.15{1024} )
 olcObjectClasses: {0}( 2.25.128424792425578037463837247958458780603.3 NAME '
 smartsEngineer' DESC 'SMARTSWorker' SUP inetOrgPerson STRUCTURAL MAY ( memb
 erOf $ homeTown ) )

 Once the mapper configuration is saved, the memberOf attribute populates with the user and group information.
 Verify that the memberOf attribute was added to the user. The following is the mapper used in the example.
 4. Create a protocol mapper in the NGINX client. The NGIX client uses the protocol mapper for accessing user information. The protocol mapper places the user group information in the access token. To create the mapper navigate through Clients > nginx > Mappers > Create Protocol Mappers menus.
 Attribute Name Attribute Value
 Mapper Type User Attribute
 User Attribute memberOf
 (The value of the attribute is the same value used in LDAP Attribute in step 3.)
 Token Claim Name ldapgroups
 (This must be ldapgroups)
 Claim JSON Type String
 Add to ID token ON
 Add to access token ON
 Add to userinfo ON
 Multivalued ON
 Aggregate attribute values OFF
 When the protocol mapper is created, the access token populates with user and group information.
LDAPS Integration with Keycloak
To enable LDAPS in Keycloak:
 1. Log in to control plane node.
 2. Nagivate to the /home/clusteradmin/keycloak directory.
 3. Provide the executable permissions to the import-ldap-cert.sh file (if required).
 4. Run the following script to add the LDAP certificate to Keycloak.
 ./import-ldap-cert.sh -i -r <ldap ip > -p < Secured ldap port> -s < store password >
 store password: If you are importing the certificate for the first time, provide any string. Thereafter, the password must match with the password provided.
 Note: This step will delete the existing Keycloak pod. A new pod appear with an imported LDAP certificate.
 Example: ./import-ldap-cert.sh -i -r 10.185.19.172 -p 636 -s testtest
 Description Script Example Response of the Script
 Add certificate from the LDAP server ./import-ldap-cert.sh -i -r 10.185.19.172 -p 636 -s testtest
 Note: This step deletes the existing Keycloak pod. A new pod appears with an existing certificate in truststore.
 {
 "response": "Successfully added certificate for ldap 10.185.19.172",
 "errorMessage": "Success",
 "errorCode": 200
 }

 List the imported certificate /import-ldap-cert.sh -l -s < store password >
 For example, the script will look like this: ./import-ldap-cert.sh -l -s testtest
 {
 "response": "10.185.19.172-1",
 "errorMessage": "Success",
 "errorCode": 200
 }

 Delete the imported certificate ./import-ldap-cert.sh -d -s < store password > -a < alias of cert in truststore >
 Note: This step deletes the existing Keycloak pod. A new pod appears with an existing certificate in truststore.
 {
 "response": "Successfully delete 10.185.19.172-1certificate from truststore ",
 "errorMessage": "Success",
 "errorCode": 200
 }

 5. Follow the steps from step 1 to step 4.
Multiple Groups Configuration for LDAP User
The user must adhere to the following rules for configuing multiple groups for a specific user. For a specific user, the entry for user group must have th attribute value of memberOf in the LDAP server.
When a user is part of multiple groups, there must be multiple instance of the memberOf attribute with the value as the group name the user is part of.
Example
userA is part of two groups: GroupA and GroupB. userA must have two instances of the attribute memberOf. The value of one attribute must be GroupA and the value of another attribute must be GroupB.
Example for userA
memberOf: GroupA
memberOf: GroupB
uid: userA
.


Free Software Foundation!
Join now
Difference between revisions of "Jacal"
From Free Software Directory
Jump to: navigation,

(One intermediate revision by one user not shown)
Line 3: Line 3:

|Short description=Mathematics program

|Short description=Mathematics program

|Full description=An interactive symbolic math program that can manipulate and simplify equations, scalars, vectors, and matrices of single and multiple valued algebraic expressions containing numbers, variables, radicals, and algebraic differential, and holonomic functions.

|Full description=An interactive symbolic math program that can manipulate and simplify equations, scalars, vectors, and matrices of single and multiple valued algebraic expressions containing numbers, variables, radicals, and algebraic differential, and holonomic functions.
 +
|Homepage URL=_URL_
 +
|Is GNU=Yes

|User level=intermediate

|User level=intermediate
 +
|Computer languages=Scheme
 +
|Documentation note=User manual:
 +
 +
* [_URL_ HTML format]
 +
* [_URL_ PDF format]
 +
 +
|Related projects=Octave,Yorick,Mathomatic
 +
|Keywords=math,algebra,equations,numbers,jacal,symbolic,variables,radicals,holonomic,scalars,vectors,matrices
 +
|Version identifier=1c2
 +
|Version date=2010/07/10
 +
|Version status=stable
 +
|Version download=_URL_
 +
|Last review by=Janet Casey
 +
|Last review date=2009-08-18

|Submitted by=Database conversion

|Submitted by=Database conversion

|Submitted date=2011-04-01

|Submitted date=2011-04-01
|Version identifier=1c1
+
|License verified date=2010-07-12
|Version date=2009-08-02
+
|Version status=stable
+
|Version download=_URL_
+
|License verified date=2009-08-18
+
|Version comment=Dependencies:
+
slib-3b2
+
}}
+
{{Software category
+
|Interface=console
+

}}

}}

{{Project license

{{Project license

|License=GPLv2orlater

|License=GPLv2orlater

|License verified by=Kelly Hopkins

|License verified by=Kelly Hopkins
|License verified date=2009-08-18
+
|License verified date=2010-07-12

}}

}}

{{Project license

{{Project license

|License=GPLv3

|License=GPLv3

|License verified by=Kelly Hopkins

|License verified by=Kelly Hopkins
|License verified date=2009-08-18
+
|License verified date=2010-07-12
 +
}}
 +
{{Person
 +
|Real name=Aubrey Jaffer
 +
|Role=Maintainer
 +
|Email=_EMAIL_
 +
}}
 +
{{Person
 +
|Real name=Jerry Hedden
 +
|Role=Contributor
 +
}}
 +
{{Person
 +
|Real name=Michael Thomas
 +
|Role=Contributor
 +
}}
 +
{{Resource
 +
|Resource audience=Bug Tracking,Support
 +
|Resource kind=Mailing List Subscribe
 +
|Resource URL=_URL_
 +
}}
 +
{{Resource
 +
|Resource audience=Help
 +
|Resource kind=Newsgroup
 +
|Resource URL=_URL_
 +
}}
 +
{{Resource
 +
|Resource audience=Help
 +
|Resource kind=Newsgroup
 +
|Resource URL=nntp://sci.math.symbolic
 +
}}
 +
{{Software category
 +
|Interface=console
 +
|Mathematics=symbolic
 +
|Use=mathematics

}}

}}

{{Software prerequisite

{{Software prerequisite
Line 35: Line 75:

|Prerequisite description=slib-2d2

|Prerequisite description=slib-2d2

}}

}}
 +
{{Featured}}
Latest revision as of 12:18, 20 March 2012
[edit]
Jacal
_URL_
An interactive symbolic math program that can manipulate and simplify equations, scalars, vectors, and matrices of single and multiple valued algebraic expressions containing numbers, variables, radicals, and algebraic differential, and holonomic functions.
Documentation
User manual:
Heckert gnu.small.png This is a GNU package
Download
Download version 1c2 (stable)
released on 10 July 2010
Categories
Related Projects
Licensing
LicenseVerified byVerified onNotes
GPLv2orlaterKelly Hopkins12 July 2010
GPLv3Kelly Hopkins12 July 2010
Leaders and contributors
Contact(s)Role
Michael Thomas Contributor
Aubrey Jaffer Maintainer
Jerry Hedden Contributor
Resources and communication
Audience Resource type URI
Help Newsgroup nntp://sci.math.symbolic
Bug Tracking,Support Mailing List Subscribe _URL_
Help Newsgroup _URL_
Software prerequisites
Kind Description
Required to use Scheme
Required to use slib-2d2
This entry (in part or in whole) was last reviewed on 18 August 2009.
Entry
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the page "GNU Free Documentation License".
The copyright and license notices on this page only apply to the text on this page. Any software or copyright-licenses or other similar notices described in this text has its own copyright notice and license, which can usually be found in the distribution or license text itself.
Personal tools
Namespaces
Variants
Actions
Navigation
Contribute


Exclude Text
You have the ability to specify text that is excluded from the email processing. When a block of text is input to be excluded, IEM will scan for it in the body of the message and when found, will eliminate it from the description/note of the issue. This allows you to put in confidentiality or disclaimer text so that it doesn't clutter your issue content.
 1. Click the gear icon in the upper right > click Incoming Email beneath Email.
 2. Click List beneath Exclude Text on the right context menu.
 3. Add using the right context menu; edit or delete items already in the list using the links provided.
 4. Type in or adjust your text content.
 5. Click Save.


text:
A chic clock from plastic waste has been designed to make your home more stylish. A harmonious blend of recycle, design, and simplicity. And the good thing is, this lamp can be made by yourself. Fast and easy!
Create your own wall clock by learning this tutorial and combining it with your creativity. We will be very glad you can make it and upload it on instagram. Tag us at _USER_.id by using hashtag _TAG_.
Let's learn the tutorial.
Tools and Materials :
- High density (HD) plastic / grocery plastic bag (choose your favorite color)
- 3mm plywood
- fabric (you can substitute with paint or paper)
- clockwise & clockwork
- baking paper
- glue (which is friendly for plastic)
1. Cut the plywood the way you want it. For you who make a circle shape, the standard diameter is 28cm, but it's all up to you.
2. Give a hole in the center of the clock with diameter of approximately 6mm using a cutter (you may choose drill if you have, but using cutter is also easy).
3. Take HD plastic, cut the base and the 'ear', then spread the plastic.
4. Pile 2-4 sheets of plastic as thick as desired, then tuck it between the baking paper.
5. Iron the baking paper. Start from the lowest temperature, gradually to the hottest. Make sure both sides of plastic (top and bottom) are well ironed.
6. Take the plastic that has been fused, make sure the size of plastic is still larger than playwood.
7. Stick the fabric on the plywood as you wish. Stick also the backside to center neatly. (you can replace this fabric with paint or other material)
8. Cut one side of the plastic, then stick it also on the plywood with piling on the cloth. Do not forget to tidy up the backside
9. Cover the back side of the plywood with cardboard, paper, cloth, or ironed plastic to make it more presentable.
10. Give a hole in the middle
11. Install clockwork and clockwise
12. Put yarn by slipping it between clockwork and plywood (the easiest way to hang a work, you can use your own way).
Put your own handmade clock at your favorite place. Don't forget to share also to your friend and family how to make it, or ask them to make together.
We can't wait for your great work! Don't forget to tag us _USER_.id at your instagram and use hashtag _USER_
Anything you want to ask, feel free to contact us at _EMAIL_