BenEskew.com Just another web developer's personal weblog.

Register.com Hosting 468x60
23Sep/090

HTML 5…The End All Be All…Almost

The evolution of the HyperText Markup Language has definitely been a long one and now is finally coming to a crossroads where it will be putting out of business many other technologies developed in the past to handle HTML's inadequacies. The new version of HTML is almost ready for professional trials and to say the least I'm pretty excited about it...and I'm sure many others are as well.

To start, the HTML5 syntax is no longer based on SGML (the kind-of parent of the older HTML versions), but will be backwards compatible of course. Second, an obvious change is the complete drop of purely visual elements, like the "font" and "center" elements, along with new element additions to handle basic layout presentation, like "nav" and "footer". Also, the addition of elements like "audio" and "video" will make it easier than ever to embed those types of objects into your HTML pages.

One major improvement to the language is the addition of Scalable Vector Graphics. With SVG you can literally add graphical elements into a web page with ease using simple element tags with their various attributes and values. This alone is a HUGE improvement compared to what is needed in order to accomplish things like this at present using older versions of HTML and XHTML. (Presently you need to utilize and embed other technologies and/or code libraries like Flash, MS Silverlight, dojox.gfx, or Java to accomplish this.)

Another awesome addition is the use of APIs. The APIs will include everything from utilizing offline storage databases to embedded document editing.

One other major improvement in my eyes which I'd like to mention is the error handling abilities within the new specification. The HTML5 specification gives detailed rules for lexing and parsing, with the intent that different compliant browsers will produce the same result in the case of incorrect syntax. What does that mean? No more jacked up looking web pages because of non-compliant code embedded within them. You will be able to safely update your pages without the entire world laughing at your non-compliant code jacking up your pages.

Enough rambling from me, here's an awesome HTML5 introduction video produced by Brad Neuberg from Google Developer Programs:

 
Further reading:

HTML5 Specification Overview (DEV)
HTML5 Specification Working Draft
HTML5 on Wiki

22Sep/090

Who Am I and What Do I Do?

I've been asked time and time again by acquaintances and some friends even "what do you do for a living? Every time I see you, you're wearing casual clothing (shorts & sandals) even when you say you just got done working." Well, as I've told many the same thing I just don't feel like explaining this all of the time so I'll just explain that now for at least all of you who browse by this site.

My name is Ben Eskew, obviously, and I've been a professional web developer/programmer for the past five years. I've been developing web projects for entrepreneurs and corporations for years and have finally settled into developing projects for myself recently. Hmm, that still may have not cleared anything up for most of you so I have a bit of explaining and definitions to do. Here we go.

No, I am not a web designer. Web designers paint the house, I make the house.

No, I am not some d-bag that goes around posting unsolicited ads on message boards and social networks (I actually dislike most social network platforms.) And, no, I will not stoop to those levels just to make a few bucks...my honor is worth way more than anything you could tempt me with.

I'm a programmer through and through. I began my love affair with programming and web development in early 1995 when I discovered how easy it is to create programs to automate tasks for me on my new PC at the time. I first began programming with Visual Basic, at the time I believe it was version 4, and absolutely fell in love with how easy it was to play with...compared to C and Java and the other lower-level languages around. I eventually came to a point where I wanted to create a web presence and began teaching myself scripting and the HTML language.

