Saturday, December 31, 2011

2012 MW

A geek is that someguy or somegirl who enjoys sitting in front of computer all day/eve to find out about what’s happening in Information Technology world, to solve computation problems or to build apps or websites for fun or for their clients. Everyone else, include your in-laws or your neighbor who sit in front of computer all day/night and like/comment or re-tweet were never geeks or will never be geeks. To all those geeks and non geeks out there – Happy New Year 2012.

Everyone and her dog is in internet these days. Subtracts half of them - give them a t-shirt printed with Facebook or Twitter logo, they would happily wear it without a second thought. My mom talks about seeing her (this is how they arrange marriage these days) in Facebook. My neighbor knows a to x about Steve Jobs. Our friends have a new excuse line for we weren’t invited to their birthday party – “i have posted it on faceook” ? or “i have tweeted that buddy, didn’t you see it ?” And your girlfriend finds time to update facebook but doesn’t find time to respond to your text or call turned missed call.

Information Technology is most neglected sector in our country by the Government. Yet, this is one of the most developed sector. Carefully drawing a growth curve would reveal the fact that – this sector is self developing, is consumer supported and is most accepted lately in our society. What about Government ? They recently shut down High Level Commission for Information Technology (HLCIT) with non-public reasons which will be buried under the piles of Nepali paper at Ministry of Science and Technology.  Did anyone care ? I would have, I didn’t, why would I ?

Go to New Road. Search for latest ICS Android set. Or search for iProducts they are waiting to be bought. Google’s cache server at NTC gave us seamless YouTube video streaming – this is just wow ! We heard somewhere that IBM is collaborating with Nepali government and investing in IT Park at Banepa. Thosebody who work there know about that – everyone else, include me are busy tweeting what’s happening in our head. This won’t happen but – our government should tweet or invest on new twitter for us.

I don’t want to learn about technology in year 2012. Why care about that when at the time of implementing lessons learned we are supposed to check load shedding pdf ? Somewhile ago i thought about buying a TV set to enjoy those Hindi serials my mom always talks about – but i won’t because of that power cut. I don’t want to buy a TV set to watch its LCD screen off all the time. Who can imagine a future in technology where there was and will be 16 hours electricity cut off per day ? I can’t. It is better given up then selling one vote in national election in a false hope that some guy who haven’t even passed SLC would bring in more electricity someday. Those are all false assumptions we are supposed to rely on. I won’t on 2012.

Out of randomness scattered around this post, what I am trying to do is find few things to do for celebrating the year 2012. I think all the rant is over now, let’s focus:

1) Give more time to family, friends and acquaintances than to solving problems in computer
2) Build apps or websites as self sustainable products and not as a service for them who don’t understand the value of hard work we put on the product development.
3) Never miss another 3D Animated movie at QFX.
4) Always find time to participate in our EOM (End of Month) gathering.
5) Know more about why there is IT crew in Government of Nepal.
6) Contribute to local communities of developers, actively participate/organize meetups. Start an Open Source project.
7) Find out the song name for the .ogg i have in my pc since last 3 years.
8) Never say sorry without knowing what went wrong in my part.
9) Marriage.. hmm not sure.. should validate with coin toss ;)
10) Join MBA.
11) Join cooking class.
12) Iterate on writings.

(p.s. these are not in ASC/ DESC. Forget the numbering.)

That 2012 MW is the New Year Resolution I thought for the Nepal Electricity Authority. I don’t think they will have electricity to check out this post during this whole year.

Thanks for reading this far.
Happy New Year.

Wednesday, November 16, 2011

Should I study Computer Engineering?

Should I study Computer Engineering in Nepal ?

Other landing questions could be:
Where can I study Computer Engineering in Nepal ?
What is course structure of Computer Engineering from TU ?
Why there are so many unrelated subject in TU Computer Engineering (BCT) curriculum ?
What jobs are available for Computer Engineers in Nepal ?
How to understand Programming in Engineering Course ?

If you landed at this post searching for question in title and are in confusion whether to join computer engineering course or not – I would happily say go join in. Get enrolled in some colleges from TU, KU, PU etc..
Or if, if you landed at this post by other means I would guess either you are already studying computer engineering, or you are working on fields other than computer related. I’m talking about different aspects of computer engineering education in Nepal that I got to experience during my college life. If this is not the subject of your interest – I won’t mind if you stopped reading this post from here. Or if you will, I hope you’d be able to give freshers few ideas about whether to pursue higher education in computer engineering or not.

The Seeds


For me, studying computer as an academic course and pursuing a carrier in field of computers was one of childhood dream. I got to touch a computer loaded with DOS which showed some FATAL ERROR ! at the first run. Professionally Windows’s 95 / 98 was out in the market and there was Win 3.1 being taught at schools, with some Logo in primary level and Qbasic programming in secondary level.

From my friends to my computer teacher in school all were quite confident that I will end up studying Computer Engineering in higher studies (Since this is the only/reputed option available in Nepal for higher studies in Computer science). Yes, I did it. It has been two years now I’m working in software/web application development after college.

I had found some interest for staying around computers since 6th grade. Friends and family would ask me to solve their pc related problems. I was fascinated by electronics circuits. With that FATAL ERROR ! box in hand to repair I started searching for Linux OS that fits in a floppy or I would build some GUI to manage my Low End Box in Qbasic. Those were just stuffs that kept me interested in computers.

Later on I was introduced to Google by my brothers. The motivation for me to study computer engineering was all of the resources available in the internet. It was back in 2000 when I typed “how to build softwares” in Google. From that day on, I was always reading online university courses from universities around the world, papers and blogs shared by others tech people, blogs by students like me. The thing that excited me was – the culture of technology users. They share so much of information that – you can get into computer field starting from any given day and land up in a nice paying job within 6 months of time, with some serious effort.

Bill Gates: Forget university, the web is the future for education. #

All of the these practically implemented resources shared in the internet sometimes will give a feel that University courses are impractical, and they teach us practically minimal things that will support us professionally. With this practical side of resources available online, once during my course – I had a feeling that “I could get a job without university course too ” and would be able to pursue a nice career of my interest - programming. Or build a company of my own solely dedicated to software development. But, the whole purpose of joining a college “was” different – it is best seen now after college than at the time of actually doing the metal works at Workshop lab or Drawing unwanted stuffs on Engineering Drawing classes. But, to be true my realization after computer engineering course was If i had only followed what they taught us in University – I don’t think I would have been able to work professionally from the next day I finished my college.
So here comes this post.

Few things, I did my college from Tribhuvan University and subject details below  are referenced from TU course but choice of university would matter less at the end, what matters is “how much you could grasp out of the course and how skillful you become after completing the course”.

University Vs. Professional Practice


TU or KU will not teach us that way that after four 365 days we will graduate and get a job as a software engineer or as sys admin in an Internet Service Provider. They teach us the fundamentals of Computer Science. If you want to get skills that sells or gives you job after graduation it is up-to you to prepare for them. Consider yourself lucky if your university/college cares about providing you trainings/internships to help you get jobs later. But, if you are smart enough, you could get hired even before graduation. This is one of the most awesome thing we get to see in computer engineering field. Skills are choices.

