Victor Savkin’s Blog

http://vsavkin.tumblr.com/post/3191162772/groovy-coding-style

Posted in Uncategorized | Leave a comment

WordPress for Android

WordPress 1.3.8 for android upgrade is now available.

Posted in Android Applications | Leave a comment

My Home Page AP List

My phone is the first Moto Droid.

 

•    music player widget

•    google search bar

•    messaging

•    gallery

•    vlingo tap and speak widget

•    foursquare

•    google listen

•    shazam

•    weatherbug

This music player widget comes with the android operating system. It works and it’s simple. I have tried several other music players but the others seem to just over complicate things. The layout of this widget is a the name of the song / artist to the right, then a pause/play with a next button. Pretty simple, I like simple so it works for me.

The google search bar is a must for your home screen. This is one thing that i rub in my friends face about his iPhone. “Oh wait, you have to open safari to get to google to search? I dont” I think everyone uses google search, I use it multiple times a day. It also has a button next to the bar that lets you talk to search. Pretty sweet if you are to busy to type out what you need and much safer when you are on the road.**only search i would recommend**

The messaging really isn’t a must. I’m always texting someone so It was extremely convienent for me to add that to the list. I really havent tried other messaging aps. But I really wouldnt recommend downloading them. Messaging is really simple and the developer of this phone made the messaging program specifc for this phone. So use it!!

Gallery is pretty cool, I am always taking photos with my phone. So I’m always showing people my pictures. If you have a lot of photos it can take a while to load them. But it list your galleries if a typical grid layout. Once you touch an album boom there’s pictures in the same layout. It works and its way simple. Love it. I have yet to use any other gallery aps on the market because just like the messaging, it came with the phone and it works great.

vlingo is one sweet ap, google has speak to text, but vlingo knocks them out of the water. I love my button that I hit and I can give it commands up to search for a business, text someone, or call someone. You can literally hit the button, say ” Text Mom, I am on my way home!” There you have it typed out and ready to send. I love this ap for road trips because well… texting and driving dont mix and this solves that problem very easily!

Foursquare is a cool ap as well.  It’s an ap that lets you check in to places around you. Once you check into that place enough you can become the mayor. It seems kind of cheezy but its fun to compete with your friends! I think at first this ap was just a way to help you keep track of friends and what they are doing. But you are able to leave tips and any place that you have been to. So lets say you get terrible service at billy bobs down the road. Get on foursquare and let people know! I also have noticed that business have been offering specials like free drinks or discounts if you are the mayor of their business! To cool for school if you ask me, I love anything free.

Google listen is what I use to listen to my podcast! Its really simple to use and it will automatically download podcast that you have not listened to! I love listening to maximumm pc and mac life. There are tons of podcast to suscribe to and most of it is free.

Shazam is one of the coolest aps out right now, especially since its free! Let’s say you hear a song on the radio, and now radio stations really dont say the name of the song once the song is done playing! So now with this ap you can let you phone listen to the song and it will tell you what song it is! You can even click on amazons link and buy the cd straight from them. Now sometimes in restraunts it will pick the song up just fine, but sometimes it wont. But this ap is free and I have found a lot of songs with it that I have been wondering who sang them!

weatherbug is alright, it def. isn’t amazing. It takes forever for this ap to receive updates on what a storm is doing, or it will be raining and finally the ap will show rain. However, I think its much better than the weather channels ap. Their ap took two days for it finally recongize that I lived in Belton. How dumb is that, and you have to be wondering why did you wait two days for it to load. Well I really wanted to see how long it would take so I could make fun of it! But weather bug has its bugs but Im sure they will be fixed!

Posted in Android Tips and Tricks | 3 Comments

My Android Home Page Apps

Phone – HTC Incredible

 

  • Internet
  • Google Listen
  • Profile (sound)
  • Music Widget
  • Audio.com Widget
  • Toodle Droid
  • Google Messages
  • Gmail
  • CadreBible NIV

     

Posted in Tips Tricks and Code Snippets | Leave a comment

Learning the Language

Most introductory educational programming courses and textbooks focus on teaching the features of a specific language and how to use them. The volume of features in many languages requires such focus and acquiring such knowledge plays a large part of program development. Both individual laboratory-based programming tasks and collaborative work should be used in introductory courses. Problem solving should be at the heart of teaching programming. It is suggested that language features only be introduced as they become applicable to specific problems. However, problem solving in and of itself, it is not enough.

One of the biggest problems in some introductory programming courses in that the content is largely language specific. Students are presented with textbook problems and solutions and to a small extent are charged with the task of translating solutions into source code. This teaching technique bypasses the important process of comprehending, analyzing, strategizing solutions for real world problems.