HTML was like kids play to me compared to creating apps with VB so I obviously learned very quickly and began creating basic pages and whatever using the free hosting sites at the time like Geocities and 50megs (embarrassing to admit but it's true). I had life problems and such between those times and the turn of the decade so there wasn't much output coming from me during those times except I did teach myself JavaScript. Sometime between 2000 and 2001 I stumbled on to the newly created PHP scripting language (some people classify PHP as a programming language, but this is false during that time...although nowadays it technically is both as it incorporates the usage of object oriented programming techniques) and began teaching myself everything I possibly could about it...from the history of PHP/FI to its current state as the newly created PHP3. Thus, my love affair with PHP and Linux was born.

I eventually found employment with several entrepreneurs and hit a good stride when I created my first content management system which I could use as a website skeleton for my various web projects on Linux OS machines. That content management system is still alive today (although is extremely different, and actually completely revamped from its original state now) and I've created hundreds of various projects using it. During this time and up until a few years ago I was involved with these entrepreneurs in creating their projects, which were mostly within the adult industry by the way, and gained much needed marketing knowledge.

Recently, I've formed a business entity, Killer Media L.L.C., and am finally beginning what I set out to do years ago...delving into the travel industry by way of information gathering/display and social platform engineering. My first major contribution to Killer Media L.L.C. is QueryVegas.com, which I began work on in late 2006 but have only recently been able to put major work time into it. It is currently in constant development and is technically just a prototype...but is in beta testing mode as it is very functional.

In the near future I plan to open an office either in Riverside, CA or Huntington Beach, CA for corporate use.

For those who have rejected my past employment attempts...ouch, you surely turned away the wrong guy, and now that should be completely obvious.

Sorry for the rambling! :)

Filed under: General, Rants No Comments
13Sep/090

Use Ext JS Without Paying for the Bandwidth!

Ever since Ext JS has become so popular amongst other web developers there has been a huge influx of interested developers. One of these such interests has evolved into a huge help to the Ext JS community as a whole. On November 18, 2008 Abraham Elias of Ext success posted an article titled Ext CDN - Custom Builds, Compression, and Fast Performance. Ever since it's been easier than ever to include the amazing Ext JS libraries to your projects and websites.

The company CacheFly has graciously stepped forward to contribute their valuable resources to the Ext JS project. Thank you CacheFly.

12Sep/090

LCROSS: First Steps to Colonizing Space

Ever since man has discovered its place within the Universe we've been energized by the thoughts of colonizing other bodies other than the Earth. When we landed on the Moon we were at the pinnacle of our goal which was to place a man on the Moon. After which we followed a non-existent approach to space exploration by simply only having interests in launching satellites for quite some time.

It's about time we start seriously thinking about colonizing space, yes? Enter, LCROSS: Lunar CRater Observation and Sensing Satellite.


(Above) Artists rendering of LCROSS moments before lunar impact.

 
In April 2006, NASA selected the LCROSS proposal for a low-cost, fast-track companion mission to the Lunar Reconnaissance Orbiter (LRO). The main LCROSS mission objective is to confirm the presence or absence of water ice in a permanently shadowed crater near the lunar south pole.

LCROSS launched with the Lunar Reconnaissance Orbiter aboard an Atlas V rocket from Cape Canaveral, Fla., on June 18, 2009. After launch, the LCROSS shepherding spacecraft and the Atlas V's Centaur upper stage rocket executed a fly-by of the moon on June 23 and entered an elongated Earth orbit to position LCROSS on a correct trajectory to impact the lunar south pole on October 9, 2009. On final approach, the shepherding spacecraft and Centaur will separate. Both spacecrafts will then impact and do their jobs.

Finding water ice on the moon will be crucial for the beginnings of colonizing...don't think I really needed to explain that but yea.

I'll be posting news data about this mission and others so stay tuned.

For more information about the Lunar CRater Observation and Sensing Satellite click here.

12Sep/090

Hubble Space Telescope Better Than Ever!

Since its placement in near-Earth orbit on the 24th of April, 1990 the Hubble Space Telescope has been taking amazing images of interstellar space like none have before. Recently the telescope has undergone an upgrade, or more known throughout the NASA community as a "surgery" of sorts and is back in action.


(Above) Gravitational Lensing in Galaxy Cluster Abell 370. Credit: NASA, ESA, the Hubble SM4 ERO Team, and ST-ECF

 
Pictured above is the gravitational lensing effect observed of Galaxy Cluster Abell 370, probably one of the most interesting effects observed in the observable Universe so far.

"Galaxy clusters are the most massive structures of the universe, located at the crossing of the filaments of the cosmic web of dark matter. The most massive clusters can contain up to 1,000 galaxies and intergalactic hot gas, all held together primarily by the gravity of dark matter."