University education will prepare us for higher education with knowledge of computer science fundamentals. However, professionals would expect in us skills related to our field that sells, that could help build softwares, that could manage a network or which could administer a server system of a bank.

Also, a university education (especially in Computer Science) will introduce you to a lot of people and opportunities in your field, will expand your technical horizon, and will force you to learn things you wouldn't have otherwise learnt on your own. School will open doors for you, it's up to you to pick which one to walk through. #

University course will help understand most of the basic concepts to the point where you would understand how computers actually work at a fundamental level, and you’d know how to get through the "abstraction" layers that so many people seem to have issues with. If you understand how a transistor works, it'll give you a better understanding of why writing to a flash device is different from other memories. If you understand how flash devices work, then it'll give you a better understanding of why you need different file systems to support it. If you understand how the file systems work, it'll give you a better understanding of why, for instance, opening a file with a million small files might be slow in some systems... and so on and so forth. I think one of the biggest thing that I got out of the school was 4 years of just learning and thinking about the concepts are all inter-related, so that when something fails, you have the required tools and knowledge to actually dig into it and figure out what's underneath all that abstraction that everyone takes for granted. #

I know this is little bit long winded, but I'm of the opinion that the 4 years spent in college will not be a waste. If you find a right college, just the people you're going to meet and befriend I think is worth it all by itself. It's really going to be what you make out of it. And most of it, I loved my college life, I loved my friends, and I wouldn't trade it for anything in the world. # 

But, career learning is not an option in university, you learn it more from on-job training, reading blogs and connecting with industry professionals.
University teaching is based on measuring units, quantifying experiences and not giving people the room to grow as artists. In the market, you can't quantify everything, we are training too many scientist and not enough artists.

The important thing is to get out there and do stuff. Instead of waiting to be taught, go out and learn. – Paul Graham on “What You'll Wish You'd Known”

Point is : You’d have to learn what you want to learn by yourself. Engineering course is designed to help us understand fundamentals of that learning curve.
Don't pick a college based on name brand recognition, pick one with a solid course structure with rich technical resources. Join in. Hack the course in/out, get max from the four years of your life.

Course : Computer Engineering, TU


To see the brief description of what is being taught in the course refer to this post
http://tu-ioe-bct.blogspot.com/2008/11/bachelors-degree-in-computer.html of project blogging.
project-logo
1.0 Mathematics – I
2.0 Physics physics
3.0 Computer Programming – I (C)
4.0 Communication - I (English)
5.0 Engineering Drawing – I
6.0 Workshop Technology
7.0 Applied Mechanics
8.0 Thermodynamics, Heat and Mass Transfer
9.0 Mathematics – II
10.0 Chemistry chemistry
11.0 Electrical Engineering Materials
12.0 Electric Circuits – I
13.0 Engineering Drawing – II
14.0 Mathematics – III
15.0 Computer Progrmming – II (C++)
16.0 Electric Circuits – II
17.0 Semiconductor Devices
18.0 Logic Circuits
19.0 Basic Computer Concepts (BCC)
20.0 Applied Mathematics
21.0 Instrumentation
22.0 Electronic Circuit – I
23.0 Microprocessor
24.0 Electrical Machines
25.0 Electromagnetics (EM)
26.0 Numerical Methods(NM)
27.0 Communication - II (English)
28.0 Data Structure and Algorithm (DSA)
29.0 Theory of Computation (TOC)
30.0 Computer Architecture & Design (CAD)
31.0 Microprocessor Based Instrumentation (MBI)
32.0 Control System
33.0 Engineering Economics
34.0 Probability and Statistics
35.0 Computer Graphics (CG)
36.0 Communication System
37.0 Operating System (OS)
38.0 Database Management System (DBMS)
39.0 Minor Project project
40.0 Project Engineering
41.0 Organization & Management
42.0 Computer Network
43.0 Software Engineering
44.0 Artificial Intelligence (AI)
45.0 Elective
46.0 Engineering Professional Practice (EPP)
47.0 Technology Environment & Society (TES)
48.0 Digital Signal Processing (DSP)
49.0 Simulation and Modeling
50.0 Information System (IS)
51.0 Major Project
52.0 Elective – II
Course
The above list will eat up four most energetic and valuable years of your life. If you did it well – there are lot of possibilities.

Scenario : This needs to be changed 

  • Teacher
    • Theory focus
    • No senior lecturers available (almost all of them left country for higher education)
    • Weak at practical implementation of the course
    • Teach to earn mindset
    • Can teach anything.. any subject to any faculty (ridiculous)
    • Knows everything in theory
    • Lack of subject domain expertise
  • Student
    • Theory Focus
    • Lack of seriousness in course study
    • Lack of knowledge about scope of course
    • Lack of practical application of theory
    • Takes projects as burden
    • Exam centric study
    • No interest in self learning
    • Stressed of unnecessary Electrical/Electronics subjects
    • No idea of Collaborative Development
    • No Interest in professional latest happenings

This list reflects those who do a irresponsible teaching and the students who loose their interest in study in the middle of the course. Writing these as an outsider – there came these points needed to be managed during college life. These scenario needs to be changed. We need to inherit the sharing, caring and collaborating culture from the history of world’s technical developments.

After course : Career options


Most of the Computer Engineering graduate are working in one of the following positions in Kathmandu.
  • Programmer (Software Engineer)
    • Desktop Applications Developer
    • Web Applications Developer
    • Mobile Applications Developer
  • Network Admin
  • Sys Admin
  • DBA (Database Administrator)
  • Web/UI Designer
  • Q/A  (Quality Assurance)
  • 3D Animator / Modeler
  • System/Project Management
  • Information Architecture (System Designer)
We are being taught C/C++ for basic programming/ software development concepts but professionally “PHP, Javascript, JAVA, C#, Python” are of the popular programming languages used in Nepal. Ref: Popular Programming Languages in Nepal.

Computer Engineer
So any student who learns these industry standard software development platforms on her/his own effort will sure hold better chance of working as “Software Engineer.”  This applies to all other jobs mentioned above too. What this means to a engineering student is you should give some time to find out what’s your actual interest is in – and direct the knowledge you get out of course study to the practical implementation in that field with all your energy.  It is up to the students to chose a career of their interest, that they are passionate about.

Subjects : Relations


Let’s take a different look at the above subjects. Let’s group related subjects together. This grouping will give one a clear idea of how the subject being studied are related to each other.

Math

1.0 Mathematics – I
9.0 Mathematics – II
14.0 Mathematics – III
20.0 Applied Mathematics
34.0 Probability and Statistics
33.0 Engineering Economics

English

4.0 Communication - I (English)
27.0 Communication - II (English)

Drawing / Metal Works

