Showing posts with label Software Engineering. Show all posts
Showing posts with label Software Engineering. Show all posts

Monday, January 4, 2016

Live Your 80's Life Back

A nostalgic Google researcher recently flexed his C coding skills and built a fully functional Commodore Amiga 500 emulator for Chrome. You can try the realistic software here. It’s good, geeky fun.



Of course, it’s also a handy way to flaunt some of Chrome’s lesser known features. The Amiga emulator was built with Native Client, a C and C++ sandbox for Chrome. Said nostalgic researcher, Christian Stefansen, worked on the tool, so he’s showing off a little bit and notes that the emulator is “something like 400,000 lines of code.” Or so.

“On the main page you can boot the Amiga, insert floppy disks, play the games, and generally pretend it’s still the late 80s,” he explains in the site’s FAQ. “(We recommend some Enigma music or the soundtrack from the movie Top Gun in the background.)”

So open Chrome and go nuts. Robo-City awaits.


Tuesday, December 22, 2015

Accept the Change

Change is good or not good, Accept it quickly. It is good for you.

I don't feel myself as a opposition of accepting the change. but recently I noticed, I am not very good in that also.
Everywhere, everyone is now using smartphone. but I was not until now.
I used to have a simple Nokia phone, it was smart phone but I didn't use its smart features. Because it was a cheap phone and those smart features does not work in that phone as should be.

Well, I had all other smart devices in daily use, like smart TV, iPad, smart watch etc but not the phone which i now feel is the most important thing.
Recently, I noticed a big fall of some great companies just because they did not "Accepted the Change". Those companies were keep on following their own old ideas with this moto:
We are a successful company since N number of years. And we earn this success with our own ideas. Why should we change that now.
They forgot that the change is required nowadays to keep on running.
Now, I tell you why I was not using any smart phone before. Because I like small screen and Nokia phone. Nokia did not launch any successful smart phone with small screen that's why I was not iPhone or any other smart phone. All of them were coming with big screens and I like small ones.
When I noticed that, iPhone 5 screen was smaller than iPhone 6 then I feel Its a Change in peoples choice that's why all the successful smart phones are coming in big screens. So ...
The very next day I had iPhone 6s in my hand.



Well, Change is always good in our lives. It makes us happy. If we accept the change quickly we don't sob for long on the sudden unhappy thing happen with us

Changes can be hard but necessary, and a change of scenery can re-ignite your interest and motivation.

Accept the things you cannot change; have the courage to change the things which you can; and have the wisdom to know the difference. Changes can be hard but necessary, and a change of scenery can re-ignite your interest and motivation.
Understand that people change and sometimes they are not compatible with our lives. We just have to learn to Accept the Change and move on.
The biggest setbacks I commonly see are when people are starring in the face of change. Whether it’s unexpected or they just run out of options, when you force change on someone their whole turns upside down.
The biggest fear of change is usually not knowing what will happen next. Unsettling routines, changing locations and making someone expand beyond their known world spells disaster for many.
If we’re honest with ourselves, we know that making the change will be the best for us moving forward. The simple key is silencing the “what ifs” and making it happen.
The are no quick tips or twelve steps. Say, yes! Then quickly put action to what you’ve been avoiding.
Why fight it? It’s time to make life happen!

A good read on this topic Who Moved My Cheese?

Friday, December 18, 2015

Secure Your Computer

Did you ever happen to see this kind of message when browser over internet?

or did you ever feel the luckiest person when you read a sudden message that you won a lottery or something else.


just like the below one



If your answer is Yes, then you are one of stupid fellow internet user.

you should have to train yourself to use internet.

This kind of message is actually a threat which might install something serious on your computer then all of your personal data might be stolen or lost.

So, be careful when you are using internet.

You might be thinking if this is a threat, then how does this gets your location which says "Canada" for example and how does it knows you are using Chrome.

Well, that is quite simple for website developers. everything is available with a single dot. so don't get upset of their customized message. Just do not click any button and quickly close the browser tab or window.

Good Luck!

and happy browsing.

Monday, December 14, 2015

Node.js for Dummies

