Showing posts with label Java. Show all posts
Showing posts with label Java. Show all posts

Saturday, August 31, 2013

50% off on all O'Reilly books in Back to (Tech) School Sale


By Vasudev Ram

O'Reilly Media is conducting a sale - 50% off on the price of all O'Reilly books. The sale is on until 10 September 2013.

They are calling it the "Back to (Tech) School Sale".


Back to (Tech) School Sale

You can click on the banner above to go to the site for the O'Reilly books sale.

Disclosure: it is an affiliate link, so I will get a small percentage of the sale value, since I recently became an O'Reilly Media affiliate under their Affiliates program for bloggers. More on that in a follow-up post, but let me say for now to my readers, that I'll use the affiliate feature judiciously, so as not to clutter up my blog with too many ads.

I also took a look at the sale site myself. It was interesting to see the variety of books (*) on display (many of which I have bought and read in the past), and also the fact that the O'Reilly book "Learning Python" was among the bestsellers shown.

(*) They do have a large variety and number of books. I have been buying and reading O'Reilly books for many years now, almost from the start of my career, so I've seen that they have books for many of the popular programming languages, such as C, C++, Python, Java, Scala, Perl, Ruby, JavaScript, etc., as well as books on many other programming, system administration, web design and other computer topics.


Back to (Tech) School Sale


There are 7000 titles on sale.

This is a good opportunity to pick up some good O'Reilly books at half the cost.

And if you're an author or aspiring author yourself, you may wish to check out my xtopdf toolkit for PDF creation from other file formats. xtopdf includes a few tools for creating PDF ebooks, such as PDFBook.py, which lets you create a PDF ebook from a set of chapters stored in text files, and XMLtoPDFBook.py, which lets you create a PDF ebook from a set of chapters stored in XML format. xtopdf is released as open source software under the BSD License, so it is free for any use, commercial or non-commercial.

