<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom"><title>Simon Willison's Weblog: oracle</title><link href="http://simonwillison.net/" rel="alternate"/><link href="http://simonwillison.net/tags/oracle.atom" rel="self"/><id>http://simonwillison.net/</id><updated>2024-09-17T23:20:37+00:00</updated><author><name>Simon Willison</name></author><entry><title>Oracle, it’s time to free JavaScript.</title><link href="https://simonwillison.net/2024/Sep/17/oracle-its-time-to-free-javascript/#atom-tag" rel="alternate"/><published>2024-09-17T23:20:37+00:00</published><updated>2024-09-17T23:20:37+00:00</updated><id>https://simonwillison.net/2024/Sep/17/oracle-its-time-to-free-javascript/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://javascript.tm/"&gt;Oracle, it’s time to free JavaScript.&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Oracle have held the trademark on JavaScript since their acquisition of Sun Microsystems in 2009. They’ve continued to renew that trademark over the years despite having no major products that use the mark.&lt;/p&gt;
&lt;p&gt;Their December 2019 renewal included &lt;a href="https://tsdr.uspto.gov/documentviewer?caseId=sn75026640&amp;amp;docId=SPE20191227132243&amp;amp;linkId=2#docIndex=1&amp;amp;page=1"&gt;a screenshot of the Node.js homepage&lt;/a&gt; as a supporting specimen!&lt;/p&gt;
&lt;p&gt;Now a group lead by a team that includes Ryan Dahl and Brendan Eich is coordinating a legal challenge to have the USPTO treat the trademark as abandoned and “recognize it as a generic name for the world’s most popular programming language, which has multiple implementations across the industry.”

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://lobste.rs/s/jupy5r/oracle_it_s_time_free_javascript"&gt;Lobste.rs&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/brendan-eich"&gt;brendan-eich&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/oracle"&gt;oracle&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ryan-dahl"&gt;ryan-dahl&lt;/a&gt;&lt;/p&gt;



</summary><category term="brendan-eich"/><category term="javascript"/><category term="oracle"/><category term="ryan-dahl"/></entry><entry><title>Quoting Bryan Cantrill</title><link href="https://simonwillison.net/2024/Sep/17/bryan-cantrill/#atom-tag" rel="alternate"/><published>2024-09-17T16:14:15+00:00</published><updated>2024-09-17T16:14:15+00:00</updated><id>https://simonwillison.net/2024/Sep/17/bryan-cantrill/#atom-tag</id><summary type="html">
    &lt;blockquote cite="https://www.youtube.com/watch?v=-zRN7XLCRhc&amp;amp;t=2308s"&gt;&lt;p&gt;Do not fall into the trap of anthropomorphizing Larry Ellison. You need to think of Larry Ellison the way you think of a lawnmower. You don’t anthropomorphize your lawnmower, the lawnmower just mows the lawn - you stick your hand in there and it’ll chop it off, the end. You don’t think "oh, the lawnmower hates me" – lawnmower doesn’t give a shit about you, lawnmower can’t hate you. Don’t anthropomorphize the lawnmower. Don’t fall into that trap about Oracle.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p class="cite"&gt;&amp;mdash; &lt;a href="https://www.youtube.com/watch?v=-zRN7XLCRhc&amp;amp;t=2308s"&gt;Bryan Cantrill&lt;/a&gt;&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/oracle"&gt;oracle&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/bryan-cantrill"&gt;bryan-cantrill&lt;/a&gt;&lt;/p&gt;



</summary><category term="oracle"/><category term="bryan-cantrill"/></entry><entry><title>What are the key insights in mastering SQL queries?</title><link href="https://simonwillison.net/2013/Nov/8/what-are-the-key/#atom-tag" rel="alternate"/><published>2013-11-08T09:16:00+00:00</published><updated>2013-11-08T09:16:00+00:00</updated><id>https://simonwillison.net/2013/Nov/8/what-are-the-key/#atom-tag</id><summary type="html">
    &lt;p&gt;&lt;em&gt;My answer to &lt;a href="https://www.quora.com/What-are-the-key-insights-in-mastering-SQL-queries/answer/Simon-Willison"&gt;What are the key insights in mastering SQL queries?&lt;/a&gt; on Quora&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;You may find this article useful (despite the list-o-matic name): &lt;span&gt;&lt;a href="http://tech.pro/tutorial/1555/10-easy-steps-to-a-complete-understanding-of-sql"&gt;10 Easy Steps to a Complete Understanding of SQL&lt;/a&gt;&lt;/span&gt; - I've been using SQL for years but I found that some of the concepts explained there helped firm up my fundamental understanding of how to use it effectively.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/databases"&gt;databases&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/mysql"&gt;mysql&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/oracle"&gt;oracle&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/sql"&gt;sql&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/quora"&gt;quora&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="databases"/><category term="mysql"/><category term="oracle"/><category term="sql"/><category term="quora"/></entry><entry><title>What is way that android connect to Oracle database?</title><link href="https://simonwillison.net/2013/Oct/24/what-is-way-that/#atom-tag" rel="alternate"/><published>2013-10-24T11:29:00+00:00</published><updated>2013-10-24T11:29:00+00:00</updated><id>https://simonwillison.net/2013/Oct/24/what-is-way-that/#atom-tag</id><summary type="html">
    &lt;p&gt;&lt;em&gt;My answer to &lt;a href="https://www.quora.com/What-is-way-that-android-connect-to-Oracle-database/answer/Simon-Willison"&gt;What is way that android connect to Oracle database?&lt;/a&gt; on Quora&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;As a general rule it's not a good idea to allow mobile devices to connect directly to a server-side database, as it's an invitation to hackers to figure out what's going on and then connect to the database themselves for nefarious reasons.&lt;/p&gt;

