-

Christmas Timer

Posted by Abel Gancsos on Dec 12, 2011 in Blog

 

<html>
<head>
<style type="text/css">
span{
	color:blue;
	font-family:chalked,cracked,comic sans ms,chiller;
	font-size: 120pt;
}
</style>

<script type="text/javascript" src="../jquery-1.6.4.min.js">
</script>
<script type="text/javascript">

function update ( )
{
  var now = new Date ( );

  var hours = now.getHours ( );
  var minutes = now.getMinutes ( );
  var seconds = now.getSeconds ( );

  // Pad the minutes and seconds with leading zeros, if required
  minutes = ( minutes < 10 ? "0" : "" ) + minutes;
  seconds = ( seconds < 10 ? "0" : "" ) + seconds;

  //

  var month=now.getMonth()+1;
  var day=now.getDate();
  var year=now.getFullYear();

  // Compose the string for display
  var currentTime = "Months: " + (12-month)+" Days: "+ (23-day)+" Hours: "+(24-hours)+ " Minutes: "+(60-minutes);

  // Update the time display
  document.getElementById("time").firstChild.nodeValue = currentTime;
}

</script>

<title>Christmas Timer</title>
</head>
<body onload="update(); setInterval('update()', 1000 )" bgcolor="red">
<center>
<br/><br/><br/><br/>
<font color="green" face="Arial"><h1>Christmas Timer</h1><br/><br/>

<span id="time">
</span>

</center>
</body>
</html>

 
-

Parser

Posted by Abel Gancsos on Dec 8, 2011 in Blog

////.h

#include
#include
#include
using namespace std;

char buffer[80];
int readflag=1;

//Reserved words
char *reserved[]={
“begin”,”end”,”char”,”default”,”else”,”enum”,”if”,”int”,”switch”,”while”
};

enum tokenType{
begin,end,reserve2,reserve3,reserve4,reserve5,reserve6,reserve7,reserve8,reserve9,
identifier,comment,realConst,stringConst,plusSign,minusSign,multiplication,assignment,
leftPar,comma,semicolon,rightPar,invalid,integer,division
};

void clear(void); //Clears buffer
int dispatcher(void);
void display(int input);

//Parser functions
void syntaxerror(int token);
void match(int token);
int readtoken(void);
int getnexttoken(void);
int peektoken(void);
void program(void);
void statementlist(void);
void statementtail(void);
void statement(void);
void expression(void);
void expressiontail(void);
void factor(void);
void factortail(void);
void primary(void);
void addop(void);
void multop(void);

//Recognizers
tokenType getReservedOrId(void); //Identifiers (L(L|D)*)
tokenType getRealLit(void); //Real Constants (D+|D+.D+)
tokenType getComments(void); //Comments (/* NOT(*/) */ )
tokenType getStrings(void); //String Constants (” NOT(“) “)

tokenType getPlus(void); //Plus (D+|D+.D+ + D+|D+.D+)
tokenType getMinus(void); //Minus (D+|D+.D+ – D+|D+.D+)
tokenType getMult(void); //Multiplication (D+|D+.D+ * D+|D+.D+)
tokenType getDiv(void); //Division (D+|D+.D+ / D+|D+.D+)
tokenType getAssignment(void); //Assignment (L(L|D)* := ” NOT(“) “|D+|D+.D+)

tokenType getLeftPar(void); //Left Parenthesis ( ( )
tokenType getRightPar(void); //Right Parenthesis ( ( )
//tokenType getLeftBrace(void); //Left Brace ( { )
//tokenType getRightBrace(void); //Right Brace ( } )
tokenType getSemicolon(void); //Semicolon ( ; )
tokenType getComma(void); //Comma ( , )

tokenType Invalid(void); //Invalid characters

int dispatcher(void)
{
int input;
int ch, ch2;

ch = cin.get();
while (isspace(ch)) // Skip spaces
ch = cin.get();

if (ch == EOF) // Have we reached the end of the file?
return EOF;

// Take a peek at the next character
ch2 = cin.peek();

// Put the first character back in the buffer
cin.putback(ch);

// Figure out which language recongnition function to call
if (isalpha(ch)) // Letter = Identifier
input = getReservedOrId();
else if (isdigit(ch)) // Digit = Real Constant
input = getRealLit();
else
{
switch (ch)
{

case ‘/’:

if (ch2 == ‘*’) input = getComments();
else input = getDiv();
break;
case ‘”‘: input = getStrings(); break;
case ‘+’: input = getPlus(); break;
case ‘-’: input = getMinus(); break;
case ‘*’: input = getMult(); break;
case ‘:’:

if (ch2 == ‘=’)
input = getAssignment();
else input = Invalid();
break;
case ‘(‘: input = getLeftPar(); break;
case ‘,’: input = getComma(); break;
case ‘;’: input = getSemicolon(); break;
case ‘)’: input = getRightPar(); break;
default: input = Invalid(); break;

}
}

return input;
}

