HN user

atlei

49 karma

Founder PpcSoft (www.ppcsoft.com)

Posts3
Comments37
View on HN

From Wikipedia:

"The term patent usually refers to an exclusive right granted to anyone who invents any new, useful, and non-obvious process, machine, article of manufacture, or composition of matter, or any new and useful improvement thereof, and claims that right in a formal patent application. "

In my opinion, the key part is the non-obvious part of "new, useful, and non-obvious"; the invention of a new medicine is usually non-obvious, but the invention of Amazon 1-click shopping is obvious (in hindsight).

What is "non-obvious" ? If a single individual can come up with a similar solution (without access to the underlying research/data involved in the patent) in a short amount of time (a week, or at least in a DAY in the 1-click example) it does not represent a significant investment.

There should also be a requirement that the idea is implemented to be able to sue others. You may stop others' implementation if you have a patent, but you should not be able to charge them for anything until you have implemented a working solution yourself (to avoid patent trolls).

Or simply use the KISS principle and remove all software patents once and for all !

I've been using Opera as my main browser for years, but also uses Chrome and Firefox.

Chrome; very fast, but crashes too often, and uses a LOT of memory (and messes up my Task Manager)

Firefox; lots of interesting add-ons, but slow and memory-hungry (and too often updated, with too many unstable updates)

Opera; very fast, very stable, best with regards to memory use. However, has problems with a few web sites (not compatible, maybe because they haven't tested "leading edge" technologies on Opera ?)

Step 1: Get all Mac/iPhone/iPad users to use the iCloud

Step 2: Integrate API (with access to your data) and a MacCloud Store

Now, it doesn't matter if you purchase software using your iPhone/iPad, Mac or the cloud; Apple will get 30% of all purchases anyway. Brilliant !

How about two options:

- Agree/Disagree buttons/links

- High/Low quality buttons/links

This way it is easier to separate if you upvote because you agree or because you think it is a high-quality contribution (even if you maybe disagree). Karma (if kept) should probably just be based on quality score, not on agree/disagree ?

In addition, showing a score in percent/color relative to the other scores in the same discussion ?

Edit: You should probably also separate between "article/submission" karma and comment karma, as some submissions of old articles get lots of karma, while the relative karma of quality comments often are much lower ?

Yes, it is very important that quality articles are suggested, but this is much easier than contributing quality comments (which is time-consuming, especially for non-native english speakers)

Very true; I realized this myself a couple of months ago, and reorganized my blog as follows:

- main page shows categories and a chronological list of posts (I don't post that often; if you do, maybe list the last 30-50 only ?) in the right sidebar

- each category gets an index-page with introduction and 3 articles highlighted, and a a list of all articles in the category in the left sidebar. The highlighted articles (new and old) should change every now and then, maybe somewhat depending on "the latest fads" ?

- most important (IMHO); go back to your old articles and update them, especially hyperlinks - this will also aid the discovery of "evergreen content"

In addition, you should probably also use tags (I don't, but that's just because I'm lazy and don't have that many articles).

You may also collect related articles in e-books (I've done it with one of the categories, but it is a lot of work) - less SEO value, but maybe more "reader value" ?

(personally, for blogs like swombats and pg, I often follow the timelines and read through the old stuff, bookmarking or saving the "golden nuggets" once and for all)

Back in my Cobol/CICS days, every line that was edited was marked with a 3-character identifier for the person responsible. In a limited "ide" this made it possible to find the person responsible and at least ask him/her for more information/documentation.

I use a similar idea which is very low-tech, but use the date for each line/function that is changed, like this:

v110117 Statusbar.Text (string, in::statusbar_type_info);

v110117 is simply a macro where I explain the high-level rationale/bug/functionality (which is visible on mouseover-tooltip). If you need to edit different functions to fix a bug, it is a simple search for v110117 to find all changes (the comment at the end of the line may be marked v110117a, v110117b etc to separate different issues, and the detailed explanation for the changes done in that line/function is explained there).

You will quickly see if there has been any changes in a function lately due to the date-format (vYYMMDD). A bonus is that if a function has many different changes it is immediately visible, and should be a warning that the function is complex/high maintenance.

I don't think any language is vastly superior to any other in every case.

You can say that C++ is vastly more powerful (and flexible) than C, but for low-level/embedded/kernel etc development, many would argue that C is the superior language.

Many people would also argue that C++ is maybe too powerful and complex; you can do everything with it, but sometimes this makes it hard to decide how to do "anything" (procedural ? Object-oriented ? Using templates ?).

Lots of people (myself included) find it so complex that they only use a subset of it - "the good parts". However, agreeing which parts to use is often impossible.

I've written about about what I consider "the good parts" here:

- http://www.ppcsoft.com/blog/c-star.asp

Even the most trivial computer programs have lots of bugs (with VERY few exceptions [1]), and we're worrying about creating a super-brain that is actually smarter than we are ourselves ?

And let's not forget the debugging, which is TWICE as hard as the coding ;-)

We may be able to simulate the hardware of the brain (using "biologic hardware"), but programming the AI software is probably greatly under-estimated....

[1] Some of the NASA software is probably as close to bug-free as we get, and check the required amount of planning, documentation and testing compared to the amount of actual code produced - http://www.fastcompany.com/magazine/06/writestuff.html

Anyone have any tips/links to convert my CD's into great quality MP3's (for listening only) ? I've been using VBR, 196, Lame etc, but this was recommended to me years ago...

Which encoder/tool/settings do you recommend for Windows (and Mac) ?

Very cool implementation :-)

So what they have is

- an OCR function that reads a few words from an (easy) image

- a (simple) translator that translates the words into a different language word for word

- and then paints the translated words back using the same font/size

...continuously and quickly !

Don't get me wrong, this is cool and all, but it would be much more useful with a single snapshot that translates better, instead of focusing on doing it "realtime" (but the video wouldn't be as cool :-) )