5.0 Engineering Drawing – I
13.0 Engineering Drawing – II
6.0 Workshop Technology

Physics / Chemistry

2.0 Physics
8.0 Thermodynamics, Heat and Mass Transfer
10.0 Chemistry

Mechanical/Electrical/Electronics

7.0 Applied Mechanics
11.0 Electrical Engineering
12.0 Electric Circuits – I
16.0 Electric Circuits – II
21.0 Instrumentation
22.0 Electronic Circuit – I
24.0 Electrical Machines
25.0 Electromagnetic (EM)
32.0 Control System
36.0 Communication System
48.0 Digital Signal Processing (DSP)

(I still find these subjects useless for a computer engineering student. Bite me.)

Digital Electronics Basic
(Computer Hardware)

17.0 Semiconductor Devices
18.0 Logic Circuits
Basic of Digital Logic, and how electronic components like Diode, Transistors help one formulate devices with computing “logic”.

How Computers are made (Computer Hardware)

23.0 Microprocessor
30.0 Computer Architecture & Design (CAD)
31.0 Microprocessor Based Instrumentation (MBI)

How computer processes “instruction” (eg. calculations, input, output etc) is studied from ground up in these subjects. Concept of Embedded System designs (eg. Robots, Computer Controlled devices, Digital home appliances).

General Information about Computer & Computer Engineering as Profession

19.0 Basic Computer Concepts (BCC)
46.0 Engineering Professional Practice (EPP)
47.0 Technology Environment & Society (TES)

Every Computer Engineer needs to understand the basic building blocks of computing devices. How computer systems affect overall society in terms of advancements (TES). State of Computer engineering profession in Nepal is studied in EPP.

Project/Software System Design / Management

40.0 Project Engineering
41.0 Organization & Management
43.0 Software Engineering
50.0 Information System (IS)

These subjects are most important subjects from management point of view. Any engineer would some day get involved into project management,  software/system design/modeling and Information Architect career. Anyone who ends up working in any of the development, networking, DBA or SYS Admin field will benefit from having the idea of project, people and software system design/management.

Programming the Computer / Algorithms

3.0 Computer Progrmming – I (C) – Procedural Programming
15.0 Computer Progrmming – II (C++) – Object Oriented Programming
Assembly / Microprocessor, Prolog for AI, MATLAB, Computer Graphics Algorithms
Data Structures / Algorithms, Numerical Methods, Weka / Data Mining
SQL / MySQL / Oracle

However it's not going to matter what programming courses you get to learn - you really learn programming once (not a trivial task) for me I started with Qbasic on 9/10th grade, and from there you can pick up whichever languages (PHP, Javascript, C#, JAVA, Python, Ruby, Lisp ) you need (a comparatively trivial task). Most importantly, you should learn outside the classroom -- make your own projects/applications/websites or contribute to existing projects. I did. This helps in a lot of aspects -- it trains your motivation, improves your skills in programming, can be used as resume fodder, and so on.

Advanced Computation

26.0 Numerical Methods(NM)
28.0 Data Structure and Algorithm (DSA)
29.0 Theory of Computation (TOC)
35.0 Computer Graphics (CG)
44.0 Artificial Intelligence (AI)
49.0 Simulation and Modeling

NM – is for advance mathematical calculations.
DSA is the subject that will give heavy focus on algorithmic implementation of numerous real world problems with computer.
TOC is highly theoretical subject and is best studied for language design, compiler design.
CG – if done well can inspire one to get in to Game development, 3D modeling, Computer Vision etc.
AI – Useful in Games, Robotics and automation, expert systems.
Simulation - Modeling and simulating high end computing systems.

Computer System, Storage, Networking

37.0 Operating System (OS)
38.0 Database Management System (DBMS)
42.0 Computer Network

One should be familiar with how the computer “actually works”. This is where Operating System is dissected to depth.
Every application in the world will need some storage to store data/information. No software engineer could work without writing database queries.
Anyone interested to work as Network Administrator take Computer Network seriously.
Subject of your choice 

45.0 Elective – I (Image Processing, Optical Fiber, Mobile Communication etc)
52.0 Elective – II (IPv6, Biomedical, Data Mining etc.)

You can chose for “easiness” or for “interest”. Normally, choosing for interest is a tough choice. And a better choice.

Projects is where you get to show your Software design, development, project management skills studies so far.

39.0 Minor Project project
51.0 Major Project
Hierarchy of subjects with their relative hardness:

Math > Physics > Electrical/Electronics > Fundamental Computer Science > Software Engineering > Information Systems > Management > English > Art

Master from the root. Other will follow naturally.

For career in software development


First year of engineering education will be more about "learning how to learn" than anything else. Once you get into track, understand what is your real interest is in – after that its time to focus and be determined to dive into it. At this point you should be sure whether you want to be an pure academic (teaching) or a pure industry engineer (career options above). It’s again up-to you. Since I was more interested in software field – here’s what I think you may find interesting to focus on during college life for the same.

Focus On
  • One computer subject one project
  • Projects for fun
  • Build Unique Apps / Projects
  • Don't repeat yourself while coding
  • Don't build what is already built
  • Build with awesome Interface/UI/UX/Design
  • Build apps to launch
  • Unit Tests / Testing / Automation
  • Share your code or part of it
  • Use open source to the max
  • Document your project well
  • Always share your learning experience
  • Always work in groups
  • Collaborate as much as possible
  • Ask someone to mentor you
  • Maintain a regular blog from day one at university.
  • Learn where any subject under discussion will help professionally.
  • This is all about connecting the dots, as Steve Jobs said



Project Ideas (< a month projects)


Project Ideas
  • Nepali Chat Bots
  • Nepali Language Parsers
  • Local Games 2d/3d
  • Nepali Social Network Models
  • RSS-to-SMS
  • MIS as Web Apps
  • Inventory Management Web Apps
  • Online Multiplayer Games
  • Language Converters
  • Nepali Calendar
  • AI in Games
  • OCRs that recognize Nepali Text
  • Extensible Content Management Systems
  • Data Backup Systems
  • Multimedia Players
  • Road Simulators
  • Electricity Flow Simulation
  • Location Based Social Web Apps
  • Real-time Online News Systems
  • Real Time Online Discussion Forums
  • Online Payment Get-ways
  • Mobile Games
  • Quiz Softwares
  • Event Management Apps
  • To-do list manager
  • Bookmark Managers
  • Browser Extensions
  • Plug-in/Extension to your favorite softwares
  • Web Scrappers
  • Report/Chart/Analysis Libraries
  • Personal Blogs/Websites
  • Work on open issues of Open Source apps


Suggestions