M.C. Linn describes a chain of cognitive accomplishments by students in learning programming. The first link consists of acquiring language skills. Problem solving should be the vehicle used in learning language features. Learning features and learning problem solving should not be thought of as two distinct tasks. In earlier days, BASIC programming language was used in introductory courses, but since has changed to more challenging languages. This may be in part that educators recognized that syntax and semantic skills alone are not adequate in preparing for real world programming and that these skills do not translate well across languages for novice programmers.

A second link consists of design skills. The designing aspect of programming involves using computer language features to solve problems. There are two skill sets students use in program design: templates and procedural. Templates consist of code patterns that of a single language feature that can be drawn upon for reuse by students. “If programmers develop a repertoire of effective templates, then they are likely to program more effectively and to identify and reuse algorithms for problem solutions rather than reinvent them. Students can often employ templates they could not invent themselves. By using these templates they can ‘stand on the shoulders of giants’ and solve more interesting and complex problems than would be possible if they had to invent all their own templates. Even if they do not fully understand a template at first, the experience of using a well designed one will help students comprehend the technique in the template and the role of templates in general” (Linn, 1985). As students apply templates from existing repertoire, they advance beyond simply translating pseudo code to syntax, and become better equipped to solve programming problems. Procedural skills consist of planning, testing, and reformulation based on test results. This is accomplished by combining templates and language features.

Posted in Software Dev - General | 7 Comments

Left verses Right

One might question the effectiveness of one process over another in IT organizations. It cannot be argued the fact that IT process changes have made this industry the better. Integrated applications have become more and more complex as allowed by hardware advancements. Applications of today mandate varying models for process controls. There is one resource however that has remained constant – people. IT management must not lose sight that good personnel can make up for process shortcomings – good process cannot make up for personnel shortcomings. The most direct and lasting benefit IT management can give to an organization is to hire the most qualified people and find the best means of moving novice programmers to expert. Educational development plays an important first step in this process.

Software engineering is described as the process of applying tools, methods, and disciplines in an automated means to a real-world problem. Software engineering is about solving problems. Initially students acquire skills through education in programming languages and algorithmic development. Software engineering is applying those skills towards problems; it is not a predetermined set of practices. In his article “No Silver Bullet”, F P Brooks describe the difficulties in software engineering improvements dividing them into essence and accidents. “Good designers” is listed as one of the four solutions in overcoming difficulties. Good designs come from good designers. Good process cannot make up for personnel shortcomings – good personnel can make up for process shortcomings.

What causes such varying degrees of expertise among software developers? Education plays a vital role in the success of an individual in this industry. Environment and culture also can have an impact on how developers progress in an organization (Jin 2000). But what part do cognitive abilities play in the progression?

There have been numerous empirical studies that suggest that left hemisphere dominated people tend to pick up software development easier than people who are right hemisphere dominated. The left side of the brain deals more with rational and abstract thinking; while the right side controls creative, concrete, and deductive reasoning. However, both LH and RH play an important role in software development. The left side of the brain handles logical; the right side created. Different people process information in different ways based on the area of brain and their cognitive style. Procedural programming tends to favor left hemisphere dominate while object oriented is hemispheric friendly. Consensus is that regardless of one’s cognitive tendencies, anyone can be taught through repetition. After 20+ years of consulting with varying shops, I feel this community is best served when the differences of LH/RH dominant tendencies are recognized and both are strengthened through mentoring.

Posted in Software Dev - General | 10 Comments

Conditionally display fields in a gridview (ASP.Net)

The following code will display one of two fields based on the value of the first field. Place the following vb code within the RowDataBound event.

If e.Row.Cells(0).Text > "A" Then
e.Row.Cells(7).Visible = True
e.Row.Cells(8).Visible = False
Else
e.Row.Cells(7).Visible = False
e.Row.Cells(8).Visible = True
End If

e.Row.Cells(0).Visible = False

Posted in ASP.Net | Leave a comment

Learning syntax and programming languages

Repetition is listed as an important method of learning software development; however, straight-line coding would not change significantly 2 years from now for most coders. There are two distinguishes types of knowledge – syntactic and semantic. While syntactic knowledge varies by language and can be acquired via over-learning, semantic knowledge is independent and can be organized into mental models. Over-learning involves acquiring skills through repetition to the point of automatic execution such as learning how to type. However, semantic knowledge cannot be improved simply by repeating the process over and over. Education and job evaluations sometimes view syntax as a gauge for software development aptitude. Syntax is normally covered in the initial stages of software development classes. This is unfortunate. It is during this time that some develop bad habits including: rush to code, code and fix, straight-line coding.

