Archive

Archive for the ‘Help’ Category

Hash Overflow due to 64 bit upcasting

October 28th, 2011 No comments
    Lately, I had to debug the following piece of code, where it caused overflow on the hash bucket design.  The code worked perfectly on a Windows machine while compiled for Win32, but failed to work on a Linux Mint x64 machine.  The code is listed below, which basically calculates hash value of an input 32 bit unsigned number, limiting the hash value to 2^10 (1Meg).

hash = ( fpArray*2654404609 )>>12; // Calculate the hash and limit the value to 2^20 (1 Meg)

   When the input value for fpArray was 1724463449 (0x66C93959), the hash value generated was 1779068547 (0x6A0A6E83), which is more than (0x000FFFFF) to cause the hash bucket overflow.

unsigned hash = fpArray * 2654404609;
hash = hash >> 12;

    When I rewrote the code like the above, the value of hash was 2800236889 (0xA6E83959).  Upon shifting right by 12 yields 638651 (0x0009BEBB), which is the correct and expected hash value.

    Overall, the first snippet of code appears to be correct.  Do you see a problem there?  I couldn’t find the issue, until I recalled the 32bit vs 64bit difference.  If you carefully look at the multiplier 2654404609 (0x9E370001), although appears to be a valid 32 bit number, what is the default assignment of type to this number by the compiler?  If it was assigned 64bits, what would happen to the results?  To validate this, I changed the 2nd snippet as the following.

unsigned long hash = (unsigned long)fpArray * 2654404609;
hash = hash >> 12;
unsigned h2 = (unsigned)hash;

    Now, when the input is the same 1724463449 (0x66C93959), the value of hash becomes 4577423727077636441 (0x3F8646A0A6E83959) and upon right shifting by 12 bits yields 1117535089618563 (0x0003F8646A0A6E83). Followed by downcasting to unsigned yield 1779068547 (0x6A0A6E83). Bingo!

    So, what is happening here? While performing (fpArray * 2654404609), the computation is upcasted to 64bit computation by the 64 bit compiler.  So, what is the solution? Just put a “U” at the end of the constant.

hash = ( fpArray*2654404609U )>>12; // Calculate the hash and limit the value to 2^20 (1 Meg)
(or)
const unsigned multipler = 2654404609; // here U suffix is not needed as the constant is explicitly made unsigned
hash = ( fpArray * multiplier ) >> 12;

    Now, the computation will happen with 32 bit numbers to get the expected outputs.

Lessons Learned here:

  1. While using constants, beware of the upcasting and downcasting. So use proper suffixes like U, L, F etc.
  2. Instead of using constants directly in expressions, use them as constant variables.
  3. Be conscious about the compiler type and the assumptions made by the compiler in different build modes.

How to Remove The headlamp – Getz Prime

September 24th, 2011 No comments

Removing the headlamp from Getz Prime is pretty trivial and requires just only one tool and probably 5 minutes of time.  Let’s see how to go about that.

1. The Headlamp Assembly: It appears very dull ey? Yes, I was going to remove it and replace the frontal glass.

2. The Tool: All the bolts that attach the assembly to the chassis are 10mm and you would need a bit rod for disassembling the headlamp unit.

3. Remove Bolts: Use the 10mm bit rod to remove the bolts.  Remove the first bolt visible from the top.

4. Remove the other 3 bolts visible from the front side.

5. Remove the hidden bolt.  Now that you have removed the front side 3 bolts, you will be able to pull that plastic to expose the hidden lamp assembly bolt fastened to the chassis.

6. Shake and pull the the headlamp assembly.  Remember to remove three wiring harnesses connected to the headlamp assembly; a) The Bulb supply b) Motor, Parking lamp, Main Bulb supply c)  Indicator supply.

That’s it.  It takes just 5 minutes and 1 tool to remove the head lamp assembly from Getz Prime.

AWG Vs Current Flow Capacity

September 13th, 2011 No comments

This write up is taken from http://www.engineeringtoolbox.com/wire-gauges-d_419.html

The AWG – American Wire Gauge – is used as a standard method of denoting wire diameter, measuring the diameter of the conductor (the bare wire) with the insulation removed. AWG is sometimes also known as Brown and Sharpe (B&S) Wire Gauge.

The AWG table below is for a single, solid, round conductor. Because of the small gaps between the strands in a stranded wire, a stranded wire with the same current-carrying capacity and electrical resistance as a solid wire, always have a slightly larger overall diameter. The higher the number – the thinner the wire. Typical household wiring is AWG number 12 or 14. For telephone wires there are common with AWG 22, 24, or 26.

