41554 blogs · [ { "id": "01a087c1-c50e-736a-b861-1d3bf72d00f2", "title": "Pointille: Packing Circles in a Polygon", "url": "https://www.philihp.com/2026/pointille-radius.html", "published_at": "2026-08-02T00:00:00+00:00" }, { "id": "01a087c1-c50f-72d0-a4fc-da87f8103860", "title": "Pointille: Evenly Distributing Points in a Polygon", "url": "https://www.philihp.com/2026/announcing-pointille.html", "published_at": "2026-05-13T00:00:00+00:00" }, { "id": "01a087c1-c50f-72d0-a4fc-da87f8d2e5e5", "title": "Coerce a string into a uuid in Postgres", "url": "https://www.philihp.com/2022/coerce-string-into-uuid-in-postgres.html", "published_at": "2022-10-04T00:00:00+00:00" }, { "id": "01a087c1-c510-721f-bb60-875013da9fd1", "title": "User Retention with Lness using PostgreSQL and Superset", "url": "https://www.philihp.com/2021/user-retention-with-lness-using-postgresql-and-superset.html", "published_at": "2021-10-06T00:00:00+00:00" }, { "id": "01a087c1-c510-721f-bb60-875014978b7d", "title": "Calling with Commas in Javascript", "url": "https://www.philihp.com/2021/calling-with-commas-in-javascript.html", "published_at": "2021-02-24T00:00:00+00:00" }, { "id": "01a087c1-c510-721f-bb60-87501595eb60", "title": "Importing the Computer Modern font as Woff2", "url": "https://www.philihp.com/2021/computer-modern-woff2.html", "published_at": "2021-01-17T00:00:00+00:00" }, { "id": "01a087c1-c510-721f-bb60-8750166e7d5f", "title": "Macaroni and Cheese", "url": "https://www.philihp.com/2020/mac-and-cheese.html", "published_at": "2020-12-26T00:00:00+00:00" }, { "id": "01a087c1-c510-721f-bb60-8750174dac02", "title": "Building a Serverless PGP Keyserver with Next.js", "url": "https://www.philihp.com/2020/serverless-pgp-keyserver-with-next-js.html", "published_at": "2020-09-27T00:00:00+00:00" }, { "id": "01a087c1-c510-721f-bb60-875017740651", "title": "Using WKD to find PGP keys with GSuite", "url": "https://www.philihp.com/2020/pgp-wkd-with-gsuite.html", "published_at": "2020-09-20T00:00:00+00:00" }, { "id": "01a087c1-c510-721f-bb60-8750184beffb", "title": "A Bayesian Analysis of Win Rates of Twilight Imperium (4th Edition) Races", "url": "https://www.philihp.com/2020/twilight-imperium-races.html", "published_at": "2020-08-25T00:00:00+00:00" }, { "id": "01a087c1-c510-721f-bb60-875018accddc", "title": "Upgrade your SSH key to ed25519", "url": "https://www.philihp.com/2020/upgrade-your-ssh-key-to-ed25519.html", "published_at": "2020-06-24T00:00:00+00:00" }, { "id": "01a087c1-c510-721f-bb60-875018cb5049", "title": "Gmail with Mutt, GPG, Pass, and your Yubikey", "url": "https://www.philihp.com/2020/mutt-gmail-passwordstore.html", "published_at": "2020-06-13T00:00:00+00:00" }, { "id": "01a087c1-c510-721f-bb60-87501929e93d", "title": "Openskill vs TrueSkill Implementations", "url": "https://www.philihp.com/2020/openskill.html", "published_at": "2020-06-03T00:00:00+00:00" }, { "id": "01a087c1-c510-721f-bb60-87501978d4ef", "title": "Dynamically Added ActiveRecord Where Clauses", "url": "https://www.philihp.com/2019/dynamically-added-activerecord-where-clauses.html", "published_at": "2019-07-02T00:00:00+00:00" }, { "id": "01a087c1-c510-721f-bb60-8750198e9c22", "title": "GPG Inline Photo Viewer with iTerm2", "url": "https://www.philihp.com/2019/gpg-inline-photo-viewer-with-iterm2.html", "published_at": "2019-04-14T00:00:00+00:00" }, { "id": "01a087c1-c510-721f-bb60-87501a09ad7e", "title": "Postgres 10 to 11 upgrade", "url": "https://www.philihp.com/2019/postgres-10-11-upgrade.html", "published_at": "2019-01-16T00:00:00+00:00" }, { "id": "01a087c1-c510-721f-bb60-87501a5d05d0", "title": "Creating a hash in Ruby using to_h vs Hash[]", "url": "https://www.philihp.com/2018/ruby-to_h-vs-hash.html", "published_at": "2018-12-27T00:00:00+00:00" }, { "id": "01a087c1-c510-721f-bb60-87501a9d00dd", "title": "Brew install Estonian e-Residency ID software", "url": "https://www.philihp.com/2018/brew-install-estonian-e-residency-id-software.html", "published_at": "2018-11-02T00:00:00+00:00" }, { "id": "01a087c1-c510-721f-bb60-87501b866c11", "title": "Testing a Redux Connected Component with Thunk Actions with Enzyme", "url": "https://www.philihp.com/2018/testing-a-redux-connected-component-with-thunk-actions-with-enzyme.html", "published_at": "2018-10-18T00:00:00+00:00" }, { "id": "01a087c1-c510-721f-bb60-87501c4228cc", "title": "Removing the First Instance of an Element from a ES6 JavaScript Array", "url": "https://www.philihp.com/2018/removing-the-first-instance-of-an-element-from-a-es6-javascript-array.html", "published_at": "2018-10-01T00:00:00+00:00" }, { "id": "01a087c1-c510-721f-bb60-87501cb725d7", "title": "Prefer `if object.present?` over `if object`", "url": "https://www.philihp.com/2018/prefer-if-object-present-over-if-object.html", "published_at": "2018-08-17T00:00:00+00:00" }, { "id": "01a087c1-c510-721f-bb60-87501cf1e0af", "title": "R2: The Infinite Composer", "url": "https://www.philihp.com/2017/r2-the-infinite-composer.html", "published_at": "2017-05-24T00:00:00+00:00" }, { "id": "01a087c1-c510-721f-bb60-87501d79c4fa", "title": "Transitioning PGP Keys", "url": "https://www.philihp.com/2016/transitioning-pgp-keys.html", "published_at": "2016-11-05T00:00:00+00:00" }, { "id": "01a087c1-c510-721f-bb60-87501e714316", "title": "Error: ENOENT when installing Pow on macOS", "url": "https://www.philihp.com/2016/error-enoent-when-installing-pow-on-macos.html", "published_at": "2016-06-18T00:00:00+00:00" }, { "id": "01a087c1-c510-721f-bb60-87501ecb95a9", "title": "Class 'foo' has no initializers", "url": "https://www.philihp.com/2016/class-foo-has-no-initializers.html", "published_at": "2016-06-04T00:00:00+00:00" }, { "id": "01a087c1-c510-721f-bb60-87501fbbff38", "title": "Configure MySQL on AWS t2.micro Linux AMI", "url": "https://www.philihp.com/2016/configure-mysql-on-aws-t2-micro-linux-ami.html", "published_at": "2016-01-20T00:00:00+00:00" }, { "id": "01a087c1-c510-721f-bb60-8750202b25d2", "title": "Using Java 8 Lambdas with Google Guava Caches", "url": "https://www.philihp.com/2015/using-java-8-lambdas-with-google-guava-caches.html", "published_at": "2015-09-28T00:00:00+00:00" }, { "id": "01a087c1-c510-721f-bb60-875020a26ab7", "title": "How to parameterize an RSpec shared context", "url": "https://www.philihp.com/2015/how-to-parameterize-an-rspec-shared-context.html", "published_at": "2015-06-01T00:00:00+00:00" }, { "id": "01a087c1-c510-721f-bb60-875020c59977", "title": "How to use JUnit4 Hamcrest Matchers", "url": "https://www.philihp.com/2015/how-to-use-junit4-hamcrest-matchers.html", "published_at": "2015-01-14T00:00:00+00:00" }, { "id": "01a087c1-c510-721f-bb60-875021b98e27", "title": "New City, New Job, New Format", "url": "https://www.philihp.com/2014/new-city-new-job-new-format.html", "published_at": "2014-07-08T00:00:00+00:00" }, { "id": "01a087c1-c510-721f-bb60-87502281b290", "title": "Using SUBSTR on the left of an assignment in SAS", "url": "https://www.philihp.com/2014/using-substr-on-the-left-of-an-assignment-in-sas.html", "published_at": "2014-04-20T00:00:00+00:00" }, { "id": "01a087c1-c510-721f-bb60-87502350b506", "title": "Installing SAS 9.4 on Ubuntu 14.04", "url": "https://www.philihp.com/2014/installing-sas-9-4-on-ubuntu-13-10.html", "published_at": "2014-02-19T00:00:00+00:00" }, { "id": "01a087c1-c510-721f-bb60-875023af9b21", "title": "SAS Macro Variable Resolution Timing", "url": "https://www.philihp.com/2014/sas-macro-variable-resolution-timing.html", "published_at": "2014-02-06T00:00:00+00:00" }, { "id": "01a087c1-c510-721f-bb60-875023baabda", "title": "Using Secure HTTPS (SSL) URLs in SAS on Linux", "url": "https://www.philihp.com/2014/using-secure-https-ssl-urls-in-sas-on-linux.html", "published_at": "2014-01-31T00:00:00+00:00" }, { "id": "01a087c1-c510-721f-bb60-8750244956ab", "title": "Handlebars #each in a Play Scala View", "url": "https://www.philihp.com/2013/handlebars-each-in-a-play-scala-view.html", "published_at": "2013-10-13T00:00:00+00:00" }, { "id": "01a087c1-c510-721f-bb60-875024d2e7a3", "title": "Open a folder window from a terminal in Windows and macOS", "url": "https://www.philihp.com/2013/open-a-folder-window-from-a-cmd-prompt-in-windows.html", "published_at": "2013-10-03T00:00:00+00:00" }, { "id": "01a087c1-c511-7371-b398-321e30076681", "title": "Using a Backbone Model with Handlebars", "url": "https://www.philihp.com/2013/using-a-backbone-model-with-handlebars.html", "published_at": "2013-10-01T00:00:00+00:00" }, { "id": "01a087c1-c511-7371-b398-321e30a3ca0a", "title": "Mining Bitcoin in the Eligius pool using Phoenix2", "url": "https://www.philihp.com/2013/mining-bitcoin-in-the-eligius-pool-using-phoenix2.html", "published_at": "2013-04-21T00:00:00+00:00" }, { "id": "01a087c1-c511-7371-b398-321e30a9cc34", "title": "Automatic Base SAS Library Assignments", "url": "https://www.philihp.com/2013/automatic-base-sas-library-assignments.html", "published_at": "2013-04-09T00:00:00+00:00" }, { "id": "01a087c1-c511-7371-b398-321e30b545a5", "title": "Finding the Center of US Counties in SAS", "url": "https://www.philihp.com/2013/finding-the-center-of-us-counties-in-sas.html", "published_at": "2013-03-04T00:00:00+00:00" }, { "id": "01a087c1-c511-7371-b398-321e30daa295", "title": "Bayesian Averaging in SAS", "url": "https://www.philihp.com/2013/bayesian-averaging-in-sas.html", "published_at": "2013-02-04T00:00:00+00:00" }, { "id": "01a087c1-c511-7371-b398-321e31a42b65", "title": "How To Save Struts Messages After a Redirect", "url": "https://www.philihp.com/2012/how-to-save-struts-messages-after-a-redirect.html", "published_at": "2012-12-18T00:00:00+00:00" }, { "id": "01a087c1-c511-7371-b398-321e326836a8", "title": "WARNING: Form 'myForm' not found for locale 'en_US'", "url": "https://www.philihp.com/2012/warning-form-myform-not-found-for-locale-en_us.html", "published_at": "2012-12-10T00:00:00+00:00" }, { "id": "01a087c1-c511-7371-b398-321e327ec919", "title": "Getting the last element in an array in JSF and JSTL", "url": "https://www.philihp.com/2012/getting-the-last-element-in-an-array-in-jsp-with-jstl.html", "published_at": "2012-12-09T00:00:00+00:00" }, { "id": "01a087c1-c511-7371-b398-321e330ef266", "title": "Selecting Rows from the Last 5 Years in SAS", "url": "https://www.philihp.com/2012/selecting-rows-from-the-last-5-years-in-sas.html", "published_at": "2012-12-06T00:00:00+00:00" }, { "id": "01a087c1-c511-7371-b398-321e3336ab07", "title": "Two Common Struts Null Pointer Exceptions", "url": "https://www.philihp.com/2012/struts-form-nullpointerexception.html", "published_at": "2012-12-03T00:00:00+00:00" }, { "id": "01a087c1-c511-7371-b398-321e334ade45", "title": "A Farmville 2 Profit/Experience Maximization Spreadsheet", "url": "https://www.philihp.com/2012/a-farmville-2-profitexperience-maximization-spreadsheet.html", "published_at": "2012-11-24T00:00:00+00:00" }, { "id": "01a087c1-c511-7371-b398-321e33c0d537", "title": "How to write your own Custom SAS Functions", "url": "https://www.philihp.com/2012/how-to-write-your-own-custom-sas-functions.html", "published_at": "2012-11-20T00:00:00+00:00" }, { "id": "01a087c1-c511-7371-b398-321e3471c3cc", "title": "Blackjack Dealer Odds", "url": "https://www.philihp.com/2012/blackjack-dealer-odds.html", "published_at": "2012-10-08T00:00:00+00:00" }, { "id": "01a087c1-c511-7371-b398-321e35148a3a", "title": "Turning an Image File into a binary Bitmask in Java", "url": "https://www.philihp.com/2012/turning-an-image-file-into-a-binary-bitmask-in-java.html", "published_at": "2012-09-28T00:00:00+00:00" }, { "id": "01a087c1-c511-7371-b398-321e3524b830", "title": "METAOUT=DATA error in SAS Enterprise Guide", "url": "https://www.philihp.com/2012/metaout-data-error.html", "published_at": "2012-09-19T00:00:00+00:00" }, { "id": "01a087c1-c511-7371-b398-321e357ec92f", "title": "Mute George Takei stories from your Facebook News Feed", "url": "https://www.philihp.com/2012/mute-george-takei-stories-from-your-facebook-news-feed.html", "published_at": "2012-05-16T00:00:00+00:00" }, { "id": "01a087c1-c511-7371-b398-321e359cfec8", "title": "How to use a SWITCH Statement in SAS", "url": "https://www.philihp.com/2012/sas-switch-statement.html", "published_at": "2012-04-09T00:00:00+00:00" }, { "id": "01a087c1-c511-7371-b398-321e36531b8c", "title": "Facebook OAuth with Scribe and Gson in Struts 1", "url": "https://www.philihp.com/2012/authenticating-to-facebook-in-struts-1-with-scribe-and-gson.html", "published_at": "2012-04-05T00:00:00+00:00" }, { "id": "01a087c1-c511-7371-b398-321e365deffc", "title": "localhost:7001/console", "url": "https://www.philihp.com/2012/localhost7001console.html", "published_at": "2012-03-21T00:00:00+00:00" }, { "id": "01a087c1-c511-7371-b398-321e36f918ca", "title": "Using a SAS LIBNAME's connection in Pass-through", "url": "https://www.philihp.com/2012/reusing-a-libnames-database-connection-in-pass-through.html", "published_at": "2012-03-13T00:00:00+00:00" }, { "id": "01a087c1-c511-7371-b398-321e3754f86a", "title": "Java for-each iterating with a Scanner", "url": "https://www.philihp.com/2012/java-5-for-each-iterating-with-a-scanner.html", "published_at": "2012-03-03T00:00:00+00:00" }, { "id": "01a087c1-c511-7371-b398-321e3802bdd0", "title": "I made a GPS Locator for Myself", "url": "https://www.philihp.com/2012/i-made-a-gps-locator-for-myself.html", "published_at": "2012-02-27T00:00:00+00:00" }, { "id": "01a087c1-c511-7371-b398-321e388ade90", "title": "Multiple Instances of the Same Embedded JPA Entity", "url": "https://www.philihp.com/2012/multiple-instances-of-the-same-embedded-jpa-entity.html", "published_at": "2012-02-12T00:00:00+00:00" }, { "id": "01a087c1-c511-7371-b398-321e392931e4", "title": "Chained Struts Actions Accessible Only by Forward", "url": "https://www.philihp.com/2012/chained-struts-actions-that-accessible-only-by-forward.html", "published_at": "2012-02-06T00:00:00+00:00" }, { "id": "01a087c1-c511-7371-b398-321e3a12d587", "title": "New in Java 7: switch()ing on Strings", "url": "https://www.philihp.com/2012/new-in-java-7-switching-on-strings.html", "published_at": "2012-01-22T00:00:00+00:00" }, { "id": "01a087c1-c511-7371-b398-321e3b09733a", "title": "SOPA Strike, January 18", "url": "https://www.philihp.com/2012/sopa-strike-january-18.html", "published_at": "2012-01-17T00:00:00+00:00" }, { "id": "01a087c1-c511-7371-b398-321e3b4a0961", "title": "How to Create an Empty SAS Dataset", "url": "https://www.philihp.com/2012/how-to-create-an-empty-sas-dataset.html", "published_at": "2012-01-16T00:00:00+00:00" }, { "id": "01a087c1-c511-7371-b398-321e3c46d7e1", "title": "DIY LED Hula Hoop", "url": "https://www.philihp.com/2011/diy-led-hula-hoop.html", "published_at": "2011-12-28T00:00:00+00:00" }, { "id": "01a087c1-c511-7371-b398-321e3c9e7ee2", "title": "Please stop creating links with target=\"_new\".", "url": "https://www.philihp.com/2011/please-stop-creating-links-with-target_new.html", "published_at": "2011-11-16T00:00:00+00:00" }, { "id": "01a087c1-c511-7371-b398-321e3d625227", "title": "Using Eclipse WTP with Maven's eclipse:eclipse Goal", "url": "https://www.philihp.com/2011/using-eclipse-wtp-with-mavens-eclipseeclipse-goal.html", "published_at": "2011-11-01T00:00:00+00:00" }, { "id": "01a087c1-c511-7371-b398-321e3d684a98", "title": "Servlet Filters mapped to JSPs in Tomcat", "url": "https://www.philihp.com/2011/servlet-filters-mapped-to-jsps-in-tomcat.html", "published_at": "2011-09-26T00:00:00+00:00" }, { "id": "01a087c1-c511-7371-b398-321e3dad9450", "title": "How to get the Last Day of a Month in SAS", "url": "https://www.philihp.com/2011/how-to-get-the-last-day-of-a-month-in-sas.html", "published_at": "2011-09-20T00:00:00+00:00" }, { "id": "01a087c1-c511-7371-b398-321e3dbe4874", "title": "Maximum sizes of MySQL Blob Fields", "url": "https://www.philihp.com/2011/maximum-sizes-of-mysql-blob-fields.html", "published_at": "2011-09-01T00:00:00+00:00" }, { "id": "01a087c1-c511-7371-b398-321e3e62d19d", "title": "This is how I feel about C", "url": "https://www.philihp.com/2011/this-is-how-i-feel-about-c.html", "published_at": "2011-08-18T00:00:00+00:00" }, { "id": "01a087c1-c511-7371-b398-321e3e69cafc", "title": "Adding Tiles to a Struts 1.3 Project with a Custom Request Processor", "url": "https://www.philihp.com/2011/adding-tiles-to-a-struts-1-3-project-with-a-custom-request-processor.html", "published_at": "2011-08-11T00:00:00+00:00" }, { "id": "01a087c1-c511-7371-b398-321e3e82015a", "title": "This is how I feel about Perl", "url": "https://www.philihp.com/2011/this-is-how-i-feel-about-perl.html", "published_at": "2011-08-03T00:00:00+00:00" }, { "id": "01a087c1-c512-709d-afc4-627c3838ccdf", "title": "CSS even/odd row selectors! Finally!", "url": "https://www.philihp.com/2011/css-evenodd-row-selectors-finally.html", "published_at": "2011-04-15T00:00:00+00:00" }, { "id": "01a087c1-c512-709d-afc4-627c38f271ba", "title": "Using SAS/OR to solve Sudoku puzzles", "url": "https://www.philihp.com/2011/using-sasor-to-solve-sudoku-puzzles.html", "published_at": "2011-04-11T00:00:00+00:00" }, { "id": "01a087c1-c512-709d-afc4-627c39a22c15", "title": "Euler's Identity; e^(i*pi)=-1", "url": "https://www.philihp.com/2011/eulers-identity-eipi-1.html", "published_at": "2011-04-04T00:00:00+00:00" }, { "id": "01a087c1-c512-709d-afc4-627c3a54b6c1", "title": "Things I Learned from Wiring a Car Stereo", "url": "https://www.philihp.com/2011/things-i-learned-from-wiring-a-car-stereo.html", "published_at": "2011-03-25T00:00:00+00:00" }, { "id": "01a087c1-c512-709d-afc4-627c3b2b6f38", "title": "Excel 2010's Default AutoRecover Location", "url": "https://www.philihp.com/2010/excel-2010s-default-autorecover-location.html", "published_at": "2010-11-09T00:00:00+00:00" }, { "id": "01a087c1-c512-709d-afc4-627c3ba36876", "title": "Mode 7, and How to Fake Depth in 2d", "url": "https://www.philihp.com/2010/mode-7-and-how-to-fake-depth-in-2d.html", "published_at": "2010-10-18T00:00:00+00:00" }, { "id": "01a087c1-c512-709d-afc4-627c3bad0375", "title": "EAGLE Library for 4-Digit 7-Segment LED Display", "url": "https://www.philihp.com/2010/eagle-library-for-4-digit-7-segment-led-display.html", "published_at": "2010-10-11T00:00:00+00:00" }, { "id": "01a087c1-c512-709d-afc4-627c3bd4ad5e", "title": "ii - A True Minimalist's IRC Client", "url": "https://www.philihp.com/2010/ii-a-true-minimalists-irc-client.html", "published_at": "2010-09-16T00:00:00+00:00" }, { "id": "01a087c1-c512-709d-afc4-627c3c92b9a9", "title": "Easy Way to Remove All Variable Labels in SAS", "url": "https://www.philihp.com/2010/easy-way-to-remove-all-variable-labels-in-sas.html", "published_at": "2010-09-15T00:00:00+00:00" }, { "id": "01a087c1-c512-709d-afc4-627c3ce2d6e6", "title": "HDCP Cracked?", "url": "https://www.philihp.com/2010/hdcp-cracked.html", "published_at": "2010-09-14T00:00:00+00:00" }, { "id": "01a087c1-c512-709d-afc4-627c3d7e1678", "title": "Wicket Homepage Redirecting", "url": "https://www.philihp.com/2010/wicket-homepage-redirecting.html", "published_at": "2010-08-31T00:00:00+00:00" }, { "id": "01a087c1-c512-709d-afc4-627c3e361a62", "title": "Hello, Rule 30", "url": "https://www.philihp.com/2010/hello-rule-30.html", "published_at": "2010-06-22T00:00:00+00:00" }, { "id": "01a087c1-c512-709d-afc4-627c3f10745d", "title": "SQL Optimization: Union vs. Union All", "url": "https://www.philihp.com/2010/sql-optimization-union-vs-union-all.html", "published_at": "2010-05-27T00:00:00+00:00" }, { "id": "01a087c1-c512-709d-afc4-627c3fe40390", "title": "Abusing Hash objects as a Stack in SAS Data Step", "url": "https://www.philihp.com/2010/abusing-hash-objects-as-a-stack-in-sas-data-step.html", "published_at": "2010-05-07T00:00:00+00:00" }, { "id": "01a087c1-c512-709d-afc4-627c407d6899", "title": "Neptune''s Pride: Things I Learned The Hard Way", "url": "https://www.philihp.com/2010/neptunes-pride-things-i-learned-the-hard-way.html", "published_at": "2010-05-06T00:00:00+00:00" }, { "id": "01a087c1-c512-709d-afc4-627c40e0a4f4", "title": "Looping through SAS metadata objects", "url": "https://www.philihp.com/2010/looping-through-sas-metadata-objects.html", "published_at": "2010-05-05T00:00:00+00:00" }, { "id": "01a087c1-c512-709d-afc4-627c41235e68", "title": "Dramatically Increasing SAS DI Studio performance of SCD Type-2 Loader Transforms", "url": "https://www.philihp.com/2010/dramatically-increasing-sas-di-studio-performance-of-scd-type-2-loader-transforms.html", "published_at": "2010-01-19T00:00:00+00:00" }, { "id": "01a087c1-c512-709d-afc4-627c415bf1f1", "title": "Friends in 2009", "url": "https://www.philihp.com/2010/friends-in-2009.html", "published_at": "2010-01-02T00:00:00+00:00" }, { "id": "01a087c1-c512-709d-afc4-627c4186247e", "title": "Easy Inserting/Appending Libraries into FMTSEARCH path lists in SAS 9.2", "url": "https://www.philihp.com/2009/easy-insertingappending-libraries-into-fmtsearch-path-lists-in-sas-9-2.html", "published_at": "2009-10-27T00:00:00+00:00" }, { "id": "01a087c1-c512-709d-afc4-627c419a4dc3", "title": "Counting distinct variables in SQL with SAS", "url": "https://www.philihp.com/2009/counting-distinct-variables-in-sql.html", "published_at": "2009-10-26T00:00:00+00:00" }, { "id": "01a087c1-c512-709d-afc4-627c42433de1", "title": "For loops in SAS", "url": "https://www.philihp.com/2009/for-loops-in-sas.html", "published_at": "2009-10-07T00:00:00+00:00" }, { "id": "01a087c1-c512-709d-afc4-627c429e530e", "title": "The Family Reunion Problem", "url": "https://www.philihp.com/2009/the-family-reunion-problem.html", "published_at": "2009-10-07T00:00:00+00:00" }, { "id": "01a087c1-c512-709d-afc4-627c42a88d13", "title": "NC Democrat Party refers to people as \"Tea Baggers", "url": "https://www.philihp.com/2009/nc-democrat-party-refers-to-people-as-tea-baggers.html", "published_at": "2009-09-18T00:00:00+00:00" }, { "id": "01a087c1-c512-709d-afc4-627c42c4b03e", "title": "Removing formats from all variables in a SAS Dataset", "url": "https://www.philihp.com/2009/removing-formats-from-all-variables-in-a-sas-dataset.html", "published_at": "2009-08-12T00:00:00+00:00" }, { "id": "01a087c1-c512-709d-afc4-627c435fb29c", "title": "Tablesaw that Won't Cut Fingers", "url": "https://www.philihp.com/2009/tablesaw-that-wont-cut-fingers.html", "published_at": "2009-07-19T00:00:00+00:00" }, { "id": "01a087c1-c512-709d-afc4-627c44180318", "title": "AT&T U-Verse DNS Loopback workaround for 3800HGV-B", "url": "https://www.philihp.com/2009/att-u-verse-dns-loopback-workaround-for-3800hgv-b.html", "published_at": "2009-07-18T00:00:00+00:00" }, { "id": "01a087c1-c513-7281-9301-c359a774df76", "title": "Sending HTTP Requests without Reloading and without AJAX", "url": "https://www.philihp.com/2009/posting-to-an-http-server-without-reloading.html", "published_at": "2009-07-14T00:00:00+00:00" }, { "id": "01a087c1-c513-7281-9301-c359a7f4a62a", "title": "Second best Final Fantasy game now on PS3", "url": "https://www.philihp.com/2009/second-best-final-fantasy-game-now-on-ps3.html", "published_at": "2009-06-05T00:00:00+00:00" } ] posts Claim your blog
Back to philihp.com
Blog · corpus.blog/blogs/philihp.com/posts

philihp.com

philihp.com

2026

2022

2021

2020

2019

2018

2017

2016

2015

2014

2013

2012

2011

2010

2009