One can reason that syntax is the building blocks for any educational software development class, for without syntax there would be no executable code. However, there must be a foundation for those building blocks, and that is structured programming basics. Those who have programmed for 5-10 years do not give a thought to syntax. The code snippets shown in Figure 2 will be viewed by some as their second language.

for (int ii= 0; ii < size; ii++)

        for (int jj=0; jj< size; jj++)

 

c move p1fdtea p1fdte 8 0

c move p1tdtea p1tdte 8 0

c exsr clrhst

c exsr prctrn

 

 

CRTPF FILE(QTEMP/&FILE) RCDLEN(512)

MONMSG MSGID(CPF7302) EXEC(CLRPFM +

FILE(QTEMP/&FILE))

CALL PGM(*LIBL/DRW001CL)

CHGVAR VAR(&APSENV) VALUE(&ENV *TCAT ‘FLIB’)

CPYTOIMPF FROMFILE(QTEMP/&FILE) +

TOFILE(QTEMP/&XFIL)

 

 

 

UNSTRING ADD3 DELIMITED BY ALL SPACES INTO

    CITY, STATE, ZIP.

MOVE 5 TO A.

SUBTRACT B D FROM A GIVING C.

 

 

 

<!–#include file=”styles.css” –>

<p class=”tabletext”>

<a href=”Env_add001.aspx”>Add New </a></p>

<table cellpadding=”4″ cellspacing=”0″ width=”100%”>

 

 

Figure 2: Programming Code

When changing languages, frustrations are prevalent for a time, but they quickly dissipate as developers settle into the new language. Syntax must be taught, but it should not be the central curriculum, and it should not be the primary gauge of software aptitude.

Posted in Software Dev - General | Tagged | 13 Comments

Software Development – Science or Art?

Comparisons have been made between teaching software development to new students and learning a new foreign language. Acquiring software development skills in many cases has as many similarities to the school of arts as to the sciences. Composing a new application can be compared to composing a book or concerto. Suppose that arts curriculum took the same approach as do computer sciences?

Consider for example a four-year undergraduate program for music composition. If syntax were considered the heart of curriculum, the focus would consist of teaching notes (the most rudimentary element of music), scales, arpeggios, timing, phrasing, harmony, and dynamics. Studies would primarily involve work done only by the student. Exposure to musical pieces of well known composers would be limited to small music snippets to demonstrate techniques. Suppose after four years of studying techniques and rules students then were asked to compose a piano concerto in E minor. It would be highly unlikely that any of the pieces would be robust and rich. These compositions would be limited by the degree of exposure the students had to outside compositions. The more exposure students have to outside compositions, the richer theirs will be. The same can be applied to software developers. Expectations are unrealistic for students to take code snippets and minimal application exposures and be able to build robust applications.

“Reading a well-written program can teach you techniques that help you write good programs. In fact, it’s difficult to imagine how anyone could become a good programmer without reading good programs”. Software engineering principles. Dale, N. (2003).

 

Posted in Software Dev - General | 1 Comment

How to process files in weighted order with RPGLE/SQL

Here is an easy way to read from a file using RPGLE/SQL and weight the sequence (sort them) based on data within a specific field.

CSR EXSR01 BEGSR
C/EXEC SQL
C+ DECLARE C1 CURSOR FOR
C+ SELECT DBFIELD1, DBFIELD2, DBFIELD3
C+ FROM DBFILE
C+ WHERE (DBFIELD1 = :RPGFIELD)
C+ ORDER BY DBFIELD1,
C+ CASE
C+ WHEN DBFILE.DBFIELD3 = ‘DEF’ THEN SMALLINT(10)
C+ WHEN DBFILE.DBFIELD3 = ‘ABC’ THEN SMALLINT(20)
C+ WHEN DBFILE.DBFIELD3 = ‘A01’ THEN SMALLINT(30)
C+ WHEN DBFILE.DBFIELD3 = ‘153’ THEN SMALLINT(40)
C+ ELSE SMALLINT(99)
C+ END DESC
C/END-EXEC
C/EXEC SQL
C+ OPEN C1
C/END-EXEC
C DOU SQLCODE <> *ZEROS
C/EXEC SQL
C+ FETCH C1 INTO :RPGFLDSTRUCT
C/END-EXEC
C IF SQLCODE = 100
/free
exec sql
CLOSE C1 ;
*INLR = *ON ;
/end-free
C LEAVESR . . . *exit loop
. . . DO SOMETHING
C ENDDO
C ENDSR

Posted in ISeries | Tagged | Leave a comment