&lt;p&gt;Instead, most apps have a server-side web service API (usually REST-ish) which the mobile app talks to. This API then communicates with the database. Instead of exposing SQL statements directly to the device, the API provides a restricted, application-specific set of functionality that the mobile app can use.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/android"&gt;android&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/databases"&gt;databases&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/oracle"&gt;oracle&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/programming"&gt;programming&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/quora"&gt;quora&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="android"/><category term="databases"/><category term="oracle"/><category term="programming"/><category term="quora"/></entry><entry><title>What tools and techniques are used for relational database version control (structure and data)?</title><link href="https://simonwillison.net/2012/Dec/24/what-tools-and-techniques/#atom-tag" rel="alternate"/><published>2012-12-24T12:29:00+00:00</published><updated>2012-12-24T12:29:00+00:00</updated><id>https://simonwillison.net/2012/Dec/24/what-tools-and-techniques/#atom-tag</id><summary type="html">
    &lt;p&gt;&lt;em&gt;My answer to &lt;a href="https://www.quora.com/What-tools-and-techniques-are-used-for-relational-database-version-control-structure-and-data/answer/Simon-Willison"&gt;What tools and techniques are used for relational database version control (structure and data)?&lt;/a&gt; on Quora&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The term you are looking for is database migrations (sometimes called database change scripts).&lt;/p&gt;

&lt;p&gt;The basic concept is pretty straight forward: you set up a table in the database that records which change scripts have already been applied. When you need to make a change (adding a column, adding a table, denormalising some data for performance reasons, adding an index etc) you write a change script that applies the change - in raw SQL or in another programming language, depending on how your migration system is set up.&lt;/p&gt;

&lt;p&gt;These change scripts (let's call them migrations from here) are numbered so they can be applied in the correct order. Then you run a command which checks for scripts that have not yet been applied and runs them in the correct order - then records that they have been run to the relevant database table.&lt;/p&gt;

&lt;p&gt;The setup I've described above is a pretty good start. Some systems let you have reversible migrations: each migration includes instructions for reversing its effect (removing the index that was added, moving data back to its old location) which lets you run a command to revert back to a previous database state. In practise this is a nice-to-have but not essential: many migrations are by their nature irreversible, but it can make development faster if you can easily try out and then revert a database structure change within your development environment.&lt;/p&gt;

&lt;p&gt;Really clever migration systems can even introspect your database, figure out what has changed and attempt to generate the migration scripts automatically! South, the most popular migration system for Django, does this with surprisingly good results for many cases.&lt;/p&gt;

&lt;p&gt;If you're interested in learning more, it's worth reading through the South documentation: &lt;span&gt;&lt;a href="http://south.readthedocs.org/en/latest/"&gt;http://south.readthedocs.org/en/...&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/databases"&gt;databases&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/mysql"&gt;mysql&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/oracle"&gt;oracle&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/postgresql"&gt;postgresql&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/sql"&gt;sql&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/quora"&gt;quora&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rdbms"&gt;rdbms&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="databases"/><category term="mysql"/><category term="oracle"/><category term="postgresql"/><category term="sql"/><category term="quora"/><category term="rdbms"/></entry><entry><title>When should one switch from MySQL to Oracle or PostgreSQL?</title><link href="https://simonwillison.net/2010/Oct/12/when-should-one-switch/#atom-tag" rel="alternate"/><published>2010-10-12T16:13:00+00:00</published><updated>2010-10-12T16:13:00+00:00</updated><id>https://simonwillison.net/2010/Oct/12/when-should-one-switch/#atom-tag</id><summary type="html">
    &lt;p&gt;&lt;em&gt;My answer to &lt;a href="https://www.quora.com/When-should-one-switch-from-MySQL-to-Oracle-or-PostgreSQL/answer/Simon-Willison"&gt;When should one switch from MySQL to Oracle or PostgreSQL?&lt;/a&gt; on Quora&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;When your own benchmarks prove that your application's particular load characteristics will perform better on another database - and the difference is large enough that it's worth the cost involved in retargeting your code. If that cost is high (and it probably will be) it may be worth paying for some expert consultants to ensure that your implementations against the different databases are properly optimised.&lt;/p&gt;

&lt;p&gt;External benchmarks and reports for products as similar as these will rarely teach you anything useful about your own particular situation.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/mysql"&gt;mysql&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/oracle"&gt;oracle&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/postgresql"&gt;postgresql&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/scaling"&gt;scaling&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/quora"&gt;quora&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="mysql"/><category term="oracle"/><category term="postgresql"/><category term="scaling"/><category term="quora"/></entry><entry><title>Django-Jython 1.0.0 released!</title><link href="https://simonwillison.net/2009/Nov/9/for/#atom-tag" rel="alternate"/><published>2009-11-09T13:53:46+00:00</published><updated>2009-11-09T13:53:46+00:00</updated><id>https://simonwillison.net/2009/Nov/9/for/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://blog.leosoto.com/2009/11/django-jython-100-released.html"&gt;Django-Jython 1.0.0 released!&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Now with database backends for PostgreSQL, Oracle and MySQL. The next release (planned for next month) should provide full compatibility with Django 1.1—the current release has 1.1 support for PostgreSQL but only 1.0 support for the other two databases.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/django"&gt;django&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/jython"&gt;jython&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/leosoto"&gt;leosoto&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/mysql"&gt;mysql&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/oracle"&gt;oracle&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/postgresql"&gt;postgresql&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;&lt;/p&gt;



</summary><category term="django"/><category term="jython"/><category term="leosoto"/><category term="mysql"/><category term="oracle"/><category term="postgresql"/><category term="python"/></entry></feed>