Explanation of the difference between p5.js and processing.js here and here and here
The history of Processing here
"The only reason for time is so that everything doesn't happen at once." -Albert Einstein
20180824
20180710
BlackScript
Labels:
Observed
,
Programming
,
Tips
Valuable technique in JavaScript class coding: link
The following benchmarks indicate a performance improvement for bulk object creation.
Try this in your own browser here
Update 2025.0106: Ex Nihilo wins in jsbench.me tests on Chrome 131 [left] and Firefox 133 [right]:
Update 2023.0119: Ex Nihilo wins in jsbench.me tests on Chrome 109 and Firefox 109:
Older benchmarks follow for archival reference:
A
benchmark.js
test running on node.js:
________________________________________________________ Research>node --version v10.16.3 Research>node bench.js OldStyleClass x 165,772 ops/sec ±0.38% (106 runs sampled) Ex Nihilo x 180,305 ops/sec ±0.50% (104 runs sampled) Fastest is Ex Nihilo Research>node bench.js NewStyleClass x 163,242 ops/sec ±0.28% (111 runs sampled) Ex Nihilo x 180,219 ops/sec ±0.46% (100 runs sampled) Fastest is Ex Nihilo Research>node bench.js OldStyleClass x 160,930 ops/sec ±0.58% (103 runs sampled) NewStyleClass x 161,634 ops/sec ±0.79% (105 runs sampled) Ex Nihilo x 176,387 ops/sec ±0.44% (107 runs sampled) Fastest is Ex Nihilo
Older runs on jsperf.com:

