<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Huy on Medium]]></title>
        <description><![CDATA[Stories by Huy on Medium]]></description>
        <link>https://medium.com/@huyphams?source=rss-ec6101542694------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*952Pk5LrtA89NJ-wl6qfiQ.png</url>
            <title>Stories by Huy on Medium</title>
            <link>https://medium.com/@huyphams?source=rss-ec6101542694------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sat, 20 Jun 2026 06:59:39 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@huyphams/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[DataFlow — a new toy for creating internal tools]]></title>
            <link>https://medium.com/@huyphams/dataflow-a-new-toy-for-creating-internal-tools-defc62640ec1?source=rss-ec6101542694------2</link>
            <guid isPermaLink="false">https://medium.com/p/defc62640ec1</guid>
            <category><![CDATA[database]]></category>
            <category><![CDATA[developer]]></category>
            <category><![CDATA[software]]></category>
            <category><![CDATA[design]]></category>
            <category><![CDATA[tools]]></category>
            <dc:creator><![CDATA[Huy]]></dc:creator>
            <pubDate>Fri, 20 Jan 2023 11:43:26 GMT</pubDate>
            <atom:updated>2023-01-20T16:33:43.160Z</atom:updated>
            <content:encoded><![CDATA[<h3>DataFlow — a new toy for creating internal tools</h3><p>At TablePlus, we have built many small utilities, such as revenue reports, refund tools, email tools… Those are small but it took effort, time, and money to develop and maintain to keep up with the tech trend and security bug fixes. We have tried to find low-code solutions, however, every time, we end up creating a new one from scratch.</p><p>It’s 2023 and why those low-code tools couldn’t help? Every solution has some pros and cons, let&#39;s see why we didn’t choose them:</p><p><strong>1. They are big and focus on enterprises.</strong></p><p>=&gt; The price is a bit expensive. We’re not an enterprise, we’re a very small team, and we don’t use all the features.</p><p><strong>2. They are all web apps, and if you’re big enough, they will offer you a private deployment.</strong></p><p>=&gt; It’s an internal tool, why do we expose it to the world? or rely on some else servers? We would like to deploy it on our server or run it on our devices only. We will not want to put our user data on anyone&#39;s servers. Actually, this is the biggest issue. <strong>If it is on some else server, it’s not a true internal tool.</strong></p><p>There are some free open sources that give you the code, but we need to deploy it ourselves and maintain a public big code base. <strong>We would like to keep it simple and small.</strong></p><p><strong>3. They are complex products and require a learning curve.</strong></p><p>=&gt; This is the second pain point. Most of the low-code solutions are a tool with a bunch of configurations. And if you want to understand those configurations, you need to read their documents. If you are a developer, you will be familiar with coding, so why do we learn to config instead of coding? Surely, we can create a small tool faster than learning configurations. We think that those low-code tools are for none-developer who choose to learn config over coding.</p><p>So after all, we choose not to use any of the available low-code solutions but we start to think that we should build our own solution, we think that many people out there are suffering the same pain point.</p><p><strong>Our initial thoughts:</strong></p><p>1. It must be a free app to use.<br>2. It must be not-a-web-app because we don’t want to spin up a server for it, many users don’t want to build a server just for a simple task.<br>3. It must be simple to use but can be extended later. The idea is that we give the user a core app, and then everything is plugins, just like our favorite text editors: VSCode, Sublime Text…<br>4. We don’t want it to have many configurations like the other low-code tools.</p><p><strong>The Challenge:</strong></p><p><strong>1 and 2 are easy</strong>, we have the experience to build a freemium desktop app from TablePlus. But <strong>the 3 and 4 are hard.</strong> The complexity isn&#39;t going anywhere. If you want a powerful tool, it could not be simple. If you want both, it’s unreal.</p><p><strong>So we made a trade-off, we don’t want to target the whole market at the moment, so we start our app with a smaller market: developers — who are good at coding.</strong></p><p>So we built DataFlow:</p><p><strong>1. DataFlow is a Fremium Desktop App.<br>2. DataFlow has a simple UI, and it doesn’t overcomplicate with configurations.<br>3. It can be extended later with plugins and components. It will take time but we’re here, we’re listening.</strong></p><p>So how do we solve the “configuration” problem? If DataFlow does not have “configurations”, how do we build apps with it? How do we solve real-world problems without giving the blocks — configurations?</p><p>Well, remember that we shift our focus to developers? The solution is <strong>coding</strong>.</p><p>Yup! you can use JavaScript in DataFlow to solve the “configurations” issue, we’re good at coding so it should not be a big deal. JavaScript is the most flexible language available at the moment and every developer at any-level can learn it easily. Coding in DataFlow is not like creating a new Javascript project, it’s simple. Let’s see an example below.</p><p>1. Create a very simple app that when we click the <strong>Button</strong>, changes the <strong>Label</strong> title.</p><p>First, we add a label and a button:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*sq7ded0siqkAVpcDyaQ9hw.png" /><figcaption>Create label and button</figcaption></figure><p>Then add a code snippet where we can write code that controls the label, in this case, it is:</p><pre>first_label.label = &quot;A new title&quot;;</pre><p>Hit the build button and see how it goes:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/1*Qh3j-hsCaQauP-wD7rH6XA.gif" /></figure><p>With DataFlow, we can do more than that, we can share the project with other members:<br>- <strong>Can View:</strong> They can only see and use the app that has been published by you.<br>- <strong>Can Edit:</strong> They can help you to build apps with DataFlow.</p><p>This is our very first public beta so it will have so many bugs and lack of features, such as real-time collab and version control, but we’re here to improve it.</p><p>Our roadmap for the next few months:</p><ol><li>Realtime Collab.</li><li>Version control.</li><li>More components.</li><li>Create and manage teams.</li></ol><p>If you’re interested in DataFlow, you can download it here: <a href="https://dataflow.so/">https://dataflow.so</a> and if you’re using it, we welcome all the feedback.</p><p>Submit feedback here: <a href="https://github.com/TablePlus/DataFlow-Issue-Tracker/issues">https://github.com/TablePlus/DataFlow-Issue-Tracker/issues</a><br>Email us directly: nick@tableplus.com</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=defc62640ec1" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[TablePlus for iOS]]></title>
            <link>https://medium.com/tableplus/database-tool-for-ios-made-easy-8e21647e830e?source=rss-ec6101542694------2</link>
            <guid isPermaLink="false">https://medium.com/p/8e21647e830e</guid>
            <category><![CDATA[sql]]></category>
            <category><![CDATA[database]]></category>
            <category><![CDATA[tableplus]]></category>
            <category><![CDATA[ipad-pro]]></category>
            <category><![CDATA[ios]]></category>
            <dc:creator><![CDATA[Huy]]></dc:creator>
            <pubDate>Mon, 24 Jun 2019 03:49:00 GMT</pubDate>
            <atom:updated>2019-08-15T20:18:09.159Z</atom:updated>
            <content:encoded><![CDATA[<p>The recent generation of iPad Pro models was considered as a great step forward from the previous iPad generations with a better design, a much faster processor, as well as many general performance improvements. Apple is getting serious about keeping the iPad’s trajectory headed towards the professional end of the spectrum. We at TablePlus also believe that it will be the future of personal computing so we made a big bet on it. We brought TablePlus app to iOS and iPadOS.</p><p>We can proudly say that TablePlus iOS is the only database tool that provides a well-rounded solution to work with all popular databases such as MySQL, PostgreSQL, SQL Server, Cassandra, Cockroach, Redis…, along with the highest level of attention paid to security features such as SSH Tunneling, TLS… TablePlus connects you to the databases directly without making any interference in the connection. It’s end-to-end encrypted using the best security features.</p><p>But that’s not the only thing that we have to offer. TablePlus is designed for the most intuitive experience, ever. We are a little so obsessed with making the app perfect down to every tiny detail and we always try to keep them as elegant as possible.</p><p><strong>1. Intuitive Interface</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*5vRu6E2TrXIFLE0P38GzSg.png" /><figcaption>Welcome screen</figcaption></figure><ul><li>We can easily create a new connection by touch and hold gestures.</li><li>It allows you to quickly import connections that were exported from the macOS app.</li></ul><p><strong>2. Security</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*iWx415WtLoChzd62eybnOA.png" /><figcaption>New connection</figcaption></figure><ul><li>TablePlus is the one and only app that supports built-in SSH. You can be able to connect to any database center without allowing public IP. Tunneling conducts all steps required to verify known host like a real SSH client.</li><li>TablePlus also support TLS certification. We will upgrade this feature in the next versions so that you can choose a custom certification.</li></ul><p><strong>3. Morden workspace</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*wO_d7P4rVX5LUJav5U5uvw.png" /><figcaption>Workspace</figcaption></figure><ul><li>TablePlus is not a full-featured application that can solve everything, or at least at the moment, but if we decided to add a feature, it must be top-notch.</li><li>TablePlus workspace is smartly designed for the touch &amp; drab gestures.</li></ul><p><strong>4. Advanced filter</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ITMKy2A5o49PwmTOSyyzmw.gif" /><figcaption>Advanced filter</figcaption></figure><ul><li>Typing a long command is not a wise thing to do on a mobile device like iPhone or iPad, so the TablePlus iOS inherited the advanced filters from the macOS version to help you query much faster.</li><li>Easy to filter columns.</li><li>Save the history of the recently used filters.</li></ul><p><strong>5. Smart editing mode</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*q47Py3DR5Nu4sJeVysbc7w.gif" /></figure><ul><li>Data Editing is a must-have feature for any database tools, however, if not used carefully, it can easily destroy the database. So we designed an editing mode that is both convenient and safe to use. All the changes you have made will be pending for review until you commit them to the server. Furthermore, you can undo and redo all those changes easily using the classic combination of Cmd + Z, or holding the title bar, everything is always under control.</li><li>Every change will also be recorded in history.</li></ul><p><strong>6. A powerful and smart query editor</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*YMPG3CucpbPPJPUhZhoqkw.gif" /><figcaption>Query editor</figcaption></figure><p>It’s fair to say that TablePlus has one of the best query editors among all the database tools. It’s equipped with many intelligent features such as code highlighter, auto-suggestion, query detector… Although we still have a lot of plans for it to improve.</p><p><strong>7. The future</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*M7oDMzmTo6Dx2a235JDAwA.gif" /><figcaption>Charts</figcaption></figure><ul><li>Apart from consolidating the basic functionalities, we will focus more on viewing and visualizing data with charts, as well as exporting data to a number of well-known formats.</li><li>We are having a big and long term plan for all versions of TablePlus, and we could not be able to do that without your support, that’s why TablePlus has a free plan and a paid plan with many upgraded features for advanced users.</li></ul><p>Download TablePlus now:</p><p>- For macOS: <a href="https://tableplus.com/mac">https://tableplus.com/mac</a><br>- For iOS: <a href="https://tableplus.com/ios">https://tableplus.com/ios</a><br>- For Windows: <a href="https://tableplus.com/windows">https://tableplus.com/windows</a><br>- Product hunt: <a href="https://www.producthunt.com/posts/tableplus-ios">https://www.producthunt.com/posts/tableplus-ios</a></p><p>Source: <a href="https://tableplus.com/blog/2018/10/tableplus-for-ios.html">https://tableplus.com/blog/2018/10/tableplus-for-ios.html</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=8e21647e830e" width="1" height="1" alt=""><hr><p><a href="https://medium.com/tableplus/database-tool-for-ios-made-easy-8e21647e830e">TablePlus for iOS</a> was originally published in <a href="https://medium.com/tableplus">Tableplus</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[A native database management tool for Windows]]></title>
            <link>https://medium.com/tableplus/a-native-database-management-tool-for-windows-864ecee171a0?source=rss-ec6101542694------2</link>
            <guid isPermaLink="false">https://medium.com/p/864ecee171a0</guid>
            <category><![CDATA[database]]></category>
            <category><![CDATA[windows]]></category>
            <category><![CDATA[mysql]]></category>
            <category><![CDATA[postgresql]]></category>
            <category><![CDATA[sql]]></category>
            <dc:creator><![CDATA[Huy]]></dc:creator>
            <pubDate>Mon, 10 Sep 2018 04:27:45 GMT</pubDate>
            <atom:updated>2019-11-15T17:14:32.639Z</atom:updated>
            <content:encoded><![CDATA[<p><em>TL;DR: We are back again with the Windows version of TablePlus:</em></p><ul><li>A native build.</li><li>Multiple drivers support MySQL, PostgreSQL, SQL Server… and the others are coming soon.</li><li>Built-in SSH, no need for PuTTY.</li><li>It’s the fastest DB tool with streaming results row by row and async loading.</li><li>Intuitive UX/UI with the high-resolution display.</li><li>Active development and lifetime support.</li><li>It’s 100% compatible with macOS version, you can share data from macOS to Windows (connections, history, favorites, license…).</li></ul><p>This is the initial release, more features from the macOS version are coming to this Windows version in the next few weeks, including indexes support, import CSV,...</p><p>Requirements: .NET 4.8</p><p>Download: <a href="https://tableplus.com/windows">https://tableplus.com/windows</a></p><p>Bugs/request a new feature: <a href="https://github.com/TablePlus/TablePlus-Windows/issues">https://github.com/TablePlus/TablePlus-Windows/issues</a></p><p><strong>Finally, after a lot of delays, we released the Windows version for TablePlus.</strong></p><p>As a Windows user, you may be familiar with some database tools: pgAdmin, MySQL Workbench, or HeidiSQL (a native tool).</p><p>So why TablePlus? Why did we decide to build TablePlus for Windows when there are a handful of mature tools?</p><h4>1. TablePlus is a native application.</h4><p>Yes, it’s native. We built TablePlus from C# and C/C++. If you appreciate the native experience with its blazing speed, tiny RAM footprint, lightweight size, and high level of reliability, it’s right for you.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*9tEkfq7sG8modtjq4TU7Cg.png" /><figcaption>Native application</figcaption></figure><h4>2. Built-in SSH.</h4><p>TablePlus Windows was built with SSH inside it, it means that you don’t need to use another tunneling tool such as PuTTY to make a connection to the server over SSH.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/818/1*bfT9TBCyV0-2ccGihg0Clw.png" /><figcaption>Built-in SSH</figcaption></figure><h4>3. It’s insanely fast.</h4><p>Not only the native-build makes it run fast as a Lambo, it also supports streaming results row by row. When you have a slow connection or need to fetch a table that contains megabytes of data each row. TablePlus will fetch and show it one by one.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*qJA3raRisOlpxQkrm5qhDw.gif" /><figcaption>Streaming result row by row</figcaption></figure><p>Fetching progress is a background task. That means it won’t block the UI, you can do other tasks while waiting for a long run query.</p><h4>4. Intuitive UX/UI with the high-resolution display.</h4><p>Our goal is not making a tool that does everything. We only focus on the most frequently used features and make it best for our users. We focus on data and queries so the UI is a lot of cleaner than other tools.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*-J_ZVjxPMnTAhjFnBR7FeQ.png" /><figcaption>Query editor</figcaption></figure><h4>5. Active development and support.</h4><p>This is just an initial version, it’s still missing many features, we are aware of it and will release an update every week including more features and bug fixes.<br>Over 100 updates with over 1000 improvements for the Mac version were released last year. We will do the same thing for this Windows version.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*lK4qZDbXm1jGtoUeRxPZuw.png" /><figcaption>Update windows</figcaption></figure><p><strong>Short-term roadmap:</strong></p><p>All those important features from macOS version will be included in the next few weeks:</p><ul><li>Support for indexes</li><li>Advanced filter.</li><li>And many more…</li></ul><h4>Finally, it’s free with unlimited trial time for basic users.</h4><p>You can download it for free from <a href="https://tableplus.com/windows"><strong>here</strong></a>, and use it forever.</p><p>But if you fall in love with the tool and use it heavily, you might want to upgrade to the premium version for the higher productivity.</p><p>By doing that, you are also supporting the development to make the app better, we really appreciate it.</p><p>Download: <a href="https://tableplus.com/windows">https://tableplus.com/windows</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=864ecee171a0" width="1" height="1" alt=""><hr><p><a href="https://medium.com/tableplus/a-native-database-management-tool-for-windows-864ecee171a0">A native database management tool for Windows</a> was originally published in <a href="https://medium.com/tableplus">Tableplus</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Modern, native tool for relational database]]></title>
            <link>https://medium.com/tableplus/modern-native-tool-for-relational-database-79efc35b647d?source=rss-ec6101542694------2</link>
            <guid isPermaLink="false">https://medium.com/p/79efc35b647d</guid>
            <category><![CDATA[database]]></category>
            <category><![CDATA[tableplus]]></category>
            <category><![CDATA[postgresql]]></category>
            <category><![CDATA[developer]]></category>
            <category><![CDATA[mysql]]></category>
            <dc:creator><![CDATA[Huy]]></dc:creator>
            <pubDate>Mon, 11 Dec 2017 17:17:06 GMT</pubDate>
            <atom:updated>2019-08-15T20:21:46.576Z</atom:updated>
            <content:encoded><![CDATA[<p>Back in the day, when it comes to working with relational databases, especially PostgreSQL, we didn’t have many choices.</p><p>You might have used pgAdmin, an official tool that was built by the team behind PostgreSQL, or some reputable tools such as Navicat or SequelPro… we tried them all. Each tool has its own unique feature kit that made it standout but we didn’t seem to be satisfied [Warning — we’re going a just little bit picky here].</p><ul><li>Some tools take so much <strong>time to start-up</strong>, <strong>poor performance </strong>or <strong>eating RAM</strong>.</li><li>Some tools make you feel like being in the 90s with the <strong>outdated interface</strong> that doesn’t allow you to view one row of data without a series of 3 or 4 clicks, let alone <strong>slow response</strong>.</li><li>Some other support <strong>only one driver.</strong></li><li>Out of them, SequelPro seems to be the best but it’s limited to <strong>MySQL only</strong> and the <strong>development almost stopped</strong> (they planned to support PostgreSQL nearly 10 years ago already).</li></ul><p>To be fair, those tools are quite feature rich and stable, so as long as you don’t feel annoyed, it’s good to go. But for us, we wanted something more, something far better than that.</p><p>So we started looking for a perfect database tool. We needed something that is built native, has modern UI and runs fast like a Lambo. Simple as that.</p><p>After performing several searches on Google, we gave up. There was no such a thing. Frustrated, we decided to build our own native tool and started with relational databases.</p><h3>So our initial build was:</h3><ul><li>A native tool with <strong>high performance</strong>, <strong>neat</strong> and <strong>fast</strong> :D</li><li>A <strong>modern</strong> &amp; <strong>simple UI</strong> that supports <strong>multiple windows</strong> and <strong>tabs</strong>, and of course, in <strong>full-retina.</strong></li><li>A <strong>powerful query designer</strong> with <strong>highlight syntax</strong> and <strong>auto-complete.</strong></li><li><strong>Supporting most of the relational databases</strong>: PostgreSQL, MySQL, SQL Server, Amazon Redshift, SQLite, MariaDB…</li><li><strong>Extendable</strong>, because we don’t want to include everything in one tool.</li></ul><p>Then we gave it the name <strong>TablePlus</strong>. It’s been 4 months since the day we released the first version and we’ve made a lot of changes along the way. Perhaps the biggest and most recent one was <strong>plugin system</strong> — a feature that allows TablePlus to be customized and extended beyond the expectation with <strong>Javascript</strong>.</p><p>Let’s take a look at some screenshots below to have a better understanding</p><h4>True native built and optimization that enable high capability of performance and saving RAM</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*NDCo2k2LlsxNTr2eeU5FaQ.png" /><figcaption>Native code</figcaption></figure><h4>Modern &amp; simple UI</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*KhLgrvD2fg3YNM_Hhw9i8A.png" /><figcaption>Welcome screen with <strong>group</strong> connection and <strong>tags</strong></figcaption></figure><h4>Workspace supports <strong>multiple tabs</strong></h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*0OI6XdUwupjGy-jToQgE6A.png" /><figcaption>Workspace supports <strong>multiple tabs</strong></figcaption></figure><h4>A <strong>full-dark theme</strong> pleasure your eyes.</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*cGyxAF1lOv9Qx1cTansdJw.png" /><figcaption>A <strong>full-dark theme</strong> pleasure your eyes</figcaption></figure><h4>A <strong>powerful SQL editor</strong> with full features:</h4><p>- Auto highlight.</p><p>- Auto suggestion.</p><p>- Split pane.</p><p>- Favorite and History.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*yJerd7TJs_ykdxDILOr3WA@2x.png" /><figcaption>A <strong>powerful SQL</strong> <strong>editor</strong></figcaption></figure><h4><strong>Modern shortcuts</strong> that will keep your hands on keyboard</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/576/1*w6BSFhBERYK3jWIkrzHyvg.png" /><figcaption>Navigate menu</figcaption></figure><h4><strong>Plugin</strong> system (developing)</h4><p>Now, you can be able to <strong>write new features</strong> to work with database <strong>without waiting for us</strong> to develop (export charts, pretty json, import data, export data…).</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*LDyiCZVg6OLK19Am-blgcw.png" /><figcaption>Plugin system</figcaption></figure><p>We know there are a lot ahead of us but we’re grateful that TablePlus has received a lot of support from our fellow developers around the world during the last 4 months. We’re working hard everyday to bring a new hope for relational database tools.</p><p>TablePlus is free and has no limit trial time, but if you interested in our work, you can consider purchasing the upgrade version to support development.</p><p>TablePlus’s blog: <a href="https://tableplus.com/blog/2017/12/modern-native-tool-for-relational-database.html">https://tableplus.com/blog/2017/12/modern-native-tool-for-relational-database.html</a></p><p>Download: <a href="https://tableplus.com">https://tableplus.com</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=79efc35b647d" width="1" height="1" alt=""><hr><p><a href="https://medium.com/tableplus/modern-native-tool-for-relational-database-79efc35b647d">Modern, native tool for relational database</a> was originally published in <a href="https://medium.com/tableplus">Tableplus</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[10 hidden gems in TablePlus]]></title>
            <link>https://medium.com/@huyphams/10-hidden-gems-in-tableplus-b61df62b58b0?source=rss-ec6101542694------2</link>
            <guid isPermaLink="false">https://medium.com/p/b61df62b58b0</guid>
            <category><![CDATA[sql]]></category>
            <category><![CDATA[postgresql]]></category>
            <category><![CDATA[tableplus]]></category>
            <category><![CDATA[mysql]]></category>
            <category><![CDATA[database]]></category>
            <dc:creator><![CDATA[Huy]]></dc:creator>
            <pubDate>Wed, 12 Jul 2017 12:37:00 GMT</pubDate>
            <atom:updated>2019-12-24T18:02:59.155Z</atom:updated>
            <content:encoded><![CDATA[<p><a href="https://tableplus.com">TablePlus</a> is a native application helps you easily edit database data and structure. TablePlus currently Supports: MySQL, PostgreSQL, MariaDB, Redshift, and databases have a similar connector.</p><p><strong>I. Native application</strong>: native application provides a faster and seamless performance.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*NF-MR7mMzSufsjlDbXtj3Q.png" /><figcaption>Performance</figcaption></figure><p><strong>II. Multi tab, multi windows</strong> viewing.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*u0CvK7FpRcJWzlacyiRPwg.png" /></figure><p><strong>III. Changing Themes</strong>: TablePlus supports full-dark theme.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*g-tu9dqzu8--_bm7afaVLA.png" /></figure><p><strong>IV. Shortcut keys:</strong> many <a href="https://github.com/TablePlus/TablePlus/wiki/Shortcut-keys">shortcut keys</a> including.</p><p><strong>V. Pretty SQL:</strong> indent command SQL.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*gCxrJxrnsxl_klrdHAq9Dg.png" /></figure><p><strong>VI. Connection tags:</strong> dev, pro, tes…</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*16A4i123GdL1s005LnJocA.png" /></figure><p><strong>VII. Safe mode:</strong> lock of production database. TablePlus will confirm password when you commit a change.</p><p><strong>VIII. Open anything:</strong> cmd + P</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Exsv86_xRKvMwruTP70qiA.png" /></figure><p><strong>IX. Code review:</strong> TablePlus will generate SQL when you make a change.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*nSBzkK8TUxQcr9n2p-aozA.png" /></figure><p><strong>X. Quick Look (middle mouse click or right-click &gt; Quick look editor):</strong> view your row data super easy.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*9XjLmlBRL983GlQnWFMGKg.png" /></figure><p><a href="https://tableplus.io/">TablePlus</a> is free and will be free forever, but i’m very happy if you purchase a license to support develop it.</p><p>TablePlus’s blog: <a href="https://tableplus.com/blog/2017/07/10-hidden-gems-in-tableplus.html">https://tableplus.com/blog/2017/07/10-hidden-gems-in-tableplus.html</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=b61df62b58b0" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[How using ssh tunneling in Database Tools might leak your connection forever]]></title>
            <link>https://medium.com/@huyphams/how-using-ssh-tunneling-in-database-tools-might-leak-your-connection-forever-c6d48ff18746?source=rss-ec6101542694------2</link>
            <guid isPermaLink="false">https://medium.com/p/c6d48ff18746</guid>
            <category><![CDATA[psequel]]></category>
            <category><![CDATA[sequelpro]]></category>
            <category><![CDATA[sql]]></category>
            <category><![CDATA[tableplus]]></category>
            <category><![CDATA[ssh-tunneling]]></category>
            <dc:creator><![CDATA[Huy]]></dc:creator>
            <pubDate>Sat, 01 Jul 2017 11:36:14 GMT</pubDate>
            <atom:updated>2019-08-15T20:24:55.459Z</atom:updated>
            <content:encoded><![CDATA[<p>Recently, while developing <a href="https://tableplus.com">TablePlus</a>, we researched about SSH tunneling technology. After testing several database tools which supported ssh tunneling, we discovered that your connection might be leaked until you disconnected from the internet or shut down your machine. The leak is caused by using open-ssh to create tunneling. So what is ssh tunneling? And why do we need it to connect to a remote database? Please see the diagram below.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ff0SL136Rgt-GDyRMESZwQ.png" /><figcaption>SSH Tunneling process</figcaption></figure><p>Because of security reasons, almost every host does not allow clients to connect directly to the database from outside of the server. That’s why database tools need to create tunneling. The tunneling works as a middleware that transfers data between client and server over ssh. It is encrypted by public/private keys and it’s safe.</p><p>However, building an ssh lib demands time and neat programming. Many tools out there are using open-ssh to create tunneling. The problem is that open-ssh process is not managed by the application. Therefore, sometimes even when the application is closed (crashed), the tunneling still exists. This is really dangerous because users aren’t aware of that. Things might get worse as other applications can use the tunneling without app permission because it was created outside the app.</p><p>So how dangerous is it? Of course, the connection is still on your machine, and you need to know the server password to connect to the database. However, sometimes the server was configured with an option to accept the connection by peer without the password. Or a malware in your computer might just brute force the password. Think about that.</p><p>Let me reproduce the issue. Try these steps on your database and you will get what I’m saying.</p><blockquote>Step 1: Use ssh feature in <strong>PSEquel</strong> or <strong>SequelPro</strong> to create a tunneling to connect to server.</blockquote><blockquote>Step 2: Open terminal and type “ps aux | grep ssh”. You will see the tunneling like “/usr/bin/ssh root@&lt;the server ip&gt; -vNL 58070:localhost:5432 -p 22 -o ExitOnForwardFailure=yes -o ConnectTimeout=30 -o TCPKeepAlive=no -o ServerAliveInterval=60”</blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*FcLxtTBcHt1iWql9qIdCSg.png" /><figcaption>SSH Tunneling</figcaption></figure><blockquote>Step 3: Force quit the app (using command + option + esc).</blockquote><blockquote>Step 4: Type “ps aux | grep ssh” again and you can see the ssh still exists.</blockquote><p>Let’s connect to the server using the tunneling:</p><p>Open <a href="https://tableplus.com">TablePlus</a> and input the server info. Enter the port being showed in ssh tunneling. In my case, it is 58070 (enter the password if needed).</p><p>Hit the connect button, and the connection will be made. You can see the ssh still exists unless you kill it or the internet are disconnected.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*HJqzThaiqNps1EErHoj6qA.png" /><figcaption>Test leak connection</figcaption></figure><p>So how do I know if a tool is using open-ssh? Simply type “ps aux | grep ssh” when you are using a database tool and connecting to the server with ssh mode.</p><p>Being aware of that, <a href="https://tableplus.com">TablePlus</a> has implemented its own ssh lib with (<a href="https://libssh.org/">https://libssh.org</a>) and secured the port. That’s why you can’t see the ssh tunneling in the terminal. Because ssh tunneling is a part of TablePlus, the application can control the number of connections through ssh. TablePlus only accepts connections from itself and prohibits connections from the outside. That’s how you can secure your connection and protect your database.</p><p>TablePlus’s blog: <a href="https://tableplus.com/blog/2017/07/how-using-ssh-tunneling-in-database-tools-might-leak-your-connection-forever.html">https://tableplus.com/blog/2017/07/how-using-ssh-tunneling-in-database-tools-might-leak-your-connection-forever.html</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c6d48ff18746" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>