Suggestions to Computer Engineering students
  • Self Study
  • Internet is your library - Search, search and search more
  • Try to understand the concept of programming not syntax
  • Algorithms and Data Structures are everything
  • Projects are portfolio for your first job interview
  • Wikipedia is your teacher
  • Open Source Applications are you Code Gurus
  • Online Discussion Forums are your Communities
  • Organize events, competitions centered around Software development
  • Learn to use Collaboration Tools
  • Be disciplined inside and about your profession
  • Build Skills that sell
  • Join/Follow communities of developers
  • Learn to respect community, get max from it
  • Find what is the BUZZ in tech
  • Learn about Project Management seriously
  • Build products that can solves existing software problems in our community
  • Know about Documentation
  • Learn about software testing / Quality Assurance
  • Do one project by yourself per computer related subject
  • Give others, Take from others
  • Share your project code in the internet
  • No one becomes professional without a hard work
  • Those who are doing good now did their best while studying
  • No one is born talented, its the hard effort that pays later

Regular Reading : Recommendations (Online)


Wikipedia : Once a week  (Start with a tech article, follow all the inside links)
Stackoverflow / Sort questions by vote and read 20 most voted questions in all the subjects of your choice.
Regularly read updates from at least two or three domain experts of the field of your interest.
Join Local Communities of Tech Users. (eg. KtmGTUG, Hackers Chautari, FOSS, BarCamp)
Get a habit of reading blogs, online discussion forums regularly.
Publish your new found knowledge in your blog.
(refer: http://wiki.semicolonvalley.org to find other local resources)

Tuesday, November 8, 2011

PyroCMS Themes, Widgets and Modules - for reference.

Themes :

https://github.com/semicolondevelopers/pyro_theme_artificial_casting
https://github.com/semicolondevelopers/pyro_theme_blue_spades
https://github.com/semicolondevelopers/pyro_theme_business_time
https://github.com/semicolondevelopers/pyro_theme_coffee
https://github.com/semicolondevelopers/pyro_theme_eco_design
https://github.com/semicolondevelopers/pyro_theme_night_club

PyroCMS v1.3.2 Theming Guide for beginners:
http://echo.semicolondev.com/2011/11/hot-to-create-pyrocms-v132-theme-step.html

PyroCMS Tag Cheat Sheet


Widgets

https://github.com/semicolondevelopers/pyro_widget_category
https://github.com/semicolondevelopers/pyro_widget_login_box
https://github.com/semicolondevelopers/pyro_widget_selected_category_posts

PyroCMS v1.3.2 Widget creation guide for beginners
http://echo.semicolondev.com/2011/11/how-to-create-pyrocms-v132-widgets.html

Modules:

Hello World Module
https://github.com/semicolondevelopers/pyro_module_hello

Old 0.9.9.x Forum module upgraded to v1.3.2
https://github.com/semicolondevelopers/pyro_module_forums

PyroCMS v1.3.2 & v0.9.9.7 Module Creation guide for beginners:
http://bhu1st.blogspot.com/2010/09/hello-world-pyrocms-module.html

Monday, November 7, 2011

नेपाली ब्लगरहरुलाई छोटो मीठो सल्लाह

Quick SEO tip for Nepali (Unicode) Bloggers

Here goes, one quick SEO (Search Engine Optimization) tip for Nepali Bloggers who use Blogger.com to publish their content written in Nepali Unicode.

What I’m talking about ?

Say: your blog post title is “मेरो नेपाल”
You publish it. Now blogger gives you one random “url/permalink” to your post which looks something like – http://yourblog.com/2011/11/blog-post.html. Why that happens is because blogger.com service is not made in Nepal. Now forget that reasoning since that does makes no sense.

Such permalinks suck from SEO perspective, ain’t it ? Blogger left no option to provide an equivalent English permalink/url for our Nepali Unicode blog article.

If the post had English/roman title like : Mero Nepal
Permalink would have been: http://yourblog.com//2011/11/mero-nepal.html

Do you see problem here ? Yes that’s what I am talking about. Now question is, what if we could provide a meaningful url to our Nepali Unicode post keeping the Unicode title as is ? Obviously, our content would be more search engines friendly.

Solution ?

Solution is so simple that even our grandmother would follow it. Let me describe that in steps.

Step 1:

Write your article in Nepali Unicode.

Step 2:

Give your post a equivalent roman or english title.
eg. instead of using “मेरो नेपाल” in blog title use “Mero Nepal” or “My Nepal”

Step 3:

Publish your blog post.
that gives us a readable URL in English or roman.

Step 4:

Now edit your blog post’s title – change it back to Nepali Unicode version.
use “मेरो नेपाल”  in title of the article now.

Step 5:

Re-publish the edited post.

Step 6:

Enjoy ! Let Google take care of the rest.

Conclusion

Search engines give more priority to the permalink/URL of the post. It makes sense to have a more meaningful, human readable URL to our blog post. It helps our reader to find our content via search engines.

If you find this tip useful, please leave a comment to this post or subscribe to my blog.

Friday, October 21, 2011

Social Networks : As if they cared..

We used to swim in pool. Now, we swim in the internet. With every person clicking a mouse button in internet – there comes a “piece of information”. With so many and “lead by business motive” social networks – we forget the boundaries of our actual social connection and push things – without a second thought. Who cares – if the audience is your father or a stranger. When you were provided a “wrong” working environment you’ll work wrong. Which is obvious.

In most of the present social networks when we share, nobody cares. Or saying it more precisely nobody cares who we don’t care. Or nobody who doesn’t have similar interest to us cares. I, for example,  care about few people’s update, few bloggers and few site that i visit regularly in the internet. If there were “settings/preferences” to wipe out every other updates in the internet except from those people, sites, interest that I enjoy checking out – I would have checked that option forever.

With such humans as we are in the internet, the only “someone” that always cares about our shared information is the software code that sits in the servers of social networks or sites we use daily to send updates. It parses, analyses and tracks our updates to “discover” some patterns, trending information about us, our actions, our interests and our social connections.  A social network – if provided you complete control of your data, complete control over the interface (UI) and complete control over your actions, can you answer – who the hell on earth would pay the “social network business” if you won’t ? So there comes the targeted advertisement business models. Those tracked information about users is now on sell.  We are getting “noise” because we are stuck in the free but business oriented models of our actual social life online.

The internet was designed to be an open environment. Thoughts about developing an actual social experience online would always be just a thought. Seth’s said, Cities don't die (but corporations do) and I think social networks systems which model social structure online with closed motives will die too. Now or later, sooner better. We will adapt to/use new social networks online but they will have similar issues too.

The existing social model online are not reducing single to noise ratio in the online information flow – they should have but they won’t. With the give everything as free service business models – we users have to compromise on our data, our activities and bear with the targeted/untargeted noise if we use those systems.

Conclusion:

Social network can be modeled around actual life’s social structure. There are no technical difficulties. But, no social network organization with business motives will give “that much of real life control over the system” to its user. This is how free of cost social networks will always work. 

However, we have choice. We could stop using social networks or stop expecting as if they modeled/cared our real life social structure online – they never did, and no other social network will ever. We shouldn’t act wrong, because we were given a wrong social  networking environments online. It’s always us, the users, who are responsible and should be about what we share online. If we don’t care about social structure/connections online, how would anyone from heaven believe that we would care about those social connections in real life – in our homes.

Friday, September 23, 2011

Why do I write ?

Actually I don’t.

I don’t write that much that a whole post dedicated to why do I write would make any sense. But, the thing that pushes me to write once a while is I like writing. I like writing because – I like sharing. I got to learn a lot by reading books, manuals, articles, blogs written by others – It is kind of gentle reminder to myself that – I might too have something that others could find useful.

From the day my writing got reviewed by our class teacher Heramba sir back in school (he praised the way I wrote an essay about status of women in our society), the meaning of writing for me have always been sharing. Yes, write and do it to share. I don’t write to throw it away, tear out the paper or to burn it down into ashes. It is more of like I write to share what I have learnt through.

When we read, it means we want to learn something more. Yes, the more thing here suggests that we already know something. Many times, that something shared somewhere makes a lot of sense to wanderers like me. When we are stuck in tough situation in job/work/life and couldn’t figure out ways to sort them out – I think a good place to search for references would be to query around internet. Who knows, someone from somewhere might have gone through similar situation and could have left a small bit of memo laying out there on how to face that particular situation. What a relief !

Back in college days, I wrote/copied a lot of short paragraphs I liked  from books, novels, magazines then broke them down by phrases readable in a one go, I wrote them all in Nepali, in a paper and called them Manasha. I love writing in paper and with a black gel pen. I feel more fluent to write random stuffs that way. Those Manashas now live at http://manasha.blogspot.com. Actually, I wrote them to remind myself not to forget Nepali writing. It was clear to us by then that – we will never get back to study/write in Nepali after completing our +2 unless we studied Arts or similar undergraduate courses. That was a good motivation – I wrote so that I won’t forget to write. (In our own language i.e Nepali.)

I once asked my physics professor Y.P.D sir a question. “You know everything from atomic structures to how rockets work still you said you are going to study further ? ”. Professor said, “Bhupal, I know nothing. There are a lot more things to be learnt. Yet undiscovered.” I was in shock for two days because of his answer. With that question I was not raising a concern whether professor would continue further education or not – but I was wondering “what the heck I learned till that day ? Was it worth all effort as compared to our professor ? ” For a day or two, yes I went clueless. But, when my elder brother shared a profound thought the another day, “Everyone’s experience matters in life !”, I was kind of relieved. I started to look back into my life and my experiences with a different perspective. Not much interesting to say here but it was not that bad – a carefree guy, passionate learner and wannabe Computer Engineer of those days. Yes, I continued to what I wanted to be.

When we write, the “something” we already know pours down. If nicely put, could become a nice article which could guide one another beginner who yet doesn’t understand that “something”  which we have known for a while. This is why I like writing. I like writing because I want to share what I know. It may or may not be useful but that is an another story.

It’s not a big deal. Whether you're writing to an audience of one, five, a thousand, a million, ten million, there's really only one way to really connect. One way that actually works: Write from the heart.

I don’t have reference to where I noted down those lines from but it is nicely put and whenever I read it, it kind of encourages me to write more.

Sunday, April 3, 2011

Web development “real” life cycle

Few guys known as manager, designer, software engineer, tester are feeling pressure in what we call Semicolon Valley here, because few other guys known as information architecture, user interface designer, user experience designer, database designers left Nepal thinking there is no work for them here. They never bothered to try creating work here. The smart guys here are working on a product called “web application”. There is one guy known as customer, who had the awesome “web application”  idea. Let’s see how it begins and how it goes to the end. Let me tell you the story of a web application development life cycle in Nepal and few suggestions to make it more enjoyable.

diagram-innovative-idea
Source: Smashing Magazine

All these guys would introduce themselves as you keep on reading. The quotes are strongly favoring the guy in context but no one else in the story.

It’s me, the Customer, you know ?

I am full of ideas. One secret to tell you, I love spending on my ideas. Don’t get me wrong here. I know what i want, but i don’t have a money plant though – mind it.  I can feel my ideas, they so good, amazing, do you see them?  I think i can do business with this idea. I want people to see it, feel the same. I like to see how the idea will turn out when implemented.

The Customer is King. – Unknown

 

Right or wrong, the customer is always right.
- Marshall Field

Let’s talk. Will this work ?

If you make customers unhappy in the physical world, they might each tell 6 friends. If you make customers unhappy on the Internet, they can each tell 6,000 friends. - Jeff Bozos

 

Hello, how are you ? she *smiles* :)