AWG Diameter
(mm)
Diameter
(in)
Square
(mm2)
Resistance
(ohm/1000m)
40 0.08 . 0.0050 3420
39 0.09 . 0.0064 2700
38 0.10 0.0040 0.0078 2190
37 0.11 0.0045 0.0095 1810
36 0.13 0.005 0.013 1300
35 0.14 0.0056 0.015 1120
34 0.16 0.0063 0.020 844
33 0.18 0.0071 0.026 676
32 0.20 0.008 0.031 547
30 0.25 0.01 0.049 351
28 0.33 0.013 0.08 232.0
27 0.36 0.018 0.096 178
26 0.41 0.016 0.13 137
25 0.45 0.018 0.16 108
24 0.51 0.02 0.20 87.5
22 0.64 0.025 0.33 51.7
20 0.81 0.032 0.50 34.1
18 1.02 0.04 0.82 21.9
16 1.29 0.051 1.3 13.0
14 1.63 0.064 2.0 8.54
13 1.80 0.072 2.6 6.76
12 2.05 0.081 3.3 5.4
10 2.59 0.10 5.26 3.4
8 3.25 0.13 8.30 2.2
6 4.115 0.17 13.30 1.5
4 5.189 0.20 21.15 0.8
2 6.543 0.26 33.62 0.5
1 7.348 0.29 42.41 0.4
0 8.252 0.33 53.49 0.31
00 (2/0) 9.266 0.37 67.43 0.25
000 (3/0) 10.40 0.41 85.01 0.2
0000 (4/0) 11.684 0.46 107.22 0.16

The higher the gauge number, the smaller the diameter, and the thinner the wire.  Because of less electrical resistance a thick wire will carry more current with less voltage drop than a thin wire. For a long distance it may be necessary to increase the wire diameter – reducing the gauge – to limit the voltage drop.

American Wire Gauge (AWG)
Length
(feet)
Current (amps)
5 10 15 20 25 30 40 50 60 70
15 16 12 10 10 8 8 6 6 4 4
20 14 12 10 8 8 6 6 4 4 4
25 14 10 8 8 6 6 4 4 2 2
30 12 10 8 6 6 4 4 2 2 2
40 12 8 6 6 4 4 2 2 1 1/0
50 10 8 6 4 4 2 2 1 1/0 1/0
60 10 6 6 4 2 2 1 1/0 2/0 2/0
70 10 6 4 2 2 2 1/0 2/0 2/0 3/0
80 8 6 4 2 2 1 1/0 2/0 3/0 3/0
90 8 4 4 2 1 1/0 2/0 3/0 3/0 4/0
Standard Wire Gauge (SWG)

SWG inches mm
7/0 0.500 12.700
6/0 0.464 11.786
5/0 0.432 10.973
4/0 0.400 10.160
3/0 0.372 9.449
2/0 0.348 8.839
1/0 0.324 8.236
1 0.300 7.620
2 0.276 7.010
3 0.252 6.401
4 0.232 5.893
5 0.212 5.385
6 0.192 4.877
7 0.176 4.470
8 0.160 4.064
9 0.144 3.658
10 0.128 3.251
11 0.116 2.946
12 0.104 2.642
13 0.092 2.337
14 0.080 2.032
15 0.072 1.829
16 0.064 1.626
17 0.056 1.422
18 0.048 1.219
19 0.040 1.016
20 0.036 0.914
21 0.032 0.813
22 0.028 0.711
23 0.024 0.610
24 0.022 0.559
25 0.020 0.508
26 0.018 0.457
27 0.0164 0.417
28 0.0148 0.376
29 0.0136 0.345
30 0.0124 0.315
31 0.0116 0.295
32 0.0108 0.274
33 0.0100 0.254
34 0.0092 0.234
35 0.0084 0.213
36 0.0076 0.193
37 0.0068 0.173
38 0.006 0.152
39 0.0052 0.132
40 0.0048 0.122
41 0.0044 0.112
42 0.004 0.102
43 0.0036 0.091
44 0.0032 0.081
45 0.0028 0.071
46 0.0024 0.061
47 0.002 0.051
48 0.0016 0.041
49 0.0012 0.030
50 0.001 0.025

Solar Panel Structure Design

July 17th, 2011 No comments

This was the original design of the solar panel mounting structure.  Later, I had simplified the design and fabricated them at the local metal fabricators.  Please click on the images to open the big sized drawing.

Pole that would hold the weight of a heavy solar panel over a base structure (not shown).