The idea is nice, so I expect Evernote and Google to implement this ASAP ;-)

Good luck !!!

So I guess they don't make enough money on it, then ?

I wish the general attitude would change to "I'm willing to pay for services that I find useful" instead of "Everything should be free !!!!"...

Get a kinesis keyboard and learn to touch-type; it's probably the best investment you'll ever make...

You'll save time when programming, but also when you create the design/requirement/test documents, the help file, the web pages, your blog, all your e-mails, your twitter messages, your IM and Facebook messages, and of course your comments on Hacker News :-)

If you don't touch type, give yourself a good kick in the butt and start now !!!!

An hour a day for a few weeks and you'll save time every time you write something for the rest of your life ...

Some notes about Note-taking:

Write it down

- 1. "copying" the information

- 2. using your own words

1. is great for storing information,

2. is better for learning (and recall) !

Spending all your time in class doing 1. is often a waste of time (lecturer should provide handouts instead).

"Never memorize what you can look up in books" - Albert Einstein

Having an "extra copy of your books" written down in your notes is not very useful - write a summary and your understanding instead.

A personal wiki can be a great tool (as an alternative to Evernote and OneNote):

- Tiddlywiki is very simple, mediawiki is very powerful, PpcSoft iKnow is personal Wysiwyg wiki (with automatic linking and storing the data in plaintext "markdown")

About Pen and paper

- "Nothing beats pen and paper for speed, efficiency, portability , usability, economy, and ease of use."

- However, it sucks when it comes to editing, re-organizing, copying, sharing and re-finding