I started to learn Node.js ma be five months back. Then by October I had enough knowledge to write something for beginners about Node.js, AngularJs, NPM but I could not have time for that. Something then put me in terrible busy days So I was not at all able to do so.
It happens with me or may be with many others, They want to learn a lot of things in a very less time at first GO. With me it happens always.

advertisements
As I am a Technologist. and for us - computer related professionals this is high requirement to keep us up to date. If we will not we will be finish. and in today's world I think it is applicable for everyone.
We should have to accept the change very soon to absorb lots of thing quicker.
So, Node.js is not very New now. but this is not late to get updated about technologies.
I am posting here few good tutorials:
Node.js, in the simplest most basic terms, is a framework to develop server-side applications through JavaScript.

In comparison to most other similar technologies, node.js is extremely well suited at doing things that send a lot of messages from one user to another, such as chat clients, Twitter-like services, game servers.
It is used for developing applications that make heavy use of the ability to run JavaScript both on the client, as well as on server side and therefore benefit from the re-usability of code and the lack of context switching.

Node.js is only an environment; you have to do everything yourself.


Node.js is pretty interesting because it uses Javascript. This is useful for two reasons. First, having the client side and server side code written in the same language creates convenience for writing interactive websites. Second, because browsers are so competitive, there are many fast implementations of Javascript, Node.js runs very quickly.
Here is a tutorial

Node is getting popular as a server-side platform and is used by IBM, Microsoft, Yahoo!, Walmart, Groupon, SAP, LinkedIn, Rakuten, PayPal, Voxer, and GoDaddy and many more.


Here is another Node.js tutorial.


I will very soon write about my own experience on using Node.js.

Sunday, December 6, 2015

SAN - Storage Area Network

SAN (storage area network) is a high-speed network of storage devices that also connects those storage devices with servers. It provides block-level storage that can be accessed by the applications running on any networked servers. SAN storage devices can include tape libraries and disk-based devices, like RAID hardware.
Here are a few advantages of SAN:

Scalability

SAN has many advantages over DAS in your data center. Here are 10 reasons to consider making the leap from local storage to a SAN.
If you know, or have heard, one thing about a SAN, it's scalable. What does scalable mean? SAN scalability means that you don't have the limit of a handful of disks that you can attach to a system. SANs can grow to hundreds of disks in size, whereas your server has a physical limit of about a dozen.

2. Performance

SAN performance isn't affected by Ethernet traffic or local disk throughput bottlenecks. Data transmitted to and from a SAN is on its own private network partitioned off from user traffic, backup traffic and other SAN traffic.

3. Data Isolation

There's no chance of your data being copied or stolen by anyone sharing the same SAN with you. Not even the SAN admins can see your data. When correctly configured, SAN data is zoned. These zones protect your data from everyone else's on the same SAN. An example of SAN zone separation is how UNIX servers can connect to a SAN and Windows servers connect to the same SAN, but the data that each group of servers accesses is different. In effect, Windows systems can't "see" UNIX data and vice versa.

4. Uptime

There's nothing quite like a SAN to assure 100-percent storage availability. SAN systems require no reboots to add new disks, to replace disks or to configure RAID groups. The ability to stream data between SANs for data backup and recovery also increases performance by bypassing server systems completely.

5. Workload Isolation

Zoning also separates your workloads from one another on a SAN. Not only is your data protected by zoning, but it also provides a barrier against other non-related workloads from affecting your application's performance. Sharing a SAN isn't a performance problem for applications when zones are in place.








Long Distance Connectivity

SANs have the advantage over all other storage connectivity for distance at 10km (about 6 miles). Not that you'll necessarily use that distance capability, but it's there if you need it. Having the advantage of distance allows you to consolidate your storage into an isolated location dedicated to storage and separate from the systems it serves.

7. Increased Utilization

Rather than hundreds or thousands of partially utilized local disks wasting power and generating heat in your data center, you could have dozens of SAN disks have no wasted space on them. How so? Thin provisioning on the storage side (i.e., on the SAN) uses space more effectively than local storage does. As a system requires more storage, the SAN allocates it dynamically. Yes, this means that physical systems can enjoy thin provisioning just like your virtual ones do.

8. Bootable