Hinge design that would transfer the weight from the base structure to the pole, with one degree of freedom.

Know to Say No

June 1st, 2011 No comments
மனிதன் தன்னுடைய கர்மத்தினால் ஏற்படுத்திக்கொள்ளக்கூடிய துயரத்தைவிட பிரதிகர்மத்தினாலேயே அதிக துயரை சம்பாதிக்கிறான். ஆங்கிலத்தில் ஒரு பழமொழி உண்டு, “You should know to say no”. அதாவது, இயலாது என்று சொல்லவேண்டிய இடத்தில் இயலாது என்றுரைக்க தெரிந்திருக்கவேண்டும். இதில் சிக்கல் என்னவென்றால், எங்கு இயலாது என்று கூறுவது, அதை எப்படிக்கூறுவது என்பதில் தான். அதில் தேர்ந்துவிட்டால், தேவைக்கு ஏற்ப வாழ்க்கையை அமைத்துகொள்வது எளிது.

“I am not obligated” என்று விட்டேத்தியாக இருந்துவிடுவது எளிது, ஆனால் இந்த குணத்தால் நண்பர்களை இழக்க நேரிடலாம். இருப்பினும், பொறுப்புகளுக்கும்(responsibilities) வேண்டுகோள்களை ஏற்பதற்கும்(being obligated) வேறுபாடு உண்டு என்பதை உணர்ந்து நடந்தால், திறமையாக நிலைமையை சமாளிக்கமுடியும் என்பதில் ஐயமில்லை.

Symmetric Sigmoid

May 14th, 2011 No comments
When unknown signed intervals are expected to be normalized to -1 to +1, a symmetric sigmoid function could prove very useful.  A Symmetric Sigmoid function is a modified version of the Sigmoid function by stretching it across the Y axis.  As per wikipedia, it is defined as a symmetric function is a special case of logistic function whose plot appears like a ‘S’ with the Y-axis intercept as 0.5 and min/max as 0/1 respectively.

The function definition for a sigmoid is:

In programming languages the implementation should be in order to overcome the numerical overflow and underflow issues:

if ( t < 0 )
    exp( t ) / ( 1.0 + ::exp( t ) )
else
    1.0 / ( 1.0 + ::exp( -t ) )

 

 

 

 

 

 

 

 

 

 

 

 

In the plot, if the curve is stretched in Y-axis to make the Y-intercept at 0.0, the lower bound would get stretched to -1.0.
The function definition for a symmetric sigmoid is:
P symmetric (t) = 2.0 * P(t) – 1.0

The function can also be defined in terms of hyperbolic tangent as:
P symmetric (t) = tanh(t)

With sigmoid functions, it becomes possible to normalize any range in [-∞, +∞] onto [-1.0, +1.0].

Windows Server 2008 R2 Itatic font problem

May 5th, 2011 1 comment
    While doing some automatic windows updates, the default font for Windows 2008 R2 Server changed to Italics.  After getting perplexed about this problem and few hours of Internet searching, the solution was found at http://www.techsupportforum.com/forums/f217/problem-with-italic-fonts-everywhere-arial-233328.html.  Basically, it recommended a registry fix (see below), which seemed working perfectly. The replacement font prescribed in the registry fix sounded weird to me, so checked the name in http://en.wikipedia.org/wiki/Segoe and found that it belongs to the Sans-serif font category.
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes]
"MS Shell Dlg 2"="Segoe UI"
"MS Shell Dlg"="Segoe UI"
"Helv"="Segoe UI"
"MS Sans Serif 8,10,12,14,18,24"="Segoe UI"
"MS Serif 8,10,12,14,18,24"="Segoe UI"
"MS Sans Serif"="Segoe UI"
"System"="Segoe UI"
"Microsoft Sans Serif"="Segoe UI"
"Tahoma"="Segoe UI"
"MS Serif"="Segoe UI"
"Times New Roman"="Segoe UI"
"Times"="Segoe UI"
"Small Fonts"="Segoe UI"
"Tms Rmn"="Segoe UI"
"Arial"="Segoe UI"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts]
"Arial (TrueType)"="segoeui.ttf"
"Arial Italic (TrueType)"="segoeuii.ttf"
"Arial Bold (TrueType)"="segoeuib.ttf"
"Arial Bold Italic (TrueType)"="segoeuiz.ttf"
"Times New Roman (TrueType)"="segoeui.ttf"
"Times New Roman Italic (TrueType)"="segoeuii.ttf"
"Times New Roman Bold (TrueType)"="segoeuib.ttf"
"Times New Roman Bold Italic (TrueType)"="segoeuiz.ttf"
"Tahoma (TrueType)"="segoeui.ttf"
"Tahoma Bold (TrueType)"="segoeuib.ttf"
"Microsoft Sans Serif (TrueType)"="segoeui.ttf"
"MS Sans Serif 8,10,12,14,18,24 (VGA res)"="segoeui.ttf"
"MS Serif 8,10,12,14,18,24 (VGA res)"="segoeui.ttf"

[HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\Shell\MuiCache]
"@themeui.dll,-2037"="{Segoe UI, 8 pt}"
"@themeui.dll,-2038"="{Segoe UI, 8 pt}"
"@themeui.dll,-2039"="{Segoe UI, 8 pt}"
"@themeui.dll,-2040"="{Segoe UI, 8 pt}"
"@themeui.dll,-2041"="{Segoe UI, 8 pt}"
"@themeui.dll,-2042"="{Segoe UI, 8 pt}"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontMapper\FamilyDefaults]
"Swiss"="Segoe UI"
"Roman"="Segoe UI"

Tobacco Helps!

October 25th, 2010 No comments
There is very nice use for tobacco even for the non-smokers!  Most of the LMV, MMV, HMV drivers would know about this  trick, so I am just documenting a world’s secret. 

If you had driven your car on high ways on a rainy day, despite having a nice wiper, you might have had severe problems with water staying on the wind shield glasses.  When the windshield gets wet, water stays there for long to deplete the clarity of driver’s vision on the roads.  If it is night and raining, highways and high beam lamps, you would know how bad it feels to drive.

This is where Tobacco comes for help.  When tobacco is wiped on glass, it gives glass repulsion to water.  Assume that you have wiped a bit of oil on glass and sprinkle water over glass.  You would see that the water droplets are never attached to the glass, rather they roll out faster without disturbing the surface of the glass.  Likewise, tobacco adds a thin layer of protection against water without disturbing the transparency of glass.   So, if it rained, take some tobacco and apply it over the glass, following by wiping the glass with tobacco.  You would witness water droplets running on your windshield rather than sticking on it. 

Disclaimer: Test the acceptance of tobacco on your glass in small scale before applying it in full.  Because tobacco can stain your windshield glass permanently, if inappropriately used.  Also, the application of tobacco is one-time use only.  If it rained very heavily, this trick may not work as the force water would remove the layer created by the application.

மழை நீர் சேகரிப்பு தொட்டி

October 23rd, 2010 No comments

நான் இருக்கும் அடுக்கத்தில் தண்ணீர் தட்டுபாடு வெயில் காலங்களில் அதிகம், பல நூறு ரூபாய்கள் கொடுத்துதான் தண்ணீர் வாங்கவேண்டியிருக்கும். கடந்த ஆண்டு ஒரு தொட்டி (சுமார் 10000லி) தண்ணீருக்கு ரூ 750 வரை கொடுத்து கொள்முதல் செய்தோம். சக குடியிருப்போர், என்னுடைய உந்துதலின் பெயரில் மழை நீர் சேகரிப்பு செய்ய ஒப்புதல் மற்றும் உபயமும் செய்தனர். என்னுடைய தொட்டியில் வரைபடத்தை இங்கு தொகுத்துள்ளேன்.

முயற்சி #1

சுமார் 4000 ரூபாய் செலவில் அமைத்த தொட்டி கீழே கொடுக்கப்பட்டுள்ளது. இந்த திட்டத்தில் நன்மைகளும், தீமைகளும் இருந்தன. நன்மையெனில், செலவு குறைவு, திட்டப்பணி வேகமாக முடிக்கமுடிந்தது, தண்ணீர் சுத்தமாக வந்தது; தீமைகளெனில், பராமரிப்பு கடினம், compressor motor உடன் ஒத்துபோகவில்லை (மணற்படுகை பிரண்டது), தண்ணீர் வேகம் குறைவு.

முயற்சி #2

சுமார் 8000 ரூபாய் செலவில் அமைத்த தொட்டி கீழே கொடுக்கப்பட்டுள்ளது. இந்த திட்டத்தில் நன்மைகள் மட்டுமே இருந்தன. முதல் திட்டத்தின் தீமைகள்யாவும் களையப்பட்டன. செலவு மட்டும் இரண்டு மடங்கு ஆனது, இருந்தாலும் பராமரிப்பு சுலபம், கப்பிரஸர் மோட்டாருடன் ஒத்துபோதல், தண்ணீரின் வேகம் அதிகமாக இருப்பதால் செலவு பெரதாகத் தெரியவில்லை.