Update 20200627: None of the newer versions of the browsers run Ex Nihilo faster. Optimization wins!
Update 20201006: Additional server-side tests:
________________________________________________________ Research>node --version v12.19.0 Research>node bench.js OldStyleClass x 153,207 ops/sec ±0.95% (84 runs sampled) NewStyleClass x 150,535 ops/sec ±0.32% (93 runs sampled) Ex Nihilo x 166,850 ops/sec ±1.84% (91 runs sampled) Fastest is Ex Nihilo ________________________________________________________ Research>node --version v13.14.0 Research>node bench.js OldStyleClass x 151,339 ops/sec ±0.76% (86 runs sampled) NewStyleClass x 147,369 ops/sec ±0.27% (95 runs sampled) Ex Nihilo x 164,624 ops/sec ±0.26% (93 runs sampled) Fastest is Ex Nihilo ________________________________________________________ Research>node --version v14.13.0 Research>node bench.js OldStyleClass x 147,954 ops/sec ±1.03% (87 runs sampled) NewStyleClass x 144,716 ops/sec ±0.37% (93 runs sampled) Ex Nihilo x 160,388 ops/sec ±0.47% (89 runs sampled) Fastest is Ex Nihilo
20161107
Faster hypot for JavaScript
Labels:
Computing
,
Mathematics
,
Maximize
,
Programming
When the distance between two points is required, one method of computation in modern browsers is a function called Hypot. Implementation of this function is often not optimized and ultimately calls on
Math.sqrt
at the last step. Performance tests indicate a calculation bottleneck with JavaScript's standard Math library implementation. Here then is an improvement of hypot
at the cost of a fractional error (0.05%):
function hypot(x, y) { // expects: abs(x) and abs(y)
var a = Math.max(x,y),
b = Math.min(x,y)/a,
c = 1 + b*b;
return a * ((-0.0705613450914645*c + 0.624084374908536)*c + 0.447383574908535);
}
Note, this function expects absolute values (which can be computed on the call).
The formula in the return is a polynomial approximation of the square root of values in the range from 1 to 2. Caveat: your mileage may vary!
20161102
Neural Network in 12 lines of JavaScript
Labels:
Computing
,
Mathematics
,
Observed
,
Unit Operations
Inspired by Andrew Trask's article about coding a neural network in 11 lines of Python, I wondered if this could be accomplished as succinctly in JavaScript. Part of the brevity of the Python solution is the use of a common numeric library called Numpy which helps manipulate matrix mathematics. For something comparable, I rolled my own JavaScript matrix library to assist with some of the notation and computation. The implementation converges quickly on the XOR solution as represented by the box moving toward the outlined target.
Explore the solution on the newly revamped OpenProcessing website and embedded here:
20161112 Update: Just noticed this similar implementation.
20161112 Update: Just noticed this similar implementation.
20160306
Sphiral Minima
Labels:
Circular
,
Computing
,
Mathematics
1000 dots perform a coordinated dance. How many combinations could there be? It's surprising! Tap/click to advance along the time continuum (the x value is added to the timeline, so clicking near the left side advances more slowly than clicking near the right side)...amazing harmonic patterns await. WARNING: there is a naturally occurring stroboscopic effect at times. This sketch is a reduction of http://hakim.se/experiments/html5/sphere.
20150702
BlueStacks memory allocation
Unfortunately, BlueStacks tends to use a lot of memory and then forgets to cover its tracks resulting in memory bloat and starvation of other tasks. To free up memory, after closing BlueStacks, go into Windows Task Manager and on the Services tab, shut down the following:
BstHdAndroidSvc
BstHdLogRotatorSvc
BstHdUpdaterSvc
Then, on the Processes tab, right-click on the entry HD-Agent.exe and select "End Process".
On my system, this frees up 1.8GB of memory.
BstHdAndroidSvc
BstHdLogRotatorSvc
BstHdUpdaterSvc
Then, on the Processes tab, right-click on the entry HD-Agent.exe and select "End Process".
On my system, this frees up 1.8GB of memory.
20150328
Gameforge: War-Game Strategy Guide
The following advice/opinion is primarily for War Game (present level 216), but also applies somewhat to Knight Game.
Reinvest collected hourly payments and objective earnings into income production. Spend attribute points primarily on attack offensive strength and secondarily on oil(fortitude) - this helps perform assignments(quests). An assignment in Fireland requires 95 oil while later, in Hawaii, an alliance size of 973.
Realize that these games are not continuous play...after depleting resources on objectives, attack opponents, build up income production and then set the game aside. Opponents take 8% per successful attack and can be repeated several times until health is below 24.
Sometimes a higher level player attacks unprovoked. If this happens, check to be sure the opponent is not in the alliance(order). Remove the player if they are poaching.
Each player's country flag is displayed. It might be advantageous to attack an opponent during their sleep cycles.
At some levels/ranks and alliance/clan size combinations, some or all opponents may be artificial players with random names. Watch for player profiles where the number of assignments(quests) and battles(duels) won/lost are displayed as a dash (-). Also, there is no comment tab on these players. These opponents are dynamically generated for an even match up and often yield little rewards. They can be useful to bring health down below 24.
One major difference in Knight Game, is the lack of dedicated defense objects. Instead, this function is performed by Vassals, which also produce income. Tip: buy as many Beggars as possible. ALL of them are used in duels.
Additional links:
http://mafiagameapp.blogspot.com
http://www.gamefaqs.com/boards/669052-war-game/64582658
http://www.gamefaqs.com/boards/669052-war-game/64582709
Reinvest collected hourly payments and objective earnings into income production. Spend attribute points primarily on attack offensive strength and secondarily on oil(fortitude) - this helps perform assignments(quests). An assignment in Fireland requires 95 oil while later, in Hawaii, an alliance size of 973.
Realize that these games are not continuous play...after depleting resources on objectives, attack opponents, build up income production and then set the game aside. Opponents take 8% per successful attack and can be repeated several times until health is below 24.
Sometimes a higher level player attacks unprovoked. If this happens, check to be sure the opponent is not in the alliance(order). Remove the player if they are poaching.
Each player's country flag is displayed. It might be advantageous to attack an opponent during their sleep cycles.
At some levels/ranks and alliance/clan size combinations, some or all opponents may be artificial players with random names. Watch for player profiles where the number of assignments(quests) and battles(duels) won/lost are displayed as a dash (-). Also, there is no comment tab on these players. These opponents are dynamically generated for an even match up and often yield little rewards. They can be useful to bring health down below 24.
One major difference in Knight Game, is the lack of dedicated defense objects. Instead, this function is performed by Vassals, which also produce income. Tip: buy as many Beggars as possible. ALL of them are used in duels.
Additional links:
http://mafiagameapp.blogspot.com
http://www.gamefaqs.com/boards/669052-war-game/64582658
http://www.gamefaqs.com/boards/669052-war-game/64582709
20150327
Facebook video problems
Labels:
Observed
Running Facebook in the latest Chrome browser, we encountered some Flash video stuttering or choppiness during playback. To fix, see https://forums.adobe.com/thread/891337 and turn off hardware acceleration for Flash. Leave hardware acceleration enabled in Chrome.
20150213
A memorable approximation of pi
Labels:
Circular
,
Mathematics
,
Observed
One of the best-known approximations of π is the fraction 22/7. Another is 355/113 which is easy to memorize by remembering the first three odd numbers, 1,3, and 5. Next, double the digits: 11 33 55, then group as 113 355, and finally slide the 113 under the 355.
Upon examining how close the result of 355/113 comes to the real value of π, it made sense to find another memorable fraction that approximates that difference which could then be summed. Repeating the process once more yields a formula accurate to the first 17 digits of π. (Perhaps we'll name it the "Dunn Approximation of Pi" after its discoverer.)
which, when computed carefully, yields: 3.1415926535897932 762597293465706
(which is greater than π by a mere 37.8 quintillionth, or more precisely, 3.7797085963291064091099708947939e-17)
(which is enough accuracy to compute the diameter of the earth with an error of only 1 nanometer. For reference, the thickness of a sheet of paper is about 100,000 nanometers!)
Most importantly, for memorization: the second term can be thought of as 33 78 99 (then slide the first three digits under the last three, just like we did with the first term). Next, think of the final term as 10 777 (this time, invert the slide, moving the last two 77s under the 107). What remains to be remembered are the signs and the adjusting multipliers of "7" (notice there are five of them in the equation) and "12" (which is, of course, five higher than 7).
In JavaScript, the formula looks like: var pi=355/113-1e-7*899/337+1e-12*107/77;
(yields 3.141592653589793 56009 )
In Excel or LibreOffice Calc, paste into a cell: =355/113-1e-7*899/337+1e-12*107/77
(3.14159265358979 00000)
In Java:
double t1=(double)355f/(double)113f;
double t2=(double)1e-7*(double)899f/(double)337f;
double t3=(double)1e-12*(double)107f/(double)77f;
double pi=t1-t2+t3;
(3.14159265358979 05)
Upon examining how close the result of 355/113 comes to the real value of π, it made sense to find another memorable fraction that approximates that difference which could then be summed. Repeating the process once more yields a formula accurate to the first 17 digits of π. (Perhaps we'll name it the "Dunn Approximation of Pi" after its discoverer.)
which, when computed carefully, yields: 3.1415926535897932 762597293465706
(which is greater than π by a mere 37.8 quintillionth, or more precisely, 3.7797085963291064091099708947939e-17)
(which is enough accuracy to compute the diameter of the earth with an error of only 1 nanometer. For reference, the thickness of a sheet of paper is about 100,000 nanometers!)
Most importantly, for memorization: the second term can be thought of as 33 78 99 (then slide the first three digits under the last three, just like we did with the first term). Next, think of the final term as 10 777 (this time, invert the slide, moving the last two 77s under the 107). What remains to be remembered are the signs and the adjusting multipliers of "7" (notice there are five of them in the equation) and "12" (which is, of course, five higher than 7).
In JavaScript, the formula looks like: var pi=355/113-1e-7*899/337+1e-12*107/77;
(yields 3.141592653589793 56009 )
In Excel or LibreOffice Calc, paste into a cell: =355/113-1e-7*899/337+1e-12*107/77
(3.14159265358979 00000)
In Java:
double t1=(double)355f/(double)113f;
double t2=(double)1e-7*(double)899f/(double)337f;
double t3=(double)1e-12*(double)107f/(double)77f;
double pi=t1-t2+t3;
(3.14159265358979 05)
In numcalc.com with 192-bit precision:
355/113-10^-7*(899/337)+10^-12*(107/77)
(yields 3.1415926535897932 76259729346570553471632750013044648164525)
Rational approximations were explored and computed using a modified version of this tool written in Perl.
See also this visualization of π approximations.
For reference, here are additional digits of π: 3.1415926535897932 3846264338327950288419716939937510 58209749445923078164062862089986280 348253421170679821480865132823066470 9384460955058223172535940 812848111745028410
Rational approximations were explored and computed using a modified version of this tool written in Perl.
See also this visualization of π approximations.
For reference, here are additional digits of π: 3.1415926535897932 3846264338327950288419716939937510 58209749445923078164062862089986280 348253421170679821480865132823066470 9384460955058223172535940 812848111745028410
20150119
HP-16C
Labels:
Computing
,
Programming
The newest addition to the computing family here at the studio is a museum-quality specimen of the Hewlett Packard 16C Computer Scientist acquired through eBay.
Take a look at this great article titled "Long Live the HP-16C" by Valentin Albillo here.
Love this device! Of course, the HP Museum site has useful information about this and many other HP calculators. If seeking the missing manual, there is a scanned version here.
Also, Cameron Paine has a faithful simulation running on the Windows OS here. (Select the menu item View...Classic for the nostalgic visual replica.) Another version for the browser is meh.
Update 20150227:
One Voyager was not enough! We added a near-flawless HP-11C.
Additional internal data
Take a look at this great article titled "Long Live the HP-16C" by Valentin Albillo here.
Love this device! Of course, the HP Museum site has useful information about this and many other HP calculators. If seeking the missing manual, there is a scanned version here.
Also, Cameron Paine has a faithful simulation running on the Windows OS here. (Select the menu item View...Classic for the nostalgic visual replica.) Another version for the browser is meh.
Update 20150227:
One Voyager was not enough! We added a near-flawless HP-11C.
Additional internal data
20140306
Referrals
Labels:
Mechanics
Article on the imminent conversion of games to HTML/canvas (or svg!): jump
Great article on the mathematics of experience points (XP) as a progression mechanism in games: jump
Helpful tool to figure out a formula given a set of numbers (such as XP at each level up): jump
Super impressive chess program in just 1023 bytes!: jump
Great article on the mathematics of experience points (XP) as a progression mechanism in games: jump
Helpful tool to figure out a formula given a set of numbers (such as XP at each level up): jump
Super impressive chess program in just 1023 bytes!: jump
20140130
Clash of Clans Strategy Guide
Labels:
Design
,
Mechanics
,
Strategy
,
Tactics
,
Unit Operations
Below are tips for Clash of Clans, serving as guidance from level 4 onward. First, focus on upgrading resource acquisition and storage. Note that upgrading the gold mine requires elixir while upgrading the elixir collector requires gold. Be aware that operations are halted during upgrade of the mine and collector, thus sometimes it is necessary to simply wait for resources to build up before proceeding.
After upgrading the Town Hall beyond the first level, build additional mines/collectors so only one is down during upgrade. Remove obstacles to find gems. Be careful with some of the interface elements as it is easy to accidentally spend hard-earned gems. Save every gem to eventually afford a third builder hut for 500 gems.
The first 19 levels is mostly about building a solid home-base with good resource collectors, seeking opponents with weak defenses, and collecting trophies. Difficulty might be found in the single-player "Fool's Gold" and "Immovable Object" challenges...these levels require some ingenuity or additional research at the laboratory.
Build a strong defense by creating a double-wall around cannons, archer towers, and resource storage. Mines can benefit from defense protection when placed just outside the wall within range of defense units. Check that opponents cannot deploy forces within the wall...when moving an object, watch for the highlighted areas on the ground to be certain there are no holes. Lay traps and bombs on the interior and reinforce the inner wall around the secure area. (see diagram above) The interior can serve for resource storage or for housing the town hall and eventually additional defenses like the wizard tower.
When attacking an opponent, if there are undefended buildings in the corner areas, deploy a troop to each building at the start of the battle rather than waiting for the collective to spend valuable time running to every corner near the end.
The gem box yields 25 gems and recurs every 8 days (on average).
Additional strategy...
General: jump
Attack: jump
Layouts: jump
Top 6: jump
Further reading:
http://clashofclans.wikia.com/
http://toucharcade.com/2013/09/30/clash-of-clans-guide-how-to-win-without-spending-real-money/
CoC shares mechanisms found in other games: building construction (like OGame), resource collection and management (like Edgeworld), multi-player combat (like Edgeworld), clearing obstacles (like DragonVale), re-arming defenses after use (like Edgeworld), and freemium play (like Dark District).
http://www.gamasutra.com/view/news/185406/Clash_of_Clans_5_keys_to_success.php
http://en.wikipedia.org/wiki/Strategy_video_game
Also interesting are the copies of Clash of Clans: jump
20131204
Edgeworld Strategy Guide
Strategic tips:
1) When attacking a player who is online, do not end the attack prematurely; keep the clock running for the full 5 minutes. This can help frustrate the opponent.
2) When using a 15 minute XP boost, attack Factions (PvE) about half the current level. When the experience bar reaches maximum, end the battle and re-attack. This can help accelerate level gains to a rate of about 100 levels in one 15 minute boost.
3) When given the opportunity to spend a Cerulean core, choose offensive structure upgrades such as warp gates, tech lab, fleet academy, generals quarters, etc.
4) Be cautious with Battle Cruisers on higher level bases. They can get wiped out easily.
5) Always keep queues full: buildings upgrading and troops training.
1) When attacking a player who is online, do not end the attack prematurely; keep the clock running for the full 5 minutes. This can help frustrate the opponent.
2) When using a 15 minute XP boost, attack Factions (PvE) about half the current level. When the experience bar reaches maximum, end the battle and re-attack. This can help accelerate level gains to a rate of about 100 levels in one 15 minute boost.
3) When given the opportunity to spend a Cerulean core, choose offensive structure upgrades such as warp gates, tech lab, fleet academy, generals quarters, etc.
4) Be cautious with Battle Cruisers on higher level bases. They can get wiped out easily.
5) Always keep queues full: buildings upgrading and troops training.
20131112
Star Wars: Tiny Death Star Strategy Guide
Inheriting its game mechanics from Tiny Tower, sales can be maximized in the same way within a Tiny Death Star: After building 20 or so levels, focus on re-stocking only 3-coin inventory. See the prior article for a bit more on this. Work toward evicting any Bitizen not in their dream job. On each apartment floor, try to keep one slot open for a new move-in. (Evict any new tenant if no dream-job is available.) Save Imperial Bux to upgrade the elevator.
20131025
Formulas for Squircles
Labels:
Mathematics
,
Observed
The Desmos online graphing calculator is useful for visualizing mathematical equations such as the squircle.
20131013
Pocket Trains Strategy Guide
Getting started:
Aim to build and operate five railroads between 11 cities in Europe. This is sufficient to fund the start up phase.
The Jobs button leads to a list of available cargo to haul, grouped by city, mixed with items parked in the yard. Upgrade the station to increase the yard size. Each prospective shipment has a coin-number assignment (1 through 4) to indicate relative value of the job. Maximize profit by prioritizing selections in the following order: bux, crates, event cargo, 4-coin, yard cars. Choose 3-coin and 2-coin only if the higher priority shipments are not available. This strategy might involve hauling a few pieces in the opposite direction temporarily. Choose to haul as many cars as possible. Don't bother with 1-coin offers unless there's no better option and it is delivered at the next destination - storing single coin cars clutters valuable yard space.
Let's take a closer look...
The Jobs button leads to a list of available cargo to haul, grouped by city, mixed with items parked in the yard. Upgrade the station to increase the yard size. Each prospective shipment has a coin-number assignment (1 through 4) to indicate relative value of the job. Maximize profit by prioritizing selections in the following order: bux, crates, event cargo, 4-coin, yard cars. Choose 3-coin and 2-coin only if the higher priority shipments are not available. This strategy might involve hauling a few pieces in the opposite direction temporarily. Choose to haul as many cars as possible. Don't bother with 1-coin offers unless there's no better option and it is delivered at the next destination - storing single coin cars clutters valuable yard space.
Let's take a closer look...
20130820
20130731
Galaxy Empire
We reviewed this free on-line strategy game last year. Since then, we've developed eight planets, acquired five moons, gained over 27 million points, and ranked in the top 70 players on one of the many game servers. With this experience, we've compiled a few tips and tricks learned along the way:
1) As new planets are developed, don't bother with solar plants...they are a waste of space on the planet. Fusion plants are much more efficient. If a little extra power is required, put up some solar satellites. Here's an example: if Energy Tech is researched to level 15, the output from a level 16 Fusion plant is 8889 energy. The solar plant on the other hand requires level 28 to generate 8075 energy - not quite as much, yet it uses up valuable planetary space that can be put to better use by increasing mines to higher levels.
2) After making careful observations of all metrics across planets, research, production, construction, ship efficiency, battle reports, etc., we could find no benefits to improving Plasma Technology beyond level 10, other than gaining double score points for spending resources on research. We asked Support about the specific effect when upgrading Plasma Tech beyond level 10. Here is their response:
3) Each scan using the EU-X radar array costs 50K in gas. Be sure to have a reserve available on the moon.
4) Try specializing some planets. By sacrificing a few levels in the other mines on a planet, a higher gain can be had in another. For example, a level 39 metal mine with Lv7 four-star metal galactonite equipped on the planet produces 770K/h. That's over 18M per day...not bad!
5) Researching Hyperspace Tech reduces fuel requirements for fleet transit. As a result, there is a corresponding increase in the amount of cargo that can be loaded. It doesn't change the cargo capacity of the ships, but be aware that the fuel used for flying is also loaded into the cargo bay, therefore reducing fuel requirements increases space for transport.
6) To identify where improvements can be made, create a one page spreadsheet to tally building levels and production numbers across planets. For example, to optimize for Destroyer production, aim toward the ratio 48:40:12 - that is 48% of total production should be metal, 40% crystal, and 12% gas. Our next goal is to determine the optimal configuration of mines for a given planet size with respect to Destroyer production. Stay tuned.
7) On the defensive side, every 16 ion cannons is equal to one large shield dome. It takes 2.5 plasma cannons to take out a dreadnought and 3.5 to eliminate a destroyer. Build accordingly.
8) Expenditures of gas to move ships around does not contribute toward score.
1) As new planets are developed, don't bother with solar plants...they are a waste of space on the planet. Fusion plants are much more efficient. If a little extra power is required, put up some solar satellites. Here's an example: if Energy Tech is researched to level 15, the output from a level 16 Fusion plant is 8889 energy. The solar plant on the other hand requires level 28 to generate 8075 energy - not quite as much, yet it uses up valuable planetary space that can be put to better use by increasing mines to higher levels.
2) After making careful observations of all metrics across planets, research, production, construction, ship efficiency, battle reports, etc., we could find no benefits to improving Plasma Technology beyond level 10, other than gaining double score points for spending resources on research. We asked Support about the specific effect when upgrading Plasma Tech beyond level 10. Here is their response:
The plasma tech can be used in the construction of the new fleet, the tech has powerful combatting force. Every upgrading the tech can let you to construct the higher one or the stronger weapon or fleet. if you did have the relative tech, you can not have other fleets or weapon.Huh? We were hoping for a comprehensible response such as, "there is a 1% gain in metal mining production", or "there is no specific gain beyond level 9", or "good idea - look for an improvement in the next version".
3) Each scan using the EU-X radar array costs 50K in gas. Be sure to have a reserve available on the moon.
4) Try specializing some planets. By sacrificing a few levels in the other mines on a planet, a higher gain can be had in another. For example, a level 39 metal mine with Lv7 four-star metal galactonite equipped on the planet produces 770K/h. That's over 18M per day...not bad!
5) Researching Hyperspace Tech reduces fuel requirements for fleet transit. As a result, there is a corresponding increase in the amount of cargo that can be loaded. It doesn't change the cargo capacity of the ships, but be aware that the fuel used for flying is also loaded into the cargo bay, therefore reducing fuel requirements increases space for transport.
6) To identify where improvements can be made, create a one page spreadsheet to tally building levels and production numbers across planets. For example, to optimize for Destroyer production, aim toward the ratio 48:40:12 - that is 48% of total production should be metal, 40% crystal, and 12% gas. Our next goal is to determine the optimal configuration of mines for a given planet size with respect to Destroyer production. Stay tuned.
7) On the defensive side, every 16 ion cannons is equal to one large shield dome. It takes 2.5 plasma cannons to take out a dreadnought and 3.5 to eliminate a destroyer. Build accordingly.
8) Expenditures of gas to move ships around does not contribute toward score.
20130615
Root Beer Research
Labels:
Observed
Barq's root beer tastes better the colder it gets. Near freezing, it becomes more syrupy and fizzy...refreshing on a warm day, especially after some heavy-duty yard work. Looking at the ingredients however, it is sad to see HFCS (high-fructose corn syrup) and sodium benzoate. Time for a change. Further investigation online revealed a store appropriately named "The Root Beer Store". They carry over 100 brands of root beer, and although prices are a tad steep, we are seeking these four brands of root beer: Bulldog, Virgil's, Sprecher, and Capone. (...almost sounds like a law firm!) These selections are based on favorable reviews found on The Soda Jerks. Elsewhere, we discovered several good reviews of Vintage brand root beer which can now be found at Trader Joe's stores.
Update: Obtained the four aforementioned items from the Root Beer Store and wow, the Bulldog is amazing. Two additional recommended root beers to obtain and sample: Hank’s and So Duh! Rockin’. Plus, Centennial Root Beer from Brewbakers in Huntington Beach.
Update: Obtained the four aforementioned items from the Root Beer Store and wow, the Bulldog is amazing. Two additional recommended root beers to obtain and sample: Hank’s and So Duh! Rockin’. Plus, Centennial Root Beer from Brewbakers in Huntington Beach.
20130603
Objective-C and Code::Blocks
Labels:
Programming
Tricky to get this combination operational. The wiki entry is helpful for configuration. Not finding any of the Objective-C libraries in the default installation, we located what might be the correct support files on the TDM site. But after adding these matched libraries, we ended up with compiler warnings and a segmentation fault during the first alloc, using the simple test code on the wiki page. Next thing to try was the troubleshooting suggestion of removing libobjc.dll.a ... but that resulted in a laundry list of "undefined reference to" ... precisely the message the wiki entry claims the removal will avoid!
Finally, what worked was removing the entire mingw installation from the CodeBlocks directory (just delete everything in the mingw directory, version 4.7.1) and install mingw using the installer referenced on the mingw website. During installation, set the install directory to the mingw directory under CodeBlocks and then select to install the C, C++, and Objective-C compilers. This resulted in a good installation of GCC 4.6.2, a warning-free compile, and a faultless run...yay!!! (Remember, you cannot do any Apple development with this configuration, so including foundation.h is not allowed. But you can learn and play with the fundamentals of the Objective-C language on the Windows platform in preparation for moving to a Mac for iOS or OSX app development.)
Finally, what worked was removing the entire mingw installation from the CodeBlocks directory (just delete everything in the mingw directory, version 4.7.1) and install mingw using the installer referenced on the mingw website. During installation, set the install directory to the mingw directory under CodeBlocks and then select to install the C, C++, and Objective-C compilers. This resulted in a good installation of GCC 4.6.2, a warning-free compile, and a faultless run...yay!!! (Remember, you cannot do any Apple development with this configuration, so including foundation.h is not allowed. But you can learn and play with the fundamentals of the Objective-C language on the Windows platform in preparation for moving to a Mac for iOS or OSX app development.)
Subscribe to:
Posts
(
Atom
)