2,494 karma · joined April 18, 2013
I'm Vasudev Ram, an independent software consultant, trainer, and writer, with many years of software experience in multiple technologies and business domains. Software and database design, Python, Flask, SQL and many relational databases, Unix and Linux, PDF generation and the use of many open source tools and libraries, are among my main (current) technology skills, though I've worked on many other areas earlier, such as Ruby, Rails, Java, servlets, C (a lot, on Unix, some on Windows), Visual Basic, and proprietary and higher-end Unix versions (HP-UX and others).
I also have team leadership and project management experience in companies where I worked.
I have a lot of experience on 1) software development projects (spanning different parts of the life cycle, such as requirements, design, development, and testing), and 2) some experience on software product development, in companies (and also increasingly, by my own independent product work).
I was the team leader for a successful database middleware product developed in C on Windows, which was somewhat widely used in client projects.
Programmatic PDF generation is one of my niche interests, and I created xtopdf, a PDF creation toolkit for Python; see this presentation about xtopdf for an overview:
http://slides.com/vasudevram/xtopdf
xtopdf is used by some well-known organizations (and others), including Packt Publishing (UK), the Software Freedom Law Center (USA), and ESRI (NL). I've received email from people from these organizations, telling me that they use and like xtopdf.
Follow me on Gumroad for my software product updates - I will release some products over time (software, books and courses):
https://gumroad.com/vasudevram/follow
If you follow, you will only get email from me when I release a new product or a new version of an existing product.
Web site: https://vasudevram.github.io
Blog: http://jugad2.blogspot.com - about Python, Linux, open source, startups, innovation, ... (see About page there) - running it from 2008, so a lot of posts there.
I've written a few technical articles, which have been somewhat well received, on topics such as C (about developing Linux utilities), Python (about using xtopdf), Linux (about using Knoppix) and vi (a vi quickstart tutorial), on sites like IBM developerWorks, Packt Publishing, and Linux For You. Links to the the articles are available from the About page of my blog (see above) or from my web site (see above).
Posts about Python: jugad2.blogspot.com/search/label/python
Posts about xtopdf: jugad2.blogspot.com/search/label/xtopdf
Posts about DLang: jugad2.blogspot.com/search/label/DLang
Use the same sort of URL as the above 3, to get categories of posts with other labels - just change the label at the end of the URL, i.e the word after the last slash. Or look at the right margin of my blog to find labels for topics of interest (warning - it is rather long).
My Python recipes on ActiveState Code:
code.activestate.com/recipes/users/4173351/
My Bitbucket account (with my open source projects): https://bitbucket.org/vasudevram (all or most there are my own projects, including xtopdf, PDFXMLRPC and PySiteCreator)
My Github account: https://github.com/vasudevram (mainly other people's projects, that I've forked, there, as of now (for me to study); some of my own will be added over time).
Last 2 lines, 735 and 736:
# Start the event loop with the main coroutine
event_loop(main())Time for Greenspun's eleventh rule: ;)
Replace Java with star and that statement still holds true (for some people).
Hence the statement that you can write FORTRAN in any language.
https://blog.codinghorror.com/you-can-write-fortran-in-any-l...
60s grandgeezer here. try waiting a week or two, to find out that your punched card batch job didn't even compile, let alone run, because of a single character typo you made. back to square zero.
kids these days ...
HSQLDB:
https://en.m.wikipedia.org/wiki/HSQLDB
H2:
https://en.m.wikipedia.org/wiki/H2_(database)
PointBase:
https://en.m.wikipedia.org/wiki/PointBase
I have briefly used either one of the first two, I think it was HSQLDB, with Java, years ago.
PointBase was created by Bruce Scott, a co-founder of Oracle, and a few others, including an architect of Sybase. This was in the early days of Java.
All three still seem to exist, according to the links above.
The GoF book (the design patterns book) says in a page right near the start, "Prefer composition over inheritance", in the middle of an otherwise blank page, presumably to emphasize the importance of that advice.
As others have replied, composition is one technique you can use in OOP, not something that is the opposite of OOP.
You can also use composition in non-OOP procedural languages like C, by having a struct within a struct.
https://www.google.com/search?q=can+you+have+nested+structs+...
https://dictionary.cambridge.org/dictionary/english/denounce
In India, chili chicken (probably spelled chilli chicken) is an Indianised-Chinese dry starter or appetizer kind of dish, of small pieces of chicken stir-fried with a tangy dry coating / sauce that includes ginger, garlic and red chillies. You can get vegetarian versions too, like paneer chilli. That coating / sauce is really good. It has tiny solid bits and pieces of ginger and garlic which adds to the taste.
You get it in (Indian) Chinese or multi-cuisine restaurants.
I thought / have observed that the spelling "chili" (single letter l) was used for the US / Mexican dish called "chili con carne", and the spelling "chilly/chillies" was used for the hot pepper that came from the Americas and spread to much of the world.
Edit: Wikipedia says both spellings are used for the hot pepper:
https://en.m.wikipedia.org/wiki/Chili_pepper
Edit 2: See the Spelling and usage section.
It does not mention the y ending, but I have seen it in India.
That's a little surprising, considering that the classic first book about C, K&R was first published in 1978 and again in 1988, the first and second edition, respectively.
One of the editions, maybe the first, had a simple hash table implementation, that just summed up the ASCII values of the characters in the given string, modulo some value, and used that as the key for the string being hashed.
.
(from it).
https://news.ycombinator.com/item?id=13264041
It's about the IBM PC Jr., which I had, and on which I wrote a lot of hobbyist code.
Mostly in the built-in BASIC, but some in Logo too (which I did not mention in the post). Logo came with the Jr. It was fun to program in.
The post also links to Mike Brutman's PC Jr. page, a retrocomputing site.
I has emailed with him about our common interest in the Jr.
can is the operative word, not is. Thinking of that other word, the m-word, that sounds like nomad. ;)
/jk
Y. Also:
s/ush/esume
I read it some years ago, so don't remember for sure about the dogma bit, but it likely does not have much of that.