Dear customer, welcome to our family, I am the manager here. I'll coordinate with you all the time. Your ideas are what makes us move. Thank you so much for choosing us. Stay in touch, we love your feedbacks while we work.

If we don’t take care of our customers, someone else will. – Unknown

In house. Hello guys, we have a new project here *boom*. The idea is brilliant, you would enjoy it. Let’s have a quick discussion and figure it out how to give it “shape”.

After one look at this planet any visitor from outer space would say 'I want to see the manager.' - William S. Burroughs

Here’s this, here’s that, this is for you and she gonna work on it, okay – Cheers! (hears silence in return!)

The toughest thing about the power of trust is that it's very difficult to build and very easy to destroy. The essence of trust building is to emphasize the similarities between you and the customer.
- Thomas J. Watson

What do you think - will this strategy work ? Can we do this by October ? Suggestions? Have you worked on this kind of project before?

The quality of our work depends on the quality of our people. – Unknown

To my customer. I may not have the answer, but I’ll find it. I may not have the time, but I’ll make it. – Unknown

Guys, let’s do it. This is going to be an awesome product.

Hire character.  Train skill.  - Peter Schutz

 

Hi, my name is designer.

 

Do what you do so well that they will want to see it again and bring their friends. - Walt Disney

I love colors, I love spaces, I love ‘em together. It took me thousands of hours of reading, practicing and re-doing designs to see the “shape” of the “idea”. I am not here with a crash course on how to persuade the recruiter. I can feel the idea. I can feel what customer saw in it. Practice is what made me confident on my work.

One idea can change the world. - Inception

This idea is not any less. Let me think a bit. Give me some time. I need some space, no one disturbs me until i finish it okay! ***Dido in headset ****

Design creates culture. Culture shapes values. Values determine the future.
- Robert L. Peters

 

Hi, developer here. What’s up yo!

I am not developer. I am not a software engineer. What the f%$^ is that? What i do is programming mod@ f$!%er.

Walking on water and developing software from a specification are easy if both are frozen - Edward V Berard

Programming is what i enjoy dude. Give me the designs.

If you want to set off and go develop some grand new thing, you don't need millions of dollars of capitalization. You need enough pizza and Diet Coke to stick in your refrigerator, a cheap PC to work on and the dedication to go through with it. - John Carmack

Did you know everyone in the world hates PHP. They don’t know what it means to be in love.

There are only two kinds of languages: the ones people complain about and the ones nobody uses. - Bjarne Stroustrup