(Disclaimer: I'm the founder of PpcSoft)

I use simple Outlook rules to automatically highlight emails from important people and friends...

However, this sounds like a "reverse bayesian spam filter" that instead of filtering out spam is filtering out "most important email" and learning over time ?

It shouldn't be too hard adjusting SpamBayes or similar filters to do this, should it ? Anyone know about any solution for Outlook ?

How sad :-(

"But the ultimate purpose of music is a physiological/emotional response, something utterly subjective and that does not enrich our objective understanding of the world."

You can read about our planet, and see pictures of it, and everyone can agree on the objective understanding of it (even a computer can "understand" it objectively).

But what really enriches our (personal !) understanding of the world is not the objective understanding, but our subjective understanding, and music can enrich this understanding ...

The sun will rise again tomorrow, and it will be a new day, and we all know it....but listen to 'morning mood' in this video, look at the pictures, think, feel, and tell me that this doesn't make you appreciate the wonderful world we live in even more...

Morning mood, by Edvard Grieg:

- http://www.youtube.com/watch?v=gxlnnvz9lJk

"What makes programming so unique?"

E.W.Dijkstra, "The humble programmer", ACM Turing Lecture 1972

"Let me conclude. Automatic computers have now been with us for a quarter of a century. They have had a great impact on our society in their capacity of tools, but in that capacity their influence will be but a ripple on the surface of our culture, compared with the much more profound influence they will have in their capacity of intellectual challenge without precedent in the cultural history of mankind. Hierarchical systems seem to have the property that something considered as an undivided entity on one level, is considered as a composite object on the next lower level of greater detail; as a result the natural grain of space or time that is applicable at each level decreases by an order of magnitude when we shift our attention from one level to the next lower one. We understand walls in terms of bricks, bricks in terms of crystals, crystals in terms of molecules etc. As a result the number of levels that can be distinguished meaningfully in a hierarchical system is kind of proportional to the logarithm of the ratio between the largest and the smallest grain, and therefore, unless this ratio is very large, we cannot expect many levels. In computer programming our basic building block has an associated time grain of less than a microsecond, but our program may take hours of computation time. I do not know of any other technology covering a ratio of 1010 or more: the computer, by virtue of its fantastic speed, seems to be the first to provide us with an environment where highly hierarchical artefacts are both possible and necessary. This challenge, viz. the confrontation with the programming task, is so unique that this novel experience can teach us a lot about ourselves. It should deepen our understanding of the processes of design and creation, it should give us better control over the task of organizing our thoughts. If it did not do so, to my taste we should not deserve the computer at all!"

Edit: http://userweb.cs.utexas.edu/~EWD/transcriptions/EWD03xx/EWD...

My guess for most slow compiles (yes, pulled out of my ...hat):

1. Templates

2. No pre-compiled headers

3. Bad header-organization

We have a reasonable sized desktop application 5 mb (release) / 19 mb (debug) that fully rebuilds in 10 s / 12 s (incremental < 2 s usually).

Yes, we have optimized using a RAM disk etc, but the main reason for the speed is No Templates and combining precompiled headers with efficient header-organization.

Some interesting links:

- http://gamesfromwithin.com/physical-structure-and-c-part-2-b...

- http://developers.sun.com/solaris/articles/CC_perf/content.h...

Good point on 2) total market dominance !

I wonder if Twitter would have had a chance at all if they required payment for participating (even as little as $5 a year would probably be too much for it to take off) ?

(shameless plug) PpcSoft iKnow is a "personal wiki" with the following features:

- standalone desktop application for Windows - WYSIWYG editing - all "pages" (or notes) are stored in a single Unicode text file - all "pages" are automatically connected to each other (no "funny" syntax) - automatic semi-backup of changed pages (one week back)

For FULL version control, you can use any 3rd party version control system as all the pages are stored in a single text file.

However, it does not have any time tracking or task/project/TD functionality.

For more information:

- http://ppcsoft.com/iknow-features.asp

(/shameless plug)

Taking notes is very important as it forces you to think twice about the information as you write it down using your own words ("copy-paste-and-dump" information does not have the same learning effect).

In addition, you use different "senses" (writing in addition to reading) which enhances learning.

And of course (unless you only write it down on paper) you will be able to search for it and find it again when you need it (because you will not be able to remember every detail).

So, it isn't that important which tool you use, as long as you keep most notes in one place (so you know where to look for it later).

(shameless plug) Of course, as the number of notes grow, many people will experience information overload and have trouble finding the forest for all the trees...this is where using specialized tools that are optimized for finding what you need will help you.

My blog post regarding large amounts of information - http://www.ppcsoft.com/blog/iknow-efficiency-scalability.asp

(/shameless plug)

5 million Dropboxes 16 years ago

Excellent example of Benefits vs. Features

- features: Upload and download

- benefits: Easy way to share music, easy way to transfer files home/work, easy way to keep software synced etc

This is a GREAT presentation that everybody should watch !

But, we really need a "Best of the best" category where "old" articles etc can be saved (and found). Yes, it is new at Ted, but it is an old video that has been available for a long time.

Using the votes system this could become a great repository of the best articles/videos on the web ?