These observations were made with Hubble's Advanced Camera for Surveys (ACS) in its Wide Field mode on July 16, 2009. The composite image was made using filters that isolate light from green, red, and infrared wavelengths.

Be expecting the Hubble Space Telescope to ensure many more astronomic breakthroughs in the near future. Oh, and by all means don't forget to browse through The Hubble Space Telescope's NASA Homepage.

12Sep/090

Graphics Chips Reaching ‘human-eye’ Quality

Brooke Crothers of CNET wrote a very enlightening article recently about Eyefinity, which is a multi-display technology that will be part of future Radeon graphics chips that have been designed to use up to six (all connected) high-definition displays that can achieve up to 12 times 1080p high-definition resolution, which approaches eye-definition optical clarity.


(Above) Tom Clancy's Hawks at 5760x2400 resolution spanning six monitors employing the Display Port 1.1 interface. Credit: AMD

 
This is absolutely HUGE news to the gaming community first and foremost of course. And here I thought I was cool with my triple monitor setup. :(

Be sure to check out that article linked above if you're interested.

Filed under: Tech News No Comments
11Sep/090

WE WILL NEVER FORGET!

We Will Never Forget this tragic day. All you did was piss us off and make us stronger!

11Sep/090

Visual Basic Code Snippets #11

In this next update I'll re-post my Visual Basic code snippets (which are older than five years by the way) that pertain to Window Actions and File Functions.

Completely Destroy File and Its Information

Compatibility: Win. 98-XP

Add the following code into a module within your project...

Public Sub DestroyFile(sFileName As String)
Dim Block1 As String, Block2 As String, Blocks As Long
Dim hFileHandle As Integer, iLoop As Long, offset As Long
'Create two buffers with a specified 'wipe-out' characters
Const BLOCKSIZE = 4096
Block1 = String(BLOCKSIZE, "X")
Block2 = String(BLOCKSIZE, " ")
'Overwrite the file contents with the wipe-out characters
hFileHandle = FreeFile
Open sFileName For Binary As hFileHandle
Blocks = (LOF(hFileHandle) \ BLOCKSIZE) + 1
For iLoop = 1 To Blocks
offset = Seek(hFileHandle)
Put hFileHandle, , Block1
Put hFileHandle, offset, Block2
Next iLoop
Close hFileHandle
'Now you can delete the file, which contains no sensitive data
Kill sFileName
End Sub

Add the following code to wherever you want the code to execute...

Call DestroyFile("C:\filetodestroy.jpg") 'modify file path of course

Cut, Copy, Paste and Undo

Compatibility: Win. 98-XP

Add the following code into a module within your project...

Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public Const WM_UNDO = &H304

Cut:
Add the following code where you want the code to execute...

Clipboard.SetText Text1.SelText
Text1.SelText = ""

Copy:
Add the following code where you want the code to execute...

Clipboard.SetText Text1.SelText

Paste:
Add the following code where you want the code to execute...

Text1.SelText = Clipboard.GetText(1)

Undo:
Add the following code where you want the code to execute...

Call SendMessage(Text1.hwnd, WM_UNDO, 0&, 0&)

11Sep/090

Visual Basic Code Snippets #10

In this next update I'll re-post my Visual Basic code snippets (which are older than five years by the way) that pertain to Window Actions and File Functions.

Minimize All Active Windows

Compatibility: Win. 98-XP

Add the following code into a module within your project...

Public Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Public Const VK_LWIN = &H5B
Public Const KEYEVENTF_KEYUP = &H2

Add the following code into a command button or wherever you want the code to execute...

Call keybd_event(VK_LWIN, 0, 0, 0)
Call keybd_event(&H4D, 0, 0, 0)
Call keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0)

Load a Text Box with Items from a Text File

Compatibility: Win. 98-XP

Add the following code into a module within your project...