I am in the semicolon of the 4425th line making the “idea” functional. I don’t understand why the PM always sees my fault. F%&^ you.

Give trust, and you'll get it double in return
- Kees Kamies

yoyo

What is going on here? I am a tester.

“You can see a lot by just looking.”  – Yogi Berra

My sister got her kids a little puppy, and they’ve been trying to train it. To live with a dog in the house, you need to teach it not to jump on people, not to poop in the house, to sit on command, and to never, ever, everchew on the iPad. Never. Good girl.

With dogs the main trick to training is that feedback has to be immediate. If you come home to discover that, hours before, the dog tipped over the garbage can in the kitchen, it’s too late for training. You can yell at her but she just won’t get what you’re going on about. Dogs are just not that smart.

For programmers, getting better at what you do requires quick feedback, positive and negative, on what you’ve just done. The faster you get the feedback, the faster you’ll learn. With long-cycle shrinkwrap software, it can take a year or more to hear feedback from customers.

That’s one of the reasons Jole would hire you.

To find out what happens when you change something, it is necessary to change it. - Unknown

You have a awesome product history. I like the way you guys work. You hired me, but i used to find more bugs when i was your customer.

You need to know about customer feedback that says things should be better. - Bill Gates

Never mind coders, i am doing my job. That huge guy, the CEO, pays me to find what you did the other way around, like he pays you to solve the problem. Don’t get me wrong – this is my job, like yours. You better fix the bug now. Before we are too late.

You said it worked.

Yes, It works on your machine! but..

Let’s fix some more. This is going to be a killer product. Awesome.

Discovering the unexpected is more important than confirming the known. – Unknown

 

Wow! not bad yet. How far have you been?

Here comes the customer. ***** trouble alert ****
”Guys here are some thoughts…”, says  the customer.

Your most unhappy customers are your greatest source of learning. - Bill Gates

1. Would you ask your designer to delete that “like” button and add “+1” and “-1” button?

Remember? I am the King? I am the one spending money. Why should i care about how tough time you guys have gone through.


2. When i delete “this guy” here, why the whole page gets reloaded ?

You guys fix this asap. We are running out of time.

3. I want to add my “another idea” here at the left side, below top right banner.

Yes. It is always just one idea that can change the world.

 

Manager : Designer, Programmer, Tester

 

Guys, we got a situation here.

The best part about good “managers”, “designers”, “coders”, “testers” – is that they know this is what happens in web development real-life cycle.

They are always ready to face it.

Let’s iterate.

That would mean, go to the beginning and start again from where you programmers, designers  an testers sat with your manager at the beginning of the project. The smaller the iteration, the finer the product.

x

As a manager we know web development always ends up like this.
As a designer we know web development always ends up like this.
As a programmer we know web development always ends up like this.
As a tester we know web development always ends up like this.

If you do what you always did, you will get what you always got. - Einstein

y

You are professionals. But as a customer he/she might not know web development always ends up like this. (New customer )

- Tell them the story of "web development real-life cycle” before beginning. Analyze requirements (ask customer, do research) as much as you can before beginning the project – don’t hurry in the beginning.
- Include the “customer” to this  “Manager” to “Designer” + “Programmer” + “Tester” to “Manager” cycle. Get frequent feedbacks.
- Tell the customer in bold voice or letters in the beginning that each small “idea” in the middle of the project costs you time, costs you team effort, takes the s&!t out of your team and that’s why you will need more payment so that you could buy more Sprite, Coffee and RARA backup to fix that design and code.

Go out of your office quarters, have some fresh air in Basantapur in the eve. Ask your customer to join in next Friday.

You are professionals. You are creative. You always loved your work. You respect your customers. You are clear to your customers on pricing and quality. You gave quality product - last time. The customer wants you to work on another idea.

Congratulations! You proved you are reliable.

The purpose of a business is to create a mutually beneficial relationship between itself and those that it serves. When it does that well, it will be around tomorrow to do it some more. John Woods

z = x + y

The web development real-life cycle exists. Accept it from the beginning.
Enjoy it with your customer.

Designing a product is designing a relationship.
- Steve Rogers

 

Thanks,  
Seth’s blog, Steve Blank’s Manifesto, Smashing Magazine articles 
Quotes from top 10 Google results on topics.
My few years of web development experience in Kathmandu Valley.

Thursday, March 31, 2011

Congratulations : Google Nepal

What is Google ?

Google Inc. is an American multinational public corporation invested in Internet search, cloud computing, and advertising technologies. Google hosts and develops a number of Internet-based services and products, and generates profit primarily from advertising through its AdWords program. The company was founded by Larry Page and Sergey Brin, often dubbed the "Google Guys", while the two were attending Stanford University as Ph.D. candidates. It was first incorporated as a privately held company on September 4, 1998, and its initial public offering followed on August 19, 2004. At that time Larry Page, Sergey Brin, and Eric Schmidt agreed to work together at Google for twenty years, until the year 2024. The company's mission statement from the outset was "to organize the world's information and make it universally accessible and useful", and the company's unofficial slogan – coined by Google engineer Paul Buchheit – is "Don't be evil". In 2006, the company moved to its current headquarters in Mountain View, California.

Google runs over one million servers in data centers around the world, and processes over one billion search requests and about twenty-four petabytes of user-generated data every day.  Source : Wiki

Google’s Philosophy : Ten things

“The perfect search engine,” says co–founder Larry Page, “would understand exactly what you mean and give back exactly what you want.” When Google began, you would have been pleasantly surprised to enter a search query and immediately find the right answer. Google became successful precisely because we were better and faster at finding the right answer than other search engines at the time.

Following principles are what guides Google’s actions:

1. Focus on the user and all else will follow.
2. It’s best to do one thing really, really well.
3.Fast is better than slow.
4.Democracy on the web works.
5.You don’t need to be at your desk to need an answer.
6.You can make money without doing evil.
7.There’s always more information out there.
8.The need for information crosses all borders.
9.You can be serious without a suit.
10.Great just isn’t good enough.

To read details about how these 10 principles guide Google on its decision please visit the following URL  : http://www.google.com/corporate/tenthings.html

Google offices

Guided by those fundamental principles for its “every decisions”, Google till now has expanded its office locations to most of the countries of the world except Nepal and few others.

 google-nepal

We were worried about why there is no Google office in Nepal till last week. Oh, yes, here is a Good message. It all started June last year.

Congratulations

google-nepal-logo

Google Nepal Address:

New Baneshwor,
House Number : 53,
Google Marg, Kathmandu, Nepal
Phone: 01-042011
Contact Person: John Doe Google

Tuesday, March 29, 2011

Android SDK and AVD Manager slow download problem

