Sunday, January 2, 2011

Offline Desktop Blog Clients for Linux

Live Writer works like Microsoft Office (or OpenOffice Writer), once you're done writing your document, you can simply Save, and/or Publish to your blog.

I have Live Writer installed on my XP slice that I run on my linux laptop. Running Virtual Box does take away CPU when running XP - and frankly I wanted to be able to use Linux for all my needs.

I was disappointed. After using several offline desktop oriented blog clients for Linux , the verdict is that none of them offer the features that LiveWriter does.

GnomeBlog (Blog Entry Poster)

 

This is the User inteface - it is minimal, does not have off line save options, cannot be used by any serious blogger.

 

 

If you're looking to post casual updates, almost tweets or micro blogs - from your desktop then this may be a fit. But why bother? Just get a Twitter account and use TweetDeck that runs on Adobe Air.

GTKBlog


For some reason GTK blog looked attractive but would never run on Ubuntu10.10 - I did not bother to find out why. I did get a screen shot from their website.

rohit@lenovo:~$ blogtk

Traceback (most recent call last):

  File "/usr/bin/blogtk", line 14, in <module>

    import gtkhtml2

ImportError: No module named gtkhtml2

Ok -so its missing some dependencies - and needed to be installed - it wasn't there in the repos. I don't want to compile it from source. Just.

ScribeFire

So I proceed to install ScribeFire - which is an add on to both Chrome and Firefox.

 

Let's you open it from Chrome (or Firefox) and lets you manage the text offline.  

You CANNOT place images in Offline mode. This is a huge flaw.

 

Drivel Journal Editor

 

Drivel has more features but does not handle images in offline mode with any grace.

Drivel, too cannot manage images without being connected to the Internet. 

Conclusion

None of the Desktop Blog clients on Linux manage images offline with any grace. LiveWriter from Microsoft is superior to all Linux Desktop clients that I have used.

If you were to still choose, I would go with ScribeFire. Hope that someone will take the time to upgrade or write a new Desktop blog client in 2011.

Thursday, December 23, 2010

DreamWeaver 3: how to publish (1999)

Here's a tutorial I had written back in 1999 when managing web-sites was a big thing and Dreamweaver was the most advanced tool on the market

 Go to Sites>Define Sites

You will see this window

Click on New

 

Fill it out as follows

 

Now after you fill out the Local Info. Fill out the Web Server Info

 

 

Good. Now fill out the Check-in Check out window info

 

Site map layout is next

 

 

Home Page: enter your own path to the index.html that lives on your hard drive. (in the above picture I store it in a a folder called rohitsood.com which is in a folder called www which is under a folder called MyFolder in C drive). Give your own path or browse to it.

 

Next few settings are simple

 

 

Click OK and Done. You can connect and “checkout” the site. From Dreamweaver.

 

 

 

 

Monday, December 6, 2010

Dream Act will Support Small Business and Entitlements

In the next two decades America will see a structural shift and displacement of its demographics that it hasn't experienced in the past 50 years. Baby Boomers will retire and depend heavily on entitlements like Medicare and Social Security. A significantly contracted workforce will threaten the stability of the United States government and it's global economic power.
Fast Forward 2010: Immigrants Have a Dream

Structural adaptation, and realignment is going to be desperately needed starting 2011.

The Dream Act, that is currently stalled in Congress, will boost small businesses and the American economy over the next decade. The bill indirectly provides necessary relief to citizens and retirees. Here's why: as children of immigrants in schools and colleges across America graduate - a permanent residence status ("Green Card") will legally permitted them to start small businesses all over. This educated and skilled workforce will provide, fill and generate jobs at all scales of businesses and support entitlements via taxation. However, a vast majority of the American population feels threatened by a misguided notion that illegal immigrants hurt the economy and legal immigrats "take our jobs". The immigration grid lock over the past 10 years has led to a brain drain via "outsourcing" of services and manufacturing. This is not sustainable. Continuing to penalize children of immigrants is not a good way to move forward.
The Dream Act supports children of illegal immigrants to gain a status that allows them to work, open a business and go to college in the United States.

We need to legalize the next generation so they can support small businesses.

Our greatest danger is to brand children of immigrants and college graduates from other countries as "aliens" who need to "go back". A regression in a skilled workforce will cause a stagnation in the U.S economy. If the policy of the new congress is to promote a reverse brain drain via a strategic policy of inaction, future congresses will face an imminent threat of economic depression. It is in our best strategic interest to allow future hardworking children of immigrants in America to realize the American Dream.  

Sunday, December 5, 2010

InoxMovies.com - an example of what NOT to do

One message for "InoxMovies.com" : Establish an Exception Handling Architecture

 


Server Error in '/' Application.

Server was unable to process request. --> Object reference not set to an instance of an object.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Web.Services.Protocols.SoapException: Server was unable to process request. --> Object reference not set to an instance of an object.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:

[SoapException: Server was unable to process request. --> Object reference not set to an instance of an object.]
System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall) +431766
System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) +204
WebReference.SeatBook.ShowSeats(Int64 TheatreId, Int64 BookingId, String ShowClass, Int64 NoOfTickets, String PartnerId, String PartnerPwd) +195
seatlayout.Seat_Layout() +743
seatlayout.Page_Load(Object sender, EventArgs e) +3161
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
System.Web.UI.Control.OnLoad(EventArgs e) +99
System.Web.UI.Control.LoadRecursive() +50
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627

 


Version Information: Microsoft .NET Framework Version:2.0.50727.3603; ASP.NET Version:2.0.50727.3082

 

Wednesday, December 1, 2010

Removing Oxy Mouse Pointer

I have been using Linux off an on for the past 10 years for personal needs. Having never tried KDE, I installed it on the latest Ubuntu distribution. It is quite fancy and has lots of good features, however it has its share of issues too.
Surprisingly one of the features leaked into my Gnome sessions: the mouse pointer.

For whatever reason KDE's Oxygen theme with its weird mouse pointer would refuse to go away in Gnome - no matter how much I tried changing the theme.

rohit@lenovo:~$ uname -a
Linux lenovo 2.6.32-24-generic-pae #42-Ubuntu SMP Fri Aug 20 15:37:22 UTC 2010 i686 GNU/Linux

After scouring the net, and not finding much help I decided to "reset"; this turned out to be difficult as well. No matter which other default theme I selected, it still did not remove the offending pointer style. Oxy persisted. Here's what worked - I  removed the theme files under ~/.theme. Brutal, but it works. Now I have a nice black pointer.

Sunday, November 28, 2010

COTS versus OSS: Why

Open Source versus Commercial Software is an important consideration that is often overlooked. This article provides a high level overview of open source considerations.

Open source is being adopted by developed nations and corporations at a greater pace than developing economies. Organizations of all kinds are consciously adopting open source software for critical business needs: Deutsche Börse Group, Deutsche Bank, the Danish government, BlueScope Steel, NASA, the Associated Press, J.P. Morgan Chase and Google.

There have been many government initiatives around open source software, as governments in Brazil, China, India, Korea, Japan, Europe, Australia and the United States, as well as the United Nations, considers open source policy and options. And large information technology vendors such as IBM, Intel, Hewlett- Packard, Oracle, SAP, Sun Microsystems and Dell are supporting open source (Gustafson, Koff n.d.).

What is the catch? Like all software – open source too has its costs. Maintenance and support costs are left to the adopter to absorb. Koch (2003) elaborates, just because you download open-source applications for free doesn't mean you won't have a whole host of associated costs such as maintenance, integration and support. Security concerns have often been raised “because anyone can see the code” is debatable. This notion is easily dismissible.

Licensing can be tricky for smaller companies who are vulnerable to lawsuits through lack of indemnity in open source products. The “as-is” aspect of open source software is risky. There is a possibility that part of open source software “copied code” from some other licensed product. It is very difficult for the companies to identify or compare open source with licensed software products to identify theft. This exposes the company using open source software to lawsuits from companies claiming that the open source software violates their intellectual property rights. New markets and emerging economies should take note of this risk.

Price is another factor: since open source software can be traded in markets just like any other kind of artifact one cannot definitely tag open source software as having zero price, explain Scacchi (2003). Programmers often explain this seemingly incongruity with simple shorthand: when you hear the term “free” software, think “free speech” not “free beer”; or ‘software libre’ not ‘software gratis’. The fact that open source software is free can be confusing to skeptics and adopters. Scacchi (2003) explains the meaning of “free” in open source software. He elucidates that “Proprietary source code is the touchstone of the conventional intellectual property regime for computer software. Proprietary source code is supposed to be the fundamental reason why Microsoft can sell Windows for around $100 or why Oracle can sell its System 8 data management software for many thousands of dollars”. Open source software process “inverts this logic” (Scacchi 2003).It differs from commercial software in one fundamental aspect – source code is distributed with the runtime binaries of open source products. All documentation, source code and the runtime binaries are provided by the development community for free.

Adopters must be able to bare the hidden costs associated with open source software. The success of open source software is surprisingly not attributed to its zero monitory cost of purchase. Schadler (2004) attributes the success of open source to high availability, self-training opportunity, and support. He contrasts this with commercial software and underlines the non-availability of software and self-training.

Although open source is free, it is not free of obligations and lack of guaranteed support. This makes it less attractive for emerging economies and risk averse entities. Just as free speech is not intended primarily for oppressed dictatorships, in the same way open source is not intended for poor or developing nations and economies alone. Not only emerging economies, but all types of economies and corporations should consider a policy of open source software adoption.

Saturday, October 16, 2010

Support Open Source Initiatives

A survey by Boston Consulting Group in of developers using SourceForge found that respondents were, on average, 30 years old and had 11 years of programming experience. These were experienced professionals contributing to quality software products for free. Open Source is so pervasive now that people don’t talk about it or discuss it anymore. The assumption is that quality software will continue to be available for free. Without donations and support this is not possible, especially in tough economies. I have been an active user of OSS at work for almost every single project. Software development projects utilize a plethora of components that are open source. Open Source Object Relational Mapping frameworks, Model-View Controller frameworks to full scale operating systems, application servers and databases are used across business applications everywhere. So what is the basic idea behind the open source movement ?

“The basic idea behind open source is very simple: When programmers can read, redistribute, and modify the source code for a piece of software, the software evolves. People improve it, people adapt it, (and) people fix bugs. And this can happen at a speed that, if one is used to the slow pace of conventional software development, seems astonishing.” (opensource.org)

Community credibility is an underlying motivator for joining an open source project. The lure of open source includes solving technical challenges; drawing of making a contribution the rest of the community can use; the enhanced skills and reputation (marketability) that comes from being an active member of the community; and the potential for providing fee-based services for open source software. Developers are motivated by the opportunity to branch out and work with products they don’t normally work with in their day jobs – say, video programming – and they are also motivated by pure fun (Gustafson and Koff). Every single corporate entity in the U.S. has some open source utilization today in either a desktop environment, server environment, in the cloud environment or all. It exists at all level and is pervasive across the board. OSS is here to stay: did you use an OSS today? If so consider donating to software foundation that supports it.





Sunday, September 12, 2010

Setting up Apache Ant 1.8 in Ubuntu 10.04

There seems to be a lot of incomplete tutorials out there relative to installation and configuration of Ant on Ubuntu. Here is how to do it correctly.

Open .bashrc and add the following lines

#Setting some paths
export ANT_HOME=$HOME/tools/apache-ant-1.8.1
export JAVA_HOME=/usr/lib/jvm/java-6-sun
# Add stuff to the path and export it in one step
export PATH=$PATH:$ANT_HOME/bin:$JAVA_HOME

 

Prerequisites: download ant and expant that into a folder (I use $HOME/tools) for all my tools.

rohit@lenovo:~$ ant -version
Apache Ant version 1.8.1 compiled on April 30 2010

Done.

Point-to-point SOA

p, li { white-space: pre-wrap; }

Service Oriented Architectures realizations are coupling departments within large organizations. Web-Services are being developed without compliance or guidance from any actionable enterprise architecture design. Without a full soup-to-nuts solution architecture template available to teams, well-intentioned developers are unfortunately creating a web of point-to-point systems architectures with SOA tools and technologies.

Vendors, marketing, tooling and technology isn't helping integration architectures evolve and arrive at the optimal quality attribute tradeoffs. Most quality attributes, like loose coupling, high cohesion, performance, scalability etc are skewing negatively.

It cannot be stressed enough that SOA is more dangerous with out a proper design in place, than no SOA at all. WSDL, SOAP, XSD, REST etc are still not properly understood or realized appropriately in many organizations. Basic systems architectures are unable to evolve due to a significant lack of skills, organizational constraints, poor processes, personnel and such.

Thursday, September 2, 2010

A Combination Algorithm

The problem: Write an algorithm that can provide combinations of a given word. The combinations need not contain a new word with the same letters.

Input: ABCDE

OUTPUT: ABCDE, ABCD, BCDE, ABC, BCD, CDE, AB, BC, CD, DE etc.

There are several algorithms out there that describe how to create effective combinations, SEPA does permutations, bubble sort and nested loops etc.

After spending some time looking for what’s been done - the one I liked the most was as follows: [0,0,0], [0,0,1], [0,1,1] [1,1,1]: null, A, AB ABC etc.

Incrementing decimals, start with zero, get a binary representation and map it to the array positions. This will give the combinations in constant time. A very efficient algorithm.

   /**
    * Take a word and return a collection of combinations
    * @param sortedWord
    * @return
    */
   public Collection<String> generateCombinations(String sortedWord)
   {
       Collection<String> c=new HashSet<String>();
       char[] broken=sortedWord.toCharArray();
       int combinationLength=new Double(Math.pow(2L, (new Long(sortedWord.length())).longValue())).intValue();
    //  System.out.println("Combination len="+combinationLength);
       for(int loop=combinationLength-1;loop>0;loop--)
       {
       String binary=fillWithZeros(Long.toBinaryString(loop),sortedWord.length());
       char[] bins=binary.toCharArray();
       StringBuffer wb=new StringBuffer();
       for(int a=0;a<bins.length;a++)
       {
           Integer binValue=new Integer(""+bins[a]);
           if(binValue.intValue()==1)
           {
            wb.append(broken[a]);  
           }
       }
       c.add(wb.toString());
       }

 

While there is a nested loop, the loops can be replaced with other techniques.

This is a very high performance combination creation technique. Comments/Improvements are welcome.

The Human-AI Partnership: Why Mastering Touch Typing is Your Next Generative AI Superpower

Generative AI requires humans to establish thought partnership rather than allow AI to take over critical thinking skills. I believe that ty...