Despite the benefit of more fully utilized disks, as highlighted in advantage No. 7, you do not need to use local disks for the server operating system. It's possible to run diskless physical servers and boot directly to the SAN for your operating system, swap space (pagefile), and all applications. That's right, just like virtual machines.

9. Centralized Management

If you have SAN arrays from several different vendors because your data center has grown over the years, stress not, SAN vendors have created software management tools to manage your heterogeneous environment with ease. But, better than multiple vendor management capability, all of your SAN environments can be centrally managed from this single interface. This capability provides efficient and centralized storage management.

10. Disaster Recovery

The cost of a SAN is high. As you can see, there's no entry for SAN being a particularly frugal technology in this list. However, in the case of disaster recovery, a SAN can and does earn back its high price by providing a speedy recovery when the clock is ticking. A SAN is a reliable and fast data recovery solution. Server systems might go offline, but the SAN remains available.



Choosing SAN, NAS, or DAS
But newer developments are changing the picture, pushing NAS up the performance scale and SANs down the cost curve, in some ways blurring the performance line between these two technologies. The arrival of iSCSI SANs is driving down the cost of SANs. The iSCSI protocol is a serial implementation of SCSI that aligns with IP packets. While operating at slower speeds and offering lower throughput than Fibre Channel, iSCSI uses standard networking gear, can operate over long distance for remote backup, and is easy for network administrators to understand and manage. However, because of its better performance, Fibre Channel is still the preferred technology for most data center applications.

This becomes clearer by contrasting SANs with another networked storage technology: NAS Network Attached Storage. While both NAS and SAN provide remote access to storage devices via a network, the similarity ends there. In technical terms, the primary distinction between the technologies is that NAS operates at a file level while SAN operates at a block level.


You have to dig somehow more into this topic.

Thursday, May 27, 2010

CSS3 and html5

tools & resources for web professionals

the best site for understanding and creating online code of css3.

http://westciv.com/tools/gradients/

http://westciv.com/

what you can do by using cc3. http://www.everydayworks.com/css_typography/HTMLCSSrotation.html

i like it. alot. :D

http://creatingsexystylesheets.com/

Friday, April 4, 2008

From Agile Development to New Software Engineering

In 1997, long before agile project management became a buzzword, a paper was presented at a military software conference, entitled “Disciplines Delivering Success” [1]. I find it sobering to read that paper 10 years later and see how little our organizations have advanced over the decades. Brown presented six “project-saving disciplines ignored by management”:





  • Good personnel practices

  • Planning and tracking using activity networks and earned value

  • Incremental release build plan

  • Formal configuration management

  • Test planning and project stability

  • Metrics


It is sobering because those are very similar to the starting recommendations offered by agilists today. Clearly we agilists are not unique in requesting these items--good project managers have been requesting them (and getting ignored) for a long time. I show that list so that we don’t have to re-hash the past yet again. I assume you will take of those things.



More interesting than rehashing the past is deciding how to move forward. To this end I present how software engineering is being revised to take account of what has been learned in the agile movement. It indicates where we should put our attention in the next decade.



Leaving aside navel-gazing questions concerning the definition of the term “software engineering,” but getting straight to the point, the new variety of software engineering is built on three legs:




  • Craft

  • Cooperative gaming

  • Lessons from lean manufacturing


Craft


Doing a bit of research [2], I found that the term “engineering” prior to the World War II-contained elements of craft, both in field practice and in academia. During the war, applied physicists amazed everyone with what they could do, with the result that engineering academia started emphasizing the mathematical aspects of engineering rather than the craft aspects.



We are seeing renewed attention to the craft aspects of our profession. Being in a craft profession brings with it certain expectations, such as lifelong learning, or “deepening” the proficiency in one’s craft. Programmers shouldn’t think that just because they once learned to program a computer, their programming skills are still sufficient. Craft professionals, programmers, project managers and others should always be looking to learn new tools and techniques, and get better in the ones they have.



In software development, we can immediately name seven craft specialties:




  • Deciding what to build

  • Modeling

  • Managing the people and the project

  • External design

  • Large-scale design (architecture)

  • Fine-scale design (programming)

  • Verification and validation