I was Installing the Android SDK (http://developer.android.com/sdk/installing.html) on my Windows XP box.

Problem : Slow download of android SDK platforms ~5kb/s


android sdk download ~5kb per second
Android SDK and AVD Manager Stalling During Download : Google Groups
Android sdk download/update failing : Stack Overflow

How to speed up Android SDK platform download ?

1. Allow download over http : check the option in Settings section of Android SDK and AVD manager.
https
2. Disable/Deactivate your antivirus application.
Recommended at : Adding SDK Components page

Caution: Before you install SDK components, we recommend that you disable any antivirus software that may be running on your computer. There are cases in which antivirus software on Windows is known to interfere with the installation process, so we suggest you disable your antivirus until installation is complete.

After allowing download over http and deactivating antivirus, my download speed increased to around 20kb/s. Still not good but better than ~5kb/s

android sdk download 20kb per second
3. Or you can prefer offline Android SDK component download option :
Stackoverflow: Download the Android SDK components for offline install 
(direct link to post describing offline download procedure)
Hope this helps save some of your android sdk platforms download time.


After download you can start with following Hello World android tutorials.

Android Hello world tutorials:

Hello, World – Android developers
http://developer.android.com/resources/tutorials/hello-world.html
Android Development Tutorial - Gingerbread
http://www.vogella.de/articles/Android/article.html


Or grab this book:




Cheers!

Monday, March 7, 2011

PHP Short Tag : Avoid Them

PHP Short Tag: 

it  look like this:

<?   ?>

<?= $var ?>

obvious ones:

<?php  ?>

<?php echo $var ?>.

I downloaded an open source php script, thinking to work it out for my own purpose – but what sucks is - the project uses short tag that my host doesn’t *seems* to provide support for. For the testing purpose i needed to TOGGLE the short tag on/off switch in php.ini

How to enable PHP Short Tag ?

Open your php.ini file in your favorite editor.

Here’s what it says in line number 214 through 226

; This directive determines whether or not PHP will recognize code between
; <? and ?> tags as PHP source which should be processed as such. It's been
; recommended for several years that you not use the short tag "short cut" and
; instead to use the full <?php and ?> tag combination. With the wide spread use
; of XML and use of these tags by other languages, the server can become easily
; confused and end up parsing the wrong code in the wrong context. But because
; this short cut has been a feature for such a long time, it's currently still
; supported for backwards compatibility, but we recommend you don't use them.
; Default Value: On
; Development Value: Off
; Production Value: Off
; http://php.net/short-open-tag
; short_open_tag = Off

Now change the short_open_tag = Off  to (remove semicolon)

short_open_tag = On

Restart Apache or XAMPP or your WAMPP installation

but here’s a big BUT below

 

Why you should avoid using PHP Short Tag ?

Stackoverflow : Answer

Normally you write PHP like so: <?php PHP CODE HERE ?>. However if *allow_short_tags* directive is enabled you're able to use: <? PHP CODE HERE ?>. Also sort tags provides extra syntax: <?= $var ?> which is equal to <?php echo $var ?>.

Short tags might seem cool but they're not. They causes only more problems. Oh... and IIRC they'll be removed from PHP6.

Stackoverflow: Answer

They're not recommended because it's a PITA if you ever have to move your code to a server where it's not supported (and you can't enable it). As you say, lots of shared hosts do support shorttags but "lots" isn't all of them. If you want to share your scripts, it's best to use the full syntax.