void clear(void)
{
for(int i=0;i<80;i++){
buffer[i]=NULL;
}
}

void display(int input){
char *message[]={
“begin”,”end”,”Reserved”,”Reserved”,”Reserved”,”Reserved”,”Reserved”,
“Reserved”,”Reserved”,”Reserved”,”Indentifier”,”Comment”,”Real Constant”,
“String Constant”,”Plus”,”Minus”,”Multiplication”,”Assignment”,”Left Parenthesis”,
“Comma”,”Semicolon”,”Right Parenthesis”,”Invalid Character”,”Integer”,”Division”
};

cout.setf(ios::left);
cout< }

tokenType getAssignment(){
int ch=cin.get();

buffer[0]=ch;
ch=cin.get();

if(ch==’=')
buffer[1]=ch;

else
cin.putback(ch);

return assignment;
}

tokenType getComma(){
int ch=cin.get();

buffer[0]=ch;
return comma;
}

tokenType getDiv(){
int ch=cin.get();

buffer[0]=ch;
return division;
}

tokenType getComments(){
int ch,i=0;
ch=cin.get();

while(!buffer[i-1]==’*'&&ch==’/'){
buffer[i++]=ch;
ch=cin.get();
}

buffer[i++]=ch;

return comment;
}

tokenType getLeftPar(){
int ch=cin.get();

buffer[0]=ch;
return leftPar;
}

tokenType getRightPar(){
int ch=cin.get();

if(ch==’)')
buffer[0]=ch;

return rightPar;
}

tokenType getPlus(){
int ch=cin.get();

buffer[0]=ch;
return plusSign;
}

tokenType getReservedOrId(){
int ch,i=0;

ch=cin.get();
if(isalpha(ch))
{
buffer[i++]=ch;
ch=cin.get();
while(isalnum(ch))
{
buffer[i++]=ch;
ch=cin.get();
}
cin.putback(ch);

for(int i=0;i<10;i++)
if(strcmp(buffer,reserved[i])==0)
return (tokenType)i;
}

return identifier;
}

tokenType getMinus()
{
int ch=cin.get();
buffer[0]=ch;
return minusSign;
}

tokenType getMult()
{
int ch=cin.get();
buffer[0]=ch;
return multiplication;
}

tokenType getRealLit()
{
int ch,i=0;
ch=cin.get();

while(isdigit(ch)){
buffer[i++]=ch;
ch=cin.get();
}

if(ch==’.'){ //Continue
buffer[i++]=ch;
ch=cin.get();
while(isdigit(ch)){
buffer[i++]=ch;
ch=cin.get();
}
}

else if(ch!=’.’ &&isdigit(ch)){ //Integer
//cin.putback(ch); //put invalid character back into the buffer
return integer;
}

cin.putback(ch); //put invalid character back into the buffer
return realConst;

}

tokenType getSemicolon()
{
int ch=cin.get();
if(ch==’;')
buffer[0]=ch;

return semicolon;
}

tokenType getStrings()
{
int ch,i=0;

ch=cin.get();
if(ch==’”‘){
buffer[i++]=ch;
ch=cin.get();
while(ch!=’”‘){
buffer[i++]=ch;
ch=cin.get();
}

buffer[i++]=ch;
}

return stringConst;
}

tokenType Invalid()
{
buffer[0]=cin.get();
return invalid;
}

int getnexttoken(void)
{
static int nexttoken;
if(readflag==1){
clear();
nexttoken=dispatcher();
readflag=0;
}

return nexttoken;
}

int peektoken(void)
{
int input;
input=getnexttoken();

return input;
}

int readtoken(void)
{
int input;
input=getnexttoken();
readflag=1;

return input;
}

void match(int token)
{
int input=readtoken();
if(input!=token)
syntaxerror(token);
else{
cout< if(input==begin||input==end||input==semicolon)
cout< }
}

void syntaxerror(int token)
{
cout<<“\n”< }

void program(void)
{

match(begin);
statementlist();
match(end);

}

void statementlist(void)
{
int nexttoken;
nexttoken=peektoken();

switch(nexttoken)
{
case identifier:
statement();
statementtail();
break;
case end:
return;

default:
syntaxerror(identifier);
}
}

void statementtail(void)
{
int nexttoken;
nexttoken=peektoken();
switch(nexttoken)
{
case identifier:
match(identifier);
match(assignment);
expression();
match(semicolon);
break;
case end:
return;
default:
syntaxerror(identifier);
}
}

void statement(void)
{
int nexttoken;
nexttoken=peektoken();

switch(nexttoken)
{
case identifier:
match(identifier);
match(assignment);
expression();
match(semicolon);
break;
default:
syntaxerror(identifier);
}
}

void expression(void)
{
int nexttoken;
nexttoken=getnexttoken();

switch(nexttoken)
{
case identifier:
case integer:
case realConst:
factor();
expressiontail();
break;
default:
syntaxerror(identifier);
}
}

void expressiontail(void)
{
int nexttoken;
nexttoken=peektoken();
switch(nexttoken)
{
case plusSign:
case minusSign:
addop();
factor();
expressiontail();
break;
case semicolon:
case rightPar:
case comma:
return;
default:
syntaxerror(plusSign);
}
}

void factor(void)
{
primary();
factortail();
}

void factortail(void)
{
int nexttoken;
nexttoken=peektoken();
switch(nexttoken)
{
case multiplication:
multop();
primary();
factortail();
break;
case rightPar:
case semicolon:
case plusSign:
case minusSign:
case comma:
return;
default:
syntaxerror(multiplication);
}
}

void primary(void)
{
int nexttoken;
nexttoken=peektoken();
switch(nexttoken)
{
case leftPar:
match(leftPar);
expression();
match(rightPar);
break;
case identifier:
match(identifier);
break;
case realConst:
match(realConst);
break;
default:
syntaxerror(leftPar);
}
}

void addop(void)
{
int nexttoken;
nexttoken=peektoken();
switch(nexttoken)
{
case plusSign:
match(plusSign);
break;
case minusSign:
match(minusSign);
break;
default:
syntaxerror(plusSign);
}
}

void multop(void)
{
int nexttoken;
nexttoken=peektoken();
switch(nexttoken)
{
case multiplication:
match(multiplication);
break;

default:
syntaxerror(multiplication);
}
}

////.cpp

#include “parser.h”

int main()
{
readflag=1;
program(); //Calls the parser, which will continurally check the scanner for the lexems

return 0;
}

 
-

Heap Sort

Posted by Abel Gancsos on Dec 7, 2011 in Blog

////.h

#include
#include
using namespace std;

void restoreup(int a[],int i);
void restoredown(int a[],int i,int n);

//Takes an array and the last entered value and moves it to a sorted position
void restoreup(int a[],int i)
{
int value=a[i];

while((i>1)&&(a[i/2] {
a[i]=a[i/2];
i=i/2;
}

a[i]=value;
}

void restoredown(int a[],int i,int n)
{
int value=a[i],j=i*2;

while(j<=n)
{
if((j j++;

if(a[j] break;

a[j/2]=a[j];
j=j*2;
}

a[j/2]=value;
}

////.cpp

#include "heapsort.h"
#include
#include

int main()
{
int again=1,max,max2;
timeval time;
double total,start,end;

while(again==1)
{

cout<<"Enter max numbers to sort: ";
cin>>max;

max2=max;

int a[max];
gettimeofday(&time,NULL);
start=time.tv_sec+(time.tv_usec/1000000.0);

for(int i=1;i<=max;i++){
a[i]=rand()%9;
restoreup(a,i);
}

cout<<"Before the sort: ";
for(int i=1;i<=max;i++)
cout<

int j=max;
// start=clock();
for(int i=1;i<=j;i++){
int temp=a[1];
a[1]=a[max];
a[max]=temp;
max--;
restoredown(a,1,max);
}

gettimeofday(&time,NULL);
end=time.tv_sec+(time.tv_usec/1000000.0);
total=end-start;

cout< for(int i=1;i<=max2;i++)
cout<

cout<

cout< cin>>again;
}

return 0;
}

 
-

JavaScript Clock

Posted by Abel Gancsos on Dec 2, 2011 in Blog
<script type="text/javascript" src="../jquery-1.6.4.min.js">// <![CDATA[

// ]]></script>
<script type="text/javascript">// <![CDATA[

function update ( )
{
  var now = new Date ( );

  var hours = now.getHours ( );
  var minutes = now.getMinutes ( );
  var seconds = now.getSeconds ( );

  // Pad the minutes and seconds with leading zeros, if required
  minutes = ( minutes < 10 ? "0" : "" ) + minutes;
  seconds = ( seconds < 10 ? "0" : "" ) + seconds;

  // Choose either "AM" or "PM" as appropriate
  var tOD = ( hours < 12 ) ? "AM" : "PM";

  // Convert the hours component to 12-hour format if needed
  hours = ( hours > 12 ) ? hours - 12 : hours;

  // Convert an hours component of "0" to "12"
  hours = ( hours == 0 ) ? 12 : hours;

  // Compose the string for display
  var currentTime = "It is " + hours + ":" + minutes + ":" + seconds + " " + tOD + " on " + (now.getMonth()+1) + "-" + now.getDate() + "-" + now.getFullYear();

   currentTime=currentTime + "\n";
   currentTime=currentTime + "                                                                            PST: ";
   currentTime = currentTime + (hours-3) + ":" + minutes + ":" + seconds + " " + tOD + " on " + (now.getMonth()+1) + "-" + now.getDate() + "-" + now.getFullYear();

  // Update the time display
  document.getElementById("time").firstChild.nodeValue = currentTime;
}

// ]]></script>

<center>

</center>&nbsp;
<h1>JavaScript Time</h1>
<span id="time">
</span>

 
-

Scanner2

Posted by Abel Gancsos on Dec 2, 2011 in Blog

////.h

#include
#include
using namespace std;

//Token Types
enum tokenType{
reserve0,reserve1,reserve2,reserve3,reserve4,reserve5,reserve6,reserve7,reserve8,reserve9,
identifier,comment,realConst,stringConst,plusSign,minusSign,multiplications,assignment,leftPar,
comma,semicolon,rightPar,leftBrace,rightBrace,invalid,integer,divisions
};

//Displays the appropiate token that corresponds to the specified input and displays the lexem currently
//in the buffer

void display(int);
void displayHeaders(void);
void clear(void); //Resets the token

//Recognizers
tokenType getReservedOrId(void); //Identifiers (L(L|D)*)
tokenType getRealLit(void); //Real Constants (D+|D+.D+)
tokenType getComments(void); //Comments (/* NOT(*/) */ )
tokenType getStrings(void); //String Constants (” NOT(“) “)

tokenType getPlus(void); //Plus (D+|D+.D+ + D+|D+.D+)
tokenType getMinus(void); //Plus (D+|D+.D+ – D+|D+.D+)
tokenType getMult(void); //Plus (D+|D+.D+ * D+|D+.D+)
tokenType getDiv(void); //Plus (D+|D+.D+ / D+|D+.D+)
tokenType getAssignment(void); //Plus (L(L|D)* := ” NOT(“) “|D+|D+.D+)

tokenType getLeftPar(void); //Left Parenthesis ( ( )
tokenType getRightPar(void); //Right Parenthesis ( ( )
tokenType getLeftBrace(void); //Left Brace ( { )
tokenType getRightBrace(void); //Right Brace ( } )
tokenType getSemicolon(void); //Semicolon ( ; )
tokenType getComma(void); //Comma ( , )

// Reads in and displays the tokens
int scanner();

tokenType Invalid(void); //Invalid characters

char buffer[80]; //Buffer to hold the tokens
char *keywords[]={“double”,”char”,”int”,”string”};

void displayHeaders(void)
{

cout<<“TOKENS/TYPES”< cout<<“————–”< }

//Display buffer and character input
void display(int input)
{
static char *message[]={“Reserved”,”Reserved”,”Reserved”,”Reserved”,”",”",”",”",”",”",
“Identifier”,”Comment”,”Real Constant”,”String Constant”,”Plus”,”Minus”,
“Multiplication”,”Assignment”,”Left Parenthesis”,”Comma”,”Semicolon”,
“Right Parenthesis”,”Left Brace”,”Right Brace”,”Invalid Character”,”Integer”,”Division”};

cout.setf(ios::left);
cout< }

//Reset buffer
void clear()
{

for(int i=0;i<80;i++)
buffer[i]=NULL;
}

tokenType getReservedOrId()
{
int c,i=0;
c=cin.get();

if(isalpha(c)){
buffer[i++]=c;
c=cin.get();

while(isalnum(c)){ //Letter or digit
buffer[i++]=c;
c=cin.get();
}

}

cin.putback(c); //Put the invalid character back into the buffer

//Check to see if invalid character is reserved
for(int i=0;i<4;i++){
if(strcmp(buffer,keywords[i])==0)
return (tokenType)i;
}

return identifier;
}

tokenType getComments()
{
int c,i=0;
c=cin.get();

while(!(buffer[i-1]==’*’ && c==’/')){
buffer[i++]=c;
c=cin.get();
}

//If the last character is a ‘/’, place in the buffer
buffer[i++]=c;

return comment;
}

tokenType getRealLit()
{
int c,i=0;
c=cin.get();

while(isdigit(c)){
buffer[i++]=c;
c=cin.get();
}

if(c==’.'){ //Continue
buffer[i++]=c;
c=cin.get();
while(isdigit(c)){
buffer[i++]=c;
c=cin.get();
}
}

else{ //Integer
cin.putback(c); //put invalid character back into the buffer
return integer;
}

cin.putback(c); //put invalid character back into the buffer
return realConst;
}

tokenType getStrings()
{
int c,i=0;
c=cin.get();

if(c==’”‘){
buffer[i++]=c;
c=cin.get();
while(c !=’”‘){
buffer[i++]=c;
c=cin.get();
}

buffer[i++]=c;
}

return stringConst;
}

tokenType getPlus()
{
buffer[0]=cin.get();
return plusSign;
}

tokenType getMinus()
{
buffer[0]=cin.get();
return minusSign;
}

tokenType getMult()
{
buffer[0]=cin.get();
return multiplications;
}

tokenType getDiv()
{
buffer[0]=cin.get();
return divisions;
}

tokenType getAssignment()
{
int c,i=0;
c=cin.get();
buffer[i++]=c;

if(c==’:'){

c=cin.get();
buffer[i++]=c;
}

else
cin.putback(c);

return assignment;
}

tokenType getLeftPar()
{
buffer[0]=cin.get();
return leftPar;
}

tokenType getComma()
{
buffer[0]=cin.get();
return comma;
}

tokenType getSemicolon()
{
buffer[0]=cin.get();
return semicolon;
}

tokenType getRightPar()
{
buffer[0]=cin.get();
return rightPar;
}

tokenType getLeftBrace()
{
buffer[0]=cin.get();
return leftBrace;
}

tokenType getRightBrace()
{
buffer[0]=cin.get();
return rightBrace;
}

tokenType Invalid()
{
int i=0;

while(!isspace(cin.peek())) //Skip spaces
buffer[i++]=cin.get();

return invalid;
}

// The scanner
// Reads characters in from an input files and displays the
// appropiate token type for each character/characters.
int scanner()
{
int input;
int c, c2;

c = cin.get();
while (isspace(c)) // Skip spaces
c = cin.get();

if (c == EOF) // Have we reached the end of the file?
return EOF;

// Take a peek at the next character
c2 = cin.peek();

// Put the first character back in the buffer
cin.putback(c);

// Figure out which language recongnition function to call
if (isalpha(c)) // Letter = Identifier
input = getReservedOrId();
else if (isdigit(c)) // Digit = Real Constant
input = getRealLit();
else
{
switch (c)
{

default: input = Invalid(); break;

case ‘/’:

if (c2 == ‘*’) input = getComments();
else input = getDiv();
break;
case ‘”‘: input = getStrings(); break;
case ‘+’: input = getPlus(); break;
case ‘-’: input = getMinus(); break;
case ‘*’: input = getMult(); break;
case ‘:’:

if (c2 == ‘=’)
input = getAssignment();
else input = Invalid();
break;
case ‘(‘: input = getLeftPar(); break;
case ‘,’: input = getComma(); break;
case ‘;’: input = getSemicolon(); break;
case ‘)’: input = getRightPar(); break;
case ‘{‘: input = getLeftBrace(); break;
case ‘}’: input = getRightBrace(); break;

}
}

return input;
}

////.cpp

#include “scanner.h”

int main()
{

int input;

clear();
displayHeaders();

// Keep on calling the scanner until we reach EOF
input=scanner();
while (input!=EOF){
display(input);
clear();
input=scanner();
}

return 0;
}

Thank you for reading!

 
-

A simple little script

Posted by Abel Gancsos on Nov 29, 2011 in Blog

<script type="text/javascript" src="jquery-1.6.4.min.js"></script>

<script type="text/javascript">// <![CDATA[
function calculate(){
var test=document.test.cel.value;

if(test!=''){
var a=document.test.cel.value;
var temp=(((a/5)*9)+32);
document.test.far.value=temp;
}

else{
 a=document.test.cel.value;
temp=(((a-32)*5)/9);;
document.test.cel.value=temp;
}
}

function reset(){

document.test.far.value="";
document.test.cel.value="";
}
</script>

JavaScript Test

<center>

</center>&nbsp;

<form id="test" method="post" name="test">
<table>
<tbody>
<tr>
<td align="left">Celsius:</td>
<td align="right"><input id="cel" onclick="reset()" type="text" name="celsius" /></td>
</tr>
<tr>
<td align="left">Fahrenheit :</td>
<td align="right"><input id="far" onclick="reset()" type="text" name="far" /></td>
</tr>
<tr>
<td><button onclick="calculate()" name="submit" type="button">Calculate</button></td>
</tr>
</tbody>
</table>
</form>

 
-

Math Proof

Posted by Abel Gancsos on Nov 28, 2011 in Blog

#include “sort.h”
using namespace std;

int main ()
{

int again=1,max;

while(again==1){

cout<<"Enter max numbers: ";
cin>>max;

int array1[max],array2[max],array3[max],array4[max];
for(int i=0;i cout<<"Enter value "< cin>>array1[i];
}

//Sort
int b=max;
for(int i=0;i

for(int j=0;j

if(array1[j]>array1[j+1]){
int temp=array1[j];
array1[j]=array1[j+1];
array1[j+1]=temp;
}
}
}

//Reverse
int j=-1;
for(int i=max;i>=0;i–){
array3[j]=array1[i];
j++;

}

for(int i=0;i array4[i]=array1[i]-array3[i];
}

cout<<"Original sorted: ";
printArray(array1,max);
cout<<"Reverse sorted: ";
printArray(array3,max);

cout<<"Check: ";
printArray(array4,max);

cout< cin>>again;
}

return 0;
}

 
-

Spanish characters

Posted by Abel Gancsos on Nov 15, 2011 in Blog

With Spanish becoming more and more popular and more and more essays being typed on the computer, I thought it would be of some value to talk about how you can make Spanish characters on your machine.

First off, it varies from system to system. For example, On an Apple Macintosh, you simply press [Option] + [E] at the same time then choose the accented character. Simple.

On the other hand, Windows is a bit more difficult. For example, you need to use numeric codes:

Upper Vowels
Vwl Code
Á ALT+0193
É ALT+0201
Í ALT+0205
Ó ALT+0211
Ú ALT+0218
Ñ ALT+0209
Ü ALT+0220

Lower Vowels
Vwl Code
á ALT+0225
é ALT+0233
í ALT+0237
ó ALT+0243
ú ALT+0250
ñ ALT+0241
ü ALT+0252

Other Symbols
Sym Code
¿ ALT+0191
¡ ALT+0161
º ALT+0186 (Masculine Ordinal)
ª ALT+0170 (Feminine Ordinal)
« ALT+0171 (Left Angle Quote)
» ALT+0187 (Right Angle Quote)
€ ALT+0128

Or you can download a program that does the characters for you, but then you could either get a virus or you would have to constantly go back and forth from your word processor and that program.

Then the third option is enabling the international keyboard in Windows Vista and above.

Since Windows is numeric and has no hotkey functions, there’s no easy way to enter a Spanish character on Windows. Some applications on the web would have an internal keyboard developed into the system, but otherwise you would have to know the code numbers There is also the option of changing the whole language of the computer, but why would you want to do that only for a school project or something. Now, you could be thinking that it doesn’t matter. Accents aren’t really that important. Well, you’re completely wrong because one word accented means one thing, that same word unaccented would mean something completely different. And again, the popularity of Spanish is growing, you can even see it on social networking sites like Facebook and besides let’s say there is something that YOU want to say that most likely not a lot of people would bother to copy and paste into Google Translate. In such a case, you would write in a different language, which would most likely be one of the romance languages, primarily Spanish. You could also type in binary, but who else is nerdy enough to do that?

Thank you for reading!

 
-

Browsers

Posted by Abel Gancsos on Nov 14, 2011 in Blog

In today’s post, I want to go over some of the browsers that are out today. I specifically want to talk about Google Chrome, Safari, Firefox, and Internet Explorer. (Just as a heads up, I did write the list in that order for a reason).

Google Chrome:

What can I say, I’m starting to become a HUGE Google fan, but with a great reason. Pretty much anything that Google does will end up being much better. When I say better, I don’t just mean on a subjective level, but on an analytic level. The main thing that I like about Google Chrome is that it has a smooth user graphical interface (GUI). It looks very sleek. Along with looking great, it’s also extremely stable on all operating systems. I measure stability by the level it can handle all web standards (basic markup, interactive scripting, server scripting, and multimedia). Most, if not all browsers don’t tend to have any issues with markup because if they have a problem with the very first step of the web, it’s not going to be a great browser to begin with. Interactive scripting is mostly JavaScript (JQuery). This scripting language is very important because without out some code, all you would have is text and therefore wouldn’t really attract anyone. On the other hand, if you have TOO much interactive script, that may detract the viewers. Server side scripting is just that-server side code, so browsers shouldn’t have any issues with that. The two most important topics when it comes to stability is interactive scripts and multimedia. The most common types of multimedia are movies, pictures, and music. There are also three ways to implement multimedia (JavaScript, Flash, and HTML5). Although Flash was very popular in the late 90′s, early 2000′s, Flash is now starting to get out of style mostly because it depends on a secondary program running on the client side-not very attractive. Whereas JavaScript is quite simple, HTML5 tends to be simpler and more stable (in most browsers). The most common types of multimedia files, at least when it comes to audio and video, are .mp4, .mp3, ogg. Chrome has absolutely no problem when it comes to any of these file types, therefore creating a very stable and versatile browser. Very good job Google.

Safari:

Even though Lion currently has issues with JavaScript, I still believe in it because it’s stable on other systems prior to Lion. I do also believe that the bug will be fixed very soon by Apple or some hacker ;-) .

Firefox:

I honestly don’t understand the big hype about Mozilla Firefox. The style is clearly taken from Safari and Chrome. There are issues with the JavaScript parser where it thinks that valid code is invalid. It can’t play standard multimedia. And it also depends on too many plugins. Clearly one of the most unstable browsers, but yet people seem to struggle getting away from it. Also, I know from personal experience that those technicians that promote Firefox are also those “IT Professionals” that clearly a)have no clue what they are talking about and b)only care about getting more money from their clients.

Internet Explorer:

Statistically, IE is the most popular browser out there, but why? Statistically, most of the computer users out there have Windows (this clearly doesn’t mean that Microsoft is better than Apple so don’t try to use that argument). Many users also are too lazy to install a different browser than the default (Apple-Safari and Microsoft-IE). In the past, Internet Explorer would constantly crash and wouldn’t be able to handle a lot of the web standards. Recently, they have changed many of the bugs and is now said to be “more stable”. The most stable version that is also versatile is IE 9, which only comes to Vista and above. What about those who are still on Windows XP? I understand that Microsoft will no longer support XP, but you can’t force someone to upgrade their system when it’s still stable and functional, especially when they have to pay at least $200 for that upgrade.

In conclusion, I honestly believe that going to some outside browser would give users a much better experience on the web. I’m in no way shape or form saying that there should be 1 and only 1 browsers, but what I am saying is that certain ones tend not to work as well as they should. I am also advising to stay away from Mozilla Firefox until it is able to handle web standards. Nothing is worse than having a browser that can’t handle standards that the rest of the world accept. If someone would ask me which browser they should use, I wouldn’t hesitate to tell them to choose either Chrome or Safari

Thank you for reading!

 
-

Why Geek Squad is bad

Posted by Abel Gancsos on Nov 6, 2011 in Blog

In this post, I want to go over why people still choose Geek Squad over small local businesses. See, I’m a big supporter of small local businesses (even if it’s not me), because small local businesses still focus on great quality service. Too often businesses see the money come in and let it get to their heads, so they stop caring about the quality.

The following is from an ex-employee of Geek Squad in 2008 (around the time when they stopped hiring knowledgable technicians and replaced them with stupid salesmen).

“1. Most of the employees that are hired do not know that much about computer repair. Geeks Squad’s philosophy on fixing a computer was to tell the customer they needed to wipe it clean and reinstall windows. Countless times this was how computers were fixed behind the bench at the place where I worked. I even had one co-worker asked me how to unplug the hard drive.

2. Geek Squad overcharges for jobs that anyone with a little bit of technical know-how could accomplish. Would you have someone come over to boil some water for you? Or have them vacuum your carpet and then pay them? Well it may seem silly but that’s the equivalent of having Geek Squad install software for you. And they charge a fee from $20 – $50 depending on the software ( I haven’t worked there in a few years so the price may be different).

3. The “technicians” are more like salesman. Everyone behind the counter is told to push certain products with every service they ring up. I will agree with them that you need anti virus and anti spyware, but you don’t need to pay for the software they sell because you can get really good software for free online.

4. If one of the Geek Squad technicians messes up, they will just wipe your computer and blame it on a virus. There were times that some of the workers ran software that wasn’t part of the approved list of software and ruined people’s computers. Then when the customer asked what the status of the repair was, the worker would tell them they had a virus and needed their PC to be wiped clean and have the OS reinstalled.

5. All your personal pictures were taken off the PC for personal use. A lot of Geek Squad work stations are behind the counter where customers can’t watch the technicians work on the computers. Most of the time the first thing the technician would do is search for personal pictures of the person who owned the computer. If any pictures were found they would be downloaded onto a thumb drive and taken home at the end of the day.

Here are 2 links that contain confessions from a Geek Squad and Firedog technician. Confessions of a Firedog employee, Geek Squad confession.
I hope this has shown you that Geek Squad should be your last resort for PC repair. Next time you need some computer work done, ask around your workplace to see if someone can help you out. Even your company’s IT department would be a better place to ask questions.”

So, why do people really choose Geek Squad? They steal all your personal data and mischarge you. Not to mention they probably use the chainsaw method by reimage your computer because they can’t seem to run an antivirus program. Now, I admit, some jobs do require this, but it seems like that’s all they do is reimage a machine. Just to warn you, reimage is good, but if you do it too much, you end up wearing out the hard drive quicker, depending on the quality of that hard drive, because you repeatedly reformat it. Not good.

Is it because they are known? Could be, it certainly isn’t that they know the technology well enough. People believe that because they are a big computer company, they might know some stuff, but what people fail to realize is that they are apart of a large store, which strives on consumers buying their products. This has the double factor, where technicians are forced to sell their products and services and salesmen on the floor are forced to sell crappy devices, where they might not work from the start. This, to me at least, brings up lots of questions on the truthfulness of Best Buy. Can you really trust them after knowing certain things? I know this sounds bias, since I’m a small company bashing a larger company, but I’m not even the one that said those things. The stuff given above was given by an ex-employee who use to love his job. I’m simply raising questions to the consumer.

Many other large companies are like this. HA! I was actually just talking to a friend about this actually, for how when a company first starts out, they spend lots of time making a great quality system, but then when they get big and see the money coming in, they start developing horrible and unstable systems. Just look and Microsoft. How many times throughout the day does your computer need updates? How many times in the week do you end up rebooting? And also, just from my perspective, it’s easier for a small company to make money off of Microsoft-based machines because they always crash along with the politics of it. Where Apple has a standard high price, where resellers can’t really up, it is very easy for a small company to resell a cheap computer for the same price as if it was new (or more). In other words, I believe that Microsoft (along with large computer computers), end up developing unstable and cheap quality systems as a money trap. This is why I strongly believe in small local businesses because they still have their integrity.

On a side note, I need to get something off my chest. Yes, I strongly despise Bill Gates. I actually don’t understand why so many think of him as a genius. The guy stole DOS disks (which was a horrible operating system to start with) from his job (didn’t get caught because his mom was someone high above in that company) and then compiled it all together into a DOS-based operating system that didn’t need disks for EVERY process. Along with that, he in a way teamed up with companies like Dell and HP to sell their $200 operating system for cheap prices, but in fact even those small companies need to make money so they end up selling the computers for much more than they should. Then with all the crashes and fixes Windows needs, it ends up costing much more than other systems like Linux and Apple. Bill Gates isn’t the smartest man alive, but what I will give him credit for is being the greatest illusionist to the ignorant world. It’s sad that people still strongly believe in his work, but they do only because they can’t afford nor have ever used a different operating system. Along with never using a different operating system (system in general), they fear the unknown, so they aren’t even willing to try something new.

Thank you for reading.

Copyright © 2012 Abe's the Word All rights reserved. Theme by Laptop Geek.