Public Sub LoadText(Lst As TextBox, file As String)
'Call LoadText (Text1,"C:\Windows\System\Saved.txt")
On Error GoTo error
Dim mystr As String
Open file For Input As #1
Do While Not EOF(1)
Line Input #1, a$
texto$ = texto$ + a$ + Chr$(13) + Chr$(10)
Loop
Lst = texto$
Close #1
Exit Sub
error:
X = MsgBox("File Not Found", vbOKOnly, "Error")
End Sub

Add a TextBox named Text1 and make sure there is a text file named test.txt with "test" inside it inside the directory where you are working on your project and add the following code wherever you want the code to execute...

Call LoadText(Text1, "test.txt")

Save Data to a Text File

Compatibility: Win. 98-XP

Add the following code into a module within your project...

Public Sub SaveText(Lst As TextBox, file As String)
'Call SaveText (Text1,"C:\Windows\System\Saved.txt")
On Error GoTo error
Dim mystr As String
Open file For Output As #1
Print #1, Lst
Close 1
Exit Sub
error:
X = MsgBox("There has been an error!", vbOKOnly, "Error")
End Sub

Add a TextBox named Text1 and add the following code wherever you want the code to execute...

Call SaveText(Text1, "C:\Program Files\Program Name\test.txt")

Visual Basic Code Snippets #11

11Sep/090

Visual Basic Code Snippets #9

In this next update I'll continue to re-post my Visual Basic code snippets (which are older than five years by the way) that pertain to System Functions.

Toggle NumLock Key On/Off

Compatibility: Win. 98-XP

Add the following code into a module within your project...

Option Explicit

Public Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (lpVersionInformation As OSVERSIONINFO) As Long
Public Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Public Declare Function GetKeyboardState Lib "user32" (pbKeyState As Byte) As Long
Public Declare Function SetKeyboardState Lib "user32" (lppbKeyState As Byte) As Long

Public Const VER_PLATFORM_WIN32_NT = 2
Public Const VER_PLATFORM_WIN32_WINDOWS = 1
Public Const VK_NUMLOCK = &H90
Public Const KEYEVENTF_EXTENDEDKEY = &H1
Public Const KEYEVENTF_KEYUP = &H2

Public Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128
End Type

Public Sub ToggleNumLock(TurnOn As Boolean)
'To turn numlock on, set turnon to true
'To turn numlock off, set turnon to false
Dim bytKeys(255) As Byte
Dim bnumLockOn As Boolean
'Get status of the 256 virtual keys
GetKeyboardState bytKeys(0)
bnumLockOn = bytKeys(VK_NUMLOCK)
Dim typOS As OSVERSIONINFO
If bnumLockOn <> TurnOn Then
If typOS.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS Then
bytKeys(VK_NUMLOCK) = 1
SetKeyboardState bytKeys(0)
Else
'Simulate Key Press
keybd_event VK_NUMLOCK, &H45, KEYEVENTF_EXTENDEDKEY Or 0, 0
'Simulate Key Release
keybd_event VK_NUMLOCK, &H45, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0
End If
End If
End Sub

Add the following code where you want the code to execute...

'To turn numlock on...
Call ToggleNumLock(True)

'To turn numlock off...
Call ToggleNumLock(False)

BEEP!

Compatibility: Win. 98-XP

Add the following code into a module within your project...

Public Declare Function Beep Lib "kernel32" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long

Add the following code where you want the code to execute...

Dim X%
X% = Beep(1500, 300)

Disable/Enable Task Manager

Compatibility: Win. 98-XP

Add the following code into a module within your project...

Public Declare Function SystemParametersInfo Lib "User32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As String, ByVal fuWinIni As Long) As Long

Add the following code where you want the code to execute...

'this will disable ctrl+alt+del
Call SystemParametersInfo(97, True, 0&, 0)

'this will enable ctrl+alt+del
Call SystemParametersInfo(97, False, 0&, 0)

Get the Windows User Name

Compatibility: Win. 98-XP

Add the following code into a module within your project...

Public Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long

Add the following code where you want the code to execute...

Dim X As String
X = String(50, Chr(0))
Call GetComputerName(X$, 50)
MsgBox "Your computer is named: " & X, 32, "Name"

Visual Basic Code Snippets #10