In other disciplines, the technical craft set will vary, but managing the people and the project remain. For project management, it should mean that people are not simply assigned to project management positions from off the street or out of their programming cubicle, but rather they enter the position in recognition that they are at the starting stage of a new craft and skill set.



At the moment, what concerns us is that people are not interchangeable, nor are skill sets. Each involves life-long learning.



Cooperative Gaming


When people develop software, they are working to understand a problem that they don’t fully understand, and which keeps changing underneath them. They are inventing a solution that they don’t fully understand and which keeps changing underneath them. They are forced to use contrived languages that they don’t fully understand, and which keep changing underneath them. Each person is making decisions, each decision causes a ripple of economic consequences--and the project is economically constrained.



To rephrase that in a pithier way, software development is a cooperative game whose purpose is to deliver working software. The moves in that game are only to invent and to communicate to other people and to the computer.



Considering software development an economically constrained cooperative game of invention and communication helps us understand project management. It highlights that:




  • Every game and every situation are potentially different--there is no formula for winning the game. Different, even opposite strategies may be needed at any instant.

  • The quality of a move in the game is not absolute, but rather is only relative to how it improves the position of the team for its next move.

  • The quality of community and communication among the team members matter enormously--they often make the difference between success and failure.


These lessons are immensely valuable for the project manager. Rather than pushing for “complete requirements” or a “complete design”, the project manager should be asking, “How many requirements, and at what quality level, do we need now so that we can get to a good position for our next move, considering the time and resource constraints we have on us at this point?”



The answer to that question varies by project and even by moment in a project. Sometimes, the answer is “relatively complete” (for fixed-price contracts). Sometimes it is “just a few, medium quality” (for certain internally funded projects); at other times it is anything in between. The same question applies to completeness and quality of the different elements of the design, of testing, of the project plan itself.



The cooperative game idea also highlights the importance of people, their talents, their skills and their interactions. Their interactions are important because people at odds with each other withhold information. Every piece of information not exchanged costs the project lost time.



In capsule form, the speed of the project is limited by the speed at which information flows between people. Everything that slows the movement of ideas between people slows the project!  Bad attitudes slow projects, distance slows projects and certain communication tools help more than others. This is why agile developers have their own preferred communication tools [3] (for example, information radiators [4]).



The cooperative gaming lexicon is rich, and I will draw more from it in the next column.



Lean Manufacturing


It is not immediately apparent that manufacturing has anything in common with software development. Manufacturing is all about making the same thing over and over, while software development is all about making something different each time.



If, however, we consider decisions as the thought-worker’s version of parts inventory, then suddenly we see that people hand other people decisions, people wait on each other for decisions, and some people have a bigger backlog of decisions than they can handle at the moment. Examining the dependency network of decisions in play in an organization, we see that this network is very similar to the dependency network of parts in a manufacturing plant. Quite surprisingly, the same mathematics applies to the situation, and many of the same strategies apply: just-in-time, pull, continuous flow and so on.



I will need one entire column to describe the application of lean manufacturing to project management. In the meantime, other people have written quite a lot on this topic [5, 6]. In the next columns in this mini-series, I will develop these ideas more, and show how they drive project management, whether agile, adaptive, neither or both.



[1] Brown, N., “Disciplines Delivering Success,”STC 1997.


[2] Cockburn, A., “The End of Software Engineering and the Start of Economic Cooperative Gaming”


[3]Cockburn, A., “What the Agile Toolbox Contains,” online at http://www.stsc.hill.af.mil/crossTalk/2004/11/0411Cockburn.html


[4] Cockburn, A., “Information Radiators”, online at http://alistair.cockburn.us/index.php/Information_radiator


[5] David Anderson’s site: http://www.agilemanagement.net/


[6] Mary and Tom Poppendieck’s site: http://www.poppendieck.com/publications.htm




Dr. Alistair Cockburn was named one of “The All-Time Top 150 i-Technology Heroes” in 2007. He is an internationally renowned project witchdoctor and IT strategist, best known for co-authoring the Manifesto for Agile Software Development and articulating how to write effective use cases. His specialties are organizational redesign and project management strategies using agile and lean principles. You might enjoy getting pleasantly lost among his many articles and talks posted at http://Alistair.Cockburn.us. http://www.gantthead.com/content/articles/





[gallery]