Powered by ScribeFire.

Text Mining Question Bank

July 19th, 2010 No comments

1. Natural Language Processing

  1. Give 5 examples for Holonyms, Hyponyms, Hypernyms, Metonyms, Meronyms, Homonyms, Synonyms, Polysems.
  2. Draw the Venn diagram of Spellings-Meanings-Pronunciations.
  3. Why are Context Free Grammars Context free ?
  4. What is the difference between RTN and ATN ?
  5. Give examples of Prepositional Phrases.
  6. Compare CFG and ATN.
  7. Give 5 examples for Anaphora, Cataphora, Endophora, Exophora.
  8. Give 5 examples of NP ellipsis, VP ellipsis.
  9. Write a CFG, ATN for the following:
    1. “Tech Companies queue up for Open Source Professionals”.
    2. I love my language.
    3. Patriotism is not about watching cricket matches together.
    4. AMD’s microcode is more richer than Intel.
    5. Ron Weasley should marry Hermoine Granger.
    6. Krishna is a metonym for uncertainty.
    7. PMPO is 8 times that of RMS power measured for a 1KHz signal with an amplitude of 1V.
  10. What are the Named Entities in
    1. “Open Source helps Life Spring Hospitals” ?
    2. I want to work for Burning Glass Technologies Inc.
    3. The university life at SRM is very informal.
    4. AMD Phenom 5500 Black Edition can be unleashed to 4 cores.
    5. Hail Hitler!
    6. Anushka is taller than Surya.
  11. Do NP chunking on
    1. Tips and Tools for measuring the world and beating the odds
    2. The crazy frog is an awesome song
    3. Time flies like arrow.
    4. Thevaram was written by Appar.
    5. Text mining is awfully interesting.
    6. I need to get placed is a good company.
  12. Write a Regular Expression for replacing the beginning and end of all the lines in a text file with the strings “” and “” respectively.
  13. Write a regular expression for capturing Indian mobile numbers, land line numbers and Indian pin codes with maximum possible inherent validation.
  14. Write a regular expression for capturing the vehicle numbers, PAN numbers, Passport numbers in a new paper article.
  15. Identify rules to capturing dates and discriminating the job dates, education dates and date of birth.
  16. Give examples for Noun stemming in English & {Tamil or Telugu or Hindi} languages.  Transliterate the Indian language.
  17. Give examples for Verb stemming in English & {Tamil or Telugu or Hindi} languages.  Transliterate the Indian language.
  18. How does a spell checker work ?
  19. Take some arbitrary texts and summarize them in to a line or two.  Justify the reason for the choice of words and sentences in your summary.
  20. Show some examples for word-by-word, sentence-by-sentence, context-by-context machine translation.

2. Information Extraction & Statistical NLP

  1. If Prob(A) is 0.4 and Prob(B) is 0.6, what is Prob(A,B), Prob(A|B), Prob(A u B), Prob(A – B), Prob(A n B) ?  If some data is missing, assume a reasonable value for it.
  2. Let A be a random variable with instances a1, a2, a3, a4, a5.  If P(a1) = 1.8e-4, P(a2) = 5.2e-8, P(a3) = 0.042, P(a4) = 0.00052, P(a5)=0.2, compute Sigma P(A), PI P(A) without mathematical underflow.
  3. Give real life examples for 1st order markov processes.
  4. Give real life examples of Expectation-Maximization.
  5. If p[[0.1 0.3 0.2 0.4],[0.3 0.4 0.2 0.1],[0.3 0.3 0.1 0.3], [0.2 0.4 0.1 0.3]] is the state transition probability of any 4 states {A,B,C,D} in a HMM, calculate P(A->B->C->D).
  6. Based on (5), check whether the probability of state sequence is commutative (ex: P(A->B->C) = P(C->B->A) ?)
  7. If the observation probability is [[.2 .4 .1 .3], [.6 .1 .0 .3], [.0 .0 .0 1.0], [.1 .1 .1 .7], [.4 .4 .1 .1]] for observations {i, j, k, l, m} in states as per(5). Compute the P(O={k,l}).
  8. Annotate the items in (9) of Section 1 and build the state transition, observation, initial probability matrices.
  9. Show that usage of forward probabilities reduce the time-complexity of evaluation problem.
  10. Show that usage of forward-backward probabilities reduce the time-complexity of decoding problem.

    Powered by ScribeFire.