I agree that <? and <?= are easier on programmers than <?php and <?php echo but it is possible to do a bulk find-and-replace as long as you use the same form each time (and don't chuck in spaces (eg: <? php or <? =)

I don't buy readability as a reason at all. Most serious developers have the option of syntax highlighting available to them

 

Use it if :

  • you own a server and don’t care whether shared server support short tag or not
  • you don’t care what community says
  • you don’t want to Open Source your code later

<?php

/*

Oh please, don’t ask another question on stackoverflow about how to disable PHP Short Tag.

Rather you may want to write a parser that will loop through your 500+ php source code files and replace this Pain In The Ass PHP Short Tag to Normal PHP tag and share us the link. Here’s hint.

*/

?>

Sunday, March 6, 2011

Wordpress Themes / Templates - Useful Codes

Here are few fairly basic but handy wordpress codes that a wordpress theme or template developer/designers could use as reference. i personally use these a lot while working with wordpress.

 

Wordpress Site Name:

<?php bloginfo('name'); ?>

 

Wordpress Site Description:

<?php bloginfo('description'); ?>

 

Wordopress: Home Page Link:


<a href="<?php get_option('home'); ?>">Home</a></p>
or
<a href="<?php bloginfo('url'); ?>">Home</a>

 

Wordpress : Navigation – Display List of Pages in <li>

<?php wp_list_pages('title_li=&depth=1&exclude=2,7'); ?>

 

Wordpress Theme/Template Path:

<link rel="stylesheet" type="text/css" media="screen" href="<?php bloginfo('template_url');?>/css/screen.css" />

 

Wordpress : Inside The Loop

<?php the_permalink() ?>
<?php the_title_attribute(); ?>
Post time: <?php the_time('F jS, Y') ?>
Post Author: <?php the_author() ?>
Post Content: <?php the_content('Read the rest of this entry &raquo;'); ?>
Post Tags: <?php the_tags('Tags: ', ', ', '<br />'); ?>
Post Category: <?php the_category(', ') ?>
Post Edit Link: <?php edit_post_link('Edit', '', ' | '); ?>

 

Wordpress: Display Specific Page/Post Content

display specific  page content with page name

<?php query_posts('pagename=pname'); //pname = your page name?>
<?php while (have_posts()) : the_post(); ?>
<h3><?php the_title(); ?></h3>
<p>
<?php the_content() ?>
</p>    
<?php endwhile; ?>

 display specific  page content with using page_id

<?php query_posts('page_id=1'); //put page id of Home or Stations  in your case?>
<?php while (have_posts()) : the_post(); ?>
<h1><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h1>
<p>
<?php
the_content('Read the rest of this entry &raquo;')
?>
</p>
<?php endwhile; ?>

display specific  post content using post id

<?php
// retrieve one post with an ID of 5
query_posts( 'p=5' );
// set $more to 0 in order to only get the first part of the post
global $more;
$more = 0;
// the Loop
while (have_posts()) : the_post();
the_content( 'Read the full post »' );
endwhile;
?>

 

Wordpress : Get Custom Value

<?php
$cvalArr = get_post_custom_values("custom-val");   
$cval = $cvalArr[0];     
echo $cval
?>

 

Wordpress : Display X Latest Post from Category Y

<?php query_posts('posts_per_page=5&cat=2');
//post_per_page = number of post to grab
//cat = 2 –> from category 2, find your category id from admin
?>
<?php while ( have_posts() ) : the_post(); ?>
<?php //the_title(); ?>
<?php the_excerpt(); ?>
<a href="<?php the_permalink(); ?>" title="Read full view of
<?php the_title_attribute(); ?>">Read more</a>
<?php endwhile; wp_reset_query(); ?>

i am thinking to put series of posts live describing wordpress development, let’s see.

Refs: Codex, Wordpress

http://codex.wordpress.org/Function_Reference/query_posts
http://codex.wordpress.org/Function_Reference/WP_Query

Friday, February 4, 2011

Hello World – Ruby on Rails

None of tutorials i found around web helped me get straight to the Ruby on Rails development environment in Windows. that’s why i thought would sum up how i setup rails in my Windows XP Professional box.

Yet, this was amusing (from Ruby on Rails Getting Started Guide)

If you’re working on Windows, you should be aware that the vast majority of Rails development is done in Unix environments. While Ruby and Rails themselves install easily using for example Ruby Installer, the supporting ecosystem often assumes you are able to build C-based rubygems and work in a command window. If at all possible, we suggest that you install a Linux virtual machine and use that for Rails development, instead of using Windows.

Let’s start.

1. Rails Development Environment Prerequisites/Setup

you should have following things installed before you can ride on Rails

- Install Ruby Language
- RubyGems Packaging System
- A working installation of the SQLite3 Database. you can setup other databases later.

Ruby Installer bundles all ruby development environment within one click setup file. Download the latest version of Ruby Installer from this page: http://rubyinstaller.org/downloads/

i downloaded : Ruby 1.9.2-p136

it installs Ruby, Ruby Gems etc.. in your selected drive. don’t forget to check the “Environment path tick mark” during installation, that helps later.

Check installed components going to the program listing in Start Menu-> All Programs

add the Ruby Installation path to the SYSTEM or USER PATH eg path.  C:\Ruby192>

 

2. Verify the Ruby and RubyGems Installation

Go to Command Prompt  (Run->CMD)

Verify your environment variables i.e PATH is setup correctly otherwise we may run into problems.

Type following commands:

ruby –v 

should give you ruby version

and

gem –v

should give you gem version

in my case:
ruby version : 1.9.2
gem version: 1.5.0

if you didn't get these numbers, update gem, execute following command

gem update --system



takes few minutes to update your gem package.



3. Now Setup Rails



execute the following command in command line




gem install rails




it will install rails, takes few minutes. you can take a cup of coffee while rails gets completely installed.



check rails version after installation:




rails –v




gives you rails installation version. a long number looks scary.



4. Setup Sqlite3 database



execute following command:




gem install sqlite3-ruby




the installed sqlite3 gem requires sqlite3.dll file. you need to download, copy/cut/whatever –then- paste the sqlite3.dll file to your Ruby or system path.



Go to Sqlite download page http://www.sqlite.org/download.html 
Scroll down to “Precompiled Binaries For Windows”


Download the “This ZIP archive that contains a DLL for the SQLite library version 3.x.y



Extract the zip, copy the sqlite3.dll  to system PATH




That’s it.



5. Create your first Rails application : The New Hello World “Ruby on Rails”



create a special folder somewhere in you hard disk dedicated to rails project.

eg. D:\web\rails





Change working directory to that path. execute following command:




rails new the_new_hello_world




the_new_hello_world <—this is the name of the web app we are going to create. name it whatever you like.



if everything went fine, rails will create a “web app template” folder in your current directory i.e the_new_hello_world directory with bunch of files/folders, yes they suck.



6. Run the development web server



execute following command:




rails server




hurray! your development web server will be now running : http://localhost:3000/





Go to that page at http://localhost:3000/ . It is there to welcome you to Rails, follow the instruction under Getting Started Section.



1. Use “rails generate” to create your models and controllers


2. Set up default route and remove or raname the config/routes.rb file


3. Create your database





Continue reading the Getting Started Guide after successfully  setting up the rails environment.  http://guides.rubyonrails.org/getting_started.html





Congratulations!!!



you are now riding on rails. where are you going?





Mention me if it didn’t work for you. i might help.


Cheers.

Friday, January 14, 2011

7th National ICT Student & Youth Conference – My Paper Abstract

Event

7th National ICT Student & Youth Conference
Date: 15th January 2011, (Saturday)
Venue: Local Development training Center, Jawlakhel, Lalitpur
Time: 9:00 A.M – 4:00 pm

banner

Organized By:

Information technology Society, Nepal (ITSN)

Conference Theme:

Youths on collaborative development

Conference Tracks:

Recent Trends in IT for Rural Developments
Smart Data Policy
IT Security
Electronic Document Management
Future Information Technology
Information & Multimedia Technology
Cyber-cultures
Knowledge Discovery
E-Democracy, E-Participation and E-voting
Security & Cryptography
Digital Enterprise
E-Tourism for 2011
Impact of social network over Youth

tracks

 

I’ve always been a community and collaboration admirer. at present i work as software developer and there are few tools and concepts that we use daily to facilitate collaborative development. To share this idea, and expecting participation of college students in group software development in future i am going to present a paper titled “Collaborative Software Development – how Nepali youths could do it?”.

i will be talking about using Open Source and free collaboration tools available online and how we can use them to make our day to day software development tasks easier

My Paper Abstract:

Title:

        Collaborative Software Development,
        how Nepali youths could do it ?

Estimated Time:  20 Minutes for presentation

Update: This paper was created collaborating with @bibekraj . we used Google Docs Presentation as collaboration tool.

Abstract:

Collaboration is working together on site or off site,  in which two or more people work together convinced around a common goal.

In collaborative software development, a small sized team of developers or larger community of developers work together using specific source code control methods to facilitate the code sharing and combine working environment.

In foreign countries (US/UK) software development has flourished so much that they are leading the software development industry as a whole. The clue for this success is nothing more that community effort or to say collaborative contribution by a lot of developers who live in those countries. Whereas in Nepal, a youth gets introduced to collaborative development only after attempting few job interviews or looking through job vacancies. Knowledge of collaborative working is so essential that, the chances are odd you would be hired without its practical working knowledge. Further, knowledge of basic collaborative development tools will give each individual the opportunity to explore the whole Open Source World of software development.

The popular Open Source Software hosting platforms like, Google Code hosting, Github, SourceForge.Net are so rich in their user base (users who are developers or coders) and project base that any guy with few knowledge of writing "Hello World" codes in languages like C, C++, PHP, C#, Python, Ruby can get to see the actual code behind stable releases of larger Open Source projects. This gives a developer an opportunity to see how "the code" works in real world. How can she write better codes. What are best practices in software development. Obviously, if she can, she would contribute back to the project itself.

This paper, exploring the "7th National ICT Student & Youth Conference"  - Youths on collaborative development theme will try to introduce basic collaboration concepts, tools and how can we use them to get into Collaborative Software Development on personal team or community based teams to the college students of Nepal.

About Me:

at present i work as software developer at Semicolon Developers,
and working on ITS – Nepal as Second Vice President.

(I will attach the presentation here after conference, most probably tomorrow eve, stay tuned)

The Conference is Open to all Nepali professionals, youths and college students. Be in conference hall on time (around 9am) and we would go through all the registration process.

Location (ref: Ghanshyam):

location

Hope to meet you there.

Update:

Here’s the slide i presented today.

Download as PPT
Download as PDF

 

happy to know after presentation that participants liked it :)