Packt Publishing of the UK/India uses xtopdf in their book production workflow, and the Software Freedom Law Center (SFLC) of the USA uses xtopdf for their e-discovery work (as I've been told by people from Packt and SFLC respectively). xtodf is written in Python and uses the open source version of the Reportlab toolkit.

Here is a guide to installing and using xtopdf, which can help you get started with creating PDF books using it.

Here are two posts about XMLtoPDFBook:

Create PDF books with XMLtoPDFBook.

XMLtoPDFBook now supports chapter numbers and names.


Read all xtopdf posts on jugad2.

Read all Python posts on jugad2.



- Vasudev Ram - Dancing Bison Enterprises


Contact me

Saturday, May 25, 2013

CloudJee from Pramati: Java apps in the cloud

CloudJee | Mission Critical Java Apps in the cloud

CloudJee is a Java cloud apps company/product from Pramati, an Indian software  company.

http://www.cloudjee.com/customers

http://pramati.com/about

http://m.prnewswire.com/news-releases/announcing-cloudjee-the-proven-cloud-platform-for-building-mission-critical-java-saas-applications-208471431.html

I remember Pramati from the early days of Java and J(2)EE. They were the first and maybe the only Indian company to create a J2EE (Java 2 Enterprise Edition - now called JEE) application server. Interesting to see that they have been existing all this while, and have come out with CloudJee.

CloudJee/Pramati also recently acquired WaveMaker, a tool for building Java apps, from VMware, and have integrated it into CloudJee.

http://gigaom.com/2013/05/01/vmware-garage-sale-continues-as-it-offloads-wavemaker-to-pramati/

- Vasudev Ram
dancingbison.com

Wednesday, February 27, 2013

Codingbat, Progress Graphs and Michael Jordan



codingbat.com is an interesting site where you can practice your programming skills in Python (newer) and Java. It was earlier called JavaBat but the name was changed to codingbat after Python problems were added.

About codingbat

Excerpt from above page:

[ CodingBat is a free site of live coding problems to build coding skill in Java, and now in Python (example problem), created by Nick Parlante who is computer science lecturer at Stanford. The coding problems give immediate feedback, so it's an opportunity to practice and solidify understanding of the concepts. The problems could be used as homework, or for self-study practice, or in a lab, or as live lecture examples. The problems, all listed off the CodingBat home, have low overhead: short problem statements (like an exam) and immediate feedback in the browser. ]

These two excerpts give some good reasons why the site is useful:

[ Theory -- Coding in the Large and Small

To excel in Java, or any computer language, you want to build skill in both the "large" and "small". By "large" I mean the sweeping, strategic issues of algorithms, data structures, ... what we think of basically as a degree in Computer Science. You also need skill in the "small" -- 10 or 20 line methods built of loops, logic, strings, lists etc. to solve each piece of the larger problem. Working with students in my office hours, I see what an advantage it is for students who are practiced and quick with their method code. Skill with the method code allows you to concentrate on the larger parts of the problem. Or put another other way, someone who struggles with the loops, logic, etc. does not have time for the larger issues. ... ]

[ Coding Practice
If you want to build skill in running, what do you do? You run. To build skill in method code, write methods. Ok, that's pretty obvious, but with this site, I'm trying to create an environment where people can concentrate on the coding with nothing else to get in the way. With all the surrounding structure taken care of, you can get a lot of coding practice done in just an hour or two. ... ]

The Progress Graphs feature of codingbat is cool. The author has a good quote in that page:

[ My favorite graphs are like the one above. The person is taking on a problem which is a challenge, and so there are lots of failed attempts. What's most important is that they do not give up; they keep working at it, and eventually figure it out. Step by step, that's how you learn. If a graph is really short, the person was probably not challenging themselves.

I've missed more than 9000 shots in my career. I've lost almost 300 games. 26 times, I've been trusted to take the game winning shot and missed. I've failed over and over and over again in my life. And that is why I succeed.
- Michael Jordan ]

Michael (Air:) Jordan



I came across codingbat recently and tried out a simple Python problem on the site; here is the progress graph for it. You will have to sign up for the site before you can see that graph; signing up is free.

CodingBat sleep_in Progress Graph

- Vasudev Ram

Friday, January 11, 2013

pyelasticsearch and elasticsearch, distributed search based on Lucene


pyelasticsearch 0.3 : Python Package Index

pyelasticsearch is a Python wrapper for the elasticsearch distributed search engine (based on Apache Lucene). It communicates with elasticsearch via JSON.

http://pyelasticsearch.readthedocs.org/en/latest/

http://www.elasticsearch.org/

elasticsearch is an Open Source (Apache 2), Distributed, RESTful, Search Engine built on top of Apache Lucene.

The company behind elasticsearch:

http://www.elasticsearch.com/

- Vasudev Ram
www.dancingbison.com

Big Java security issue for PC users?

Experts urge PC users to disable Java, cite security flaw | Reuters

Bad if true.

Saturday, December 29, 2012

Favorite Devops Borat tweet of the year

Twitter

Hilarious, while being a comment on what  enterprise Java is today, vs. what it could have become.

Friday, September 21, 2012

Java anti-patterns

Java's FactoryToCreateFactoryToCreateFactory ...

By Vasudev Ram


Interesting critique of Java.

- Vasudev Ram - Dancing Bison Enterprises


Tuesday, September 4, 2012

The Spread toolkit for distributed computing

By Vasudev Ram


The Spread toolkit seems interesting. I just saw it. It is a toolkit for distributed computing. It supports C/C++, Java and Python.

Excerpts from the site:

[ Some of the services and benefits provided by Spread:

Reliable and scalable messaging and group communication.

A very powerful but simple API simplifies the construction of distributed architectures.

Easy to use, deploy and maintain.

Highly scalable from one local area network to complex wide area networks.

Supports thousands of groups with different sets of members.

Enables message reliability in the presence of machine failures, process crashes and recoveries, and network partitions and merges.

Provides a range of reliability, ordering and stability guarantees for messages.

Emphasis on robustness and high performance.

Completely distributed algorithms with no central point of failure. ]

Spread Credits (people who worked on Spread.)

The Spread license.

Spread Concepts, the company behind the Spread toolkit.

About Spread Concepts.

The Spread Concepts Team. They seem to have good backgrounds.

- Vasudev Ram - Dancing Bison Enterprises

Friday, August 31, 2012

ICE from ZeroC, a cooler and lighter CORBA

By Vasudev Ram



I had come across ICE from ZeroC some time ago.

[ UPDATE: Customers of ICE / ZeroC. They seem to be doing well since I last checked them out. The customers include (mentioning only some well-known ones): GE Healthcare, Digium (creator of Asterisk, open source PBX/telephony software, Lockheed Martin, SGI, Northrop Grumman, Hewlett-Packard, and Boeing/SAIC. ]

ICE - Internet Communications Engine, from ZeroC.com, is (excerpts):

[ a distributed computing platform with support for C++, .NET, Java, Python, Objective-C, Ruby, PHP, and ActionScript. Ice is used in mission-critical projects by companies all over the world.

Ice is easy to learn, yet provides a powerful network infrastructure and vast array of features for demanding technical applications.

Ice is free software, available with full source, and released under the terms of GNU General Public License (GPL). Commercial licenses are available for customers who wish to use Ice for closed-source software. ]

It also has support for Android, the .NET Compact Framework, Red Hat Enterprise Linux 6 and Amazon Linux.

- Vasudev Ram - Dancing Bison Enterprises

Friday, August 24, 2012

Paul Lutus's software work and round-the-world sail journey

By Vasudev Ram


I was reminded about Paul Lutus (whose work I had come across some years earlier, specifically, his free HTML editor, Arachnophilia, which was good), by reading his comments in a Hacker News thread.

UPDATE: I forgot to mention - what I saw on his Wikipedia page - that he was the creator of the best-selling Apple Writer word processor for the Apple II - which was probably one of the initial reasons for Apple's products becoming a big hit in the mid-1970's or so. (On a personal note, I've worked on some of the home computers from those days, including the Apple II, the Commodore 64, the Sinclair Spectrum, the BBC Micro and the IBM PC Jr. Most of them were great fun to use and write program on, though of course much less powerful than today's PCs. But the software on them tended to be very well written, efficient and fast, in comparison to a lot of the bloatware one comes across nowadays).

I saw that the HN username of one of the commenters was lutusp, and that made me remember his site and Arachnophilia.

The thread itself, and the post that sparked it, are interesting in their own right.

The post that sparked the HN thread:

Selling $2,000+ Worth Of My Unfinished Book (planscope.io)

HN thread about the above post

Then I googled for more info, and came across his web site and a Wikipedia page about him, both of which I found interesting. I did not know earlier that there was a Wikipedia page about him. It has some interesting info, apart from his software stuff, about work he did for NASA, etc.

Paul Lutus Wikipedia page

Excerpts from his Wikipedia page:

[ Before becoming a software author, Lutus designed electronics for the NASA Space Shuttle[1] and created a mathematical model of the solar system that was used by the Jet Propulsion Laboratory during the Viking Mars mission. ]

[ Between 1988 and 1991 Lutus sailed solo around the world in a 31-foot sailboat. His book about the sail, Confessions of a Long-Distance Sailor is available for free on his website.[7] ]



Paul Lutus web site

Some of the software written by him:

RPN (Reverse Polisn Notation) calculator in Python

Signal Generator (three versions of this program, in Python and Java, among others)

The Python version of SignalGen

A scientific / financial calculator

There are many other programs available on his site, most or all of which are free to download, run and study. Linux, Java, Python, and Ruby are some of the topics on his site. I have not checked all the links yet, but probably many of them have software to check out.

I downloaded his round-the-world sailing book and am going to read it over time :)

- Vasudev Ram - Dancing Bison Enterprises

Tuesday, August 7, 2012

PDFTextStream now free for single-thread apps

By Vasudev Ram



PDFTextStream is a library for extraction of text from PDF files. According to their site, "PDFTextStream is used by companies and governments around the world to process billions of documents yearly".

UPDATE: Just saw this on the PDFTextStream site - which should make it of interest to a broader audience:

[ Being a Java library, PDFTextStream may be used by any JVM language that supports interoperability with Java APIs, including Clojure, Scala, Groovy, JRuby, Jython, and so on. ]

PDFTextStream is a product of Snowtide Informatics Systems, Inc., which was founded by Chas Emerick. Chas is also a co-author of Clojure Programming, an O'Reilly book about the Clojure programming language.

I first researched libraries for PDF text extraction some years ago, for a consulting project. I did not use PDFTextStream then, because I had not come across it. (I ended up using xpdf, which is also quite a good library (in and for C), and had good technical support - they even quickly fixed a bug or two that I found while trying it.)

But even after that project was over, out of interest, I would search for other such libraries once in a while, and so I came across PDFTextStream.

It was a somewhat expensive library then, IIRC, and still is. But now it is now free for use in single-threaded applications.

It has versions for the Java JVM and .NET.

Download PDFTextStream here.

- Vasudev Ram - Dancing Bison Enterprises

Friday, August 3, 2012

Plumbum, UNIX shell-like library and tool in Python

By Vasudev Ram


Plumbum is a Python library and tool to sort of emulate UNIX shell and pipes in Python. (I had blogged or tweeted earlier about a few different approaches to this.) Plumbum is creatively named - the word is Latin for lead, which was used to make pipes in earlier days.

You can read the Plumbum documentation here.

The creator of Plumbum is Tomer Filiba, who also created RPyC, a Python RPC library and tool, roughly similar to Pyro. Both RPyC and Pyro enable remote Python objects, allowing you to do something like what XML-RPC, CORBA and Java RMI do, i.e., communicate between functions or objects running on different machines in a network.

- Vasudev Ram - Dancing Bison Enterprises

Sunday, April 29, 2012

Using Java Runtime.exec to invoke UNIX commands

http://jonisalonen.com/2012/runtime-exec-with-unix-console-programs/

Nice tip. Java's Runtime.exec() method can be useful to invoke external tools from your code.

I once had the idea for, and created, a utility that had a Java servlet (with an HTML form as front-end) calling a UNIX (HP-UX) C setuid program that enabled developers in my team to stop and restart Informix database servers without knowing the DB server admin password. UNIX C setuid programs are quite useful for giving less privileged OS users restricted / controlled access to privileged operation, as in my example.

Writing C setuid programs involves many potential security issues, though. Mine was deployed in a corporate environment behind firewalls, so had relatively less risks. If you're writing a setuid program for public Internet use, make sure to do a lot of research about the issues and how to mitigate them.

- Vasudev Ram
www.dancingbison.com
 

Monday, March 26, 2012

Rich-layout ebooks with EPUB3, HTML5 and CSS3


http://www.ibm.com/developerworks/library/x-richlayoutepub/index.html

The article is by Liza Daly, VP Engineering, Safari Books Online. It also links to an earlier EPUB tutorial by Liza, which uses Java and Python.

- Vasudev Ram
www.dancingbison.com
twitter.com/vasudevram

Friday, March 23, 2012

Hecl, mobile scripting language

http://www.hecl.org/

It looks interesting, though not new.

- Vasudev Ram
www.dancingbison.com

Thursday, October 6, 2011

Webify any desktop app quickly (conditions apply)

By Vasudev Ram - dancingbison.com | @vasudevram | jugad2.blogspot.com

Brilliant article by Cameron Laird ( @Phaseit on Twitter ):

Take your desktop application to the web in 15 minutes:

http://www.softwarequalityconnection.com/2011/10/take-your-desktop-application-to-the-web-in-15-minutes/

In brief, it describes how to quickly web-enable almost any desktop software application, for most operating system platforms, without modifying their code, mostly just by using VNC, a web server (almost any web server will do, including the one your organization currently uses), and a web page.

Note: this is not necessarily for a production, robust version of the web-enabled app. It is mainly to create a working web-enabled version of the app, and then use that as a basis for further improvement of various kinds, including helping with deciding on a production web-enablement approach.

The article is self-explanatory and definitely worth a read, for lots of people in the software field.

Posted via email

- Vasudev Ram @ Dancing Bison

Tuesday, September 27, 2011

Microsoft to switch back to ODBC from OLE DB, say reports

By Vasudev Ram - dancingbison.com | @vasudevram | jugad2.blogspot.com

Surprising as it may seem, Microsoft may switch back to ODBC from OLE DB.

I read about this a few days ago on the Net.

Here are some relevant links to the news about Microsoft going back to ODBC.

From the Microsoft SQLNCli team blog (I guess SQLNCli stands for SQL Native Client):

Microsoft is Aligning with ODBC for Native Relational Data Access:

http://blogs.msdn.com/b/sqlnativeclient/archive/2011/08/29/microsoft-is-aligning-with-odbc-for-native-relational-data-access.aspx

From the blog of Hal Berenson, former Distinguished Engineer and General Manager, and who, in his own words, "was both a godfather of the OLE DB strategy and responsible for the SQL Server implementations that have now been deprecated":

OLE DB and SQL Server: History, End-Game, and some Microsoft "dirt":

http://hal2020.com/2011/09/25/ole-db-and-sql-server-history-end-game-and-some-microsoft-dirt/

Interesting stuff. I had worked some years ago on a middleware product that involved ODBC - that sat on top of ODBC, actually (*). One of its main goals was to improve the performance of ODBC-based client-server applications. (Another goal was a more programmer-friendly API for application programmers working on client-server projects that used ODBC, in Visual Basic as well as C.) The product was a success, and was deployed in several large client-server projects of the company I worked for at the time.

Also, the Java JDBC API and the Perl and Python DBI API's were probably influenced quite a bit by the architecture / design of ODBC. (This is what I think, based on having studied and worked on both ODBC and JDBC a good amount, and some on the Perl and Python DB APIs). It (ODBC) was a pretty good technology for its time, and was very extensively deployed and used (almost universally, in fact, for client-server database applications), during the heyday of the client-server period of computing - though native database drivers were also used a lot then.

Interesting to see that Microsoft is now moving back to it - presumably, to improved versions of it, suited to today's requirements.

(*) If you are wondering how another software layer on top of ODBC could improve performance of ODBC apps, rather than only make it worse (due to more overhead of the extra layer), think a bit more. It may sound counter-intuitive, but is possible - it actually happened.

Posted via email

- Vasudev Ram @ Dancing Bison