Quantcast
Channel: Planet Object Pascal
Viewing all 1725 articles
Browse latest View live

Delphi Code Monkey: Windows as a Legacy System

$
0
0
I have been seeing charts like this one all over the place, but I think this one is telling.  It's from a presentation by a firm called KPCB.


First there's this technology cycles graphic:


Finally, here's the visual chart that goes with the above infographic:




So the WinTel era starts with MS-DOS in about 1982, and if you plot the line at the left side, with some kind of long tail, a gaussian distribution, which I think makes sense, you get this:


If that happens, here's what you'll see:

  • PC shipments will continue to decline, and the PC will become a tiny niche that represents about 10% or less of the overall computing world's annual sales.
  • Microsoft will continue to control the WinTel/PC desktop world, but the significance of that will shift almost entirely upstream to the Enterprise and large Corporate markets.


Yesterday, when I was having trouble sleeping, I did a search on a few Legacy Technologies that you might not remember.  Does anyone remember the HP e3000 family of computers, and its accompanying MPE/iX operating system?

Imagine your business ran on these boxes:



Then imagine you got a letter from HP saying that they're ceasing production of this hardware you rely on, and the software that runs your entire business on it.  They politely suggest you transition onto Something Else.   Your compilers are no more good. Your source code is no good.  Your tools and your skills are no good.

Okay enough fear mongering.    Such a thing is very unlikely to happen in the WinTel PC world, at least not before 2099, which is long after I've left this planet, and you too, probably.    

But we're creeping ever closer to the era in which Windows applications on a Windows PC are a niche object, something not everyone wants anymore.  Businesses will continue to use them until there are no more bits of hardware left that run them.  But the days of PCs getting twice as fast are already hard up against the nanoscale physical limits of the universe, and the days when the R&D budgets that drive this Moore's Law growth are going away too.

Soon, very soon, within ten years, Windows will be a shadow of its former self.  This, my friends, is why Microsoft is scared, and is reacting with Windows 8.0 and 8.1. You and me, ordinary developers who target Windows are going to be fine, just fine.    In 2200, there will probably still be virtual machines running some of the Windows software that you and I are building now.








Firebird News: Database Workbench 4.4.1, free Lite Editions released

$
0
0
Upscene Productions is proud to announce the release of the free Lite editions of the popular Windows-based development tool: ” Database Workbench 4.4.1 Lite ” For more information, see here. Database Workbench Pro supports: - Borland InterBase (6.x – XE ) - Firebird ( 1.x, 2.x ) - MS SQL Server/MSDE ( 7, 2000, 2005, […]

Te Waka o Pascal: Hands Off My Application! (Another DPR Trick)

$
0
0
In a comment on my previous post, David Heffernan noted that the IDE messes around with other parts of the application DPR in addition to the uses list. He is right. Another area that the IDE likes to muck about with is the code in the DPR begin .. end itself ! Fortunately there is […]

Te Waka o Pascal: VCL Threading – Indeterminate Lifetimes

$
0
0
Sometimes when you launch a thread you don’t know when it will complete whatever processing it is tasked with. Sometimes you do. Sometimes it may never complete and will require that you expressly terminate it. Usually any given thread will have a lifecycle that is at least consistently one or the other, but sometimes you […]

The Podcast at Delphi.org: Things I Learned from Delphi CodeRage 8

$
0
0

Mostly from CodeRage 8, but some is from my time working for Embarcadero. I believe I’ve presented at every CodeRage, but this is my first time on the other side. It is also the biggest CodeRage by a significant margin. I’m sure the two events are unrelated, but it is still exciting.

  • Delphi can do functional programming, and it is really cool.
  • Cary Jensen is really excited about FireDAC– and so is everyone else, because FireDAC is really cool. He’s so excited he might cut his hair off . . .
  • There are a lot of really smart and very nice people working for Embarcadero.
  • No matter how easy you find it to understand someone, there is somebody else who has a hard time with their accent, speed, or terminology.
  • There is still more that I don’t know about Delphi then I do. And I think that is a good thing.
  • You really shouldn’t use “with” in your code, especially during a presentation that occurred afterAlister Christie‘s session on “anti-patterns.”
  • The Tag property is useful, but no one wants to admit it.
  • Delphi makes it easy to make nice UI and ugly UI. I like that it is flexible.
  • If you use something wrong it will be slow. If you test you can probably find a faster way.
  • Two people can present on the same thing and have different sessions while two other people can present on two different things and have surprising overlaps.
  • REST and JSON are great, but XML and SOAP are still around and in use.
  • If you want to scroll it, use a TListView. Otherwise use a TListBox.
  • When it comes to making custom controls, in any framework, Ray is still the guy.
  • It is a lot more work than I expected to run CodeRage, but also a lot more fun.
  • If you know what you are doing, it is pretty easy to access any iOS or Android API from Delphi.
  • You can use FireMonkey to make a pretty good mobile game, but it still isn’t recommended.
  • Encrypt your customer’s data, or you can get a huge fine.
  • Everyone always likes a good benchmark or comparison, but they don’t really tell you anything.
  • David I. really is as great of a guy as everyone says he is, but even 3 days of CodeRage will wear him out.
  • The Android Emulator is really slow and unresponsive, and no one seems to know why.
  • There usually is more than one way to do something. And just when I think I realized a smart way to do something, someone else will point out an easier way.
  • Replay videos are never online fast enough.
  • Making a good video to explain a technical topic is way more work than anyone realizes, even people who have done it a hundred times. And when you are done you are rarely satisfied with it.
  • GoToWebinar is a pain, but so far it seems to be the best option.
  • Even in a pre-recorded video, people will still help you find the typos in your code.
  • Questions can take longer than the session the questions are about.
  • Delphi developers really are amazing!

And some answers to frequently asked questions:

  • The code will usually be on the presenters blog.
  • Replays will be a couple weeks.
  • Turn on “Use Host GPU” in your Android emulator and don’t run your VM in an Emulator. Better yet, buy an Android device. The emulator is slow for everyone, which is why most Android developers don’t use it.

I learned a lot more, but those were the memorable bits that came to mind.

What did you learn?

DelphiTools.info: Time-stepping for Games and Simulations

$
0
0
The built-in time-stepping support for the upcoming release of SmartMS got an overhaul in the form of a now frame-rate oriented Game View component, and a simulation-oriented TMetronome time-stepper. This article quickly discusses the theory, changes, and gives an introduction for use in games and simulations. Time-Stepping in Simulated Worlds Time stepping in simulated worlds…

Delphi Code Monkey: TurboPascal PCODE compiler implemented in JavaScript

$
0
0
Anybody who doubts the sincerity of my last post (the PC desktop is headed inexorably towards a  legacy technology status) and who also is into Nostalgia, should check this out.

It's a mostly-complete TurboPascal compiler written in JavaScript that compiles to a UCSD-PCODE equivalent bytecode instead of native X86.  The resulting code runs in a UCDS-PCODE vm also implemented in JavaScript.

Now that's what I call a killer Blog Post. Read the blog post and try this over here.

Oh yea, and he posted to code on GitHub.  Anybody want to implement  Pascal RAD IDE in their web browser? Should only take a few weekends here and there.  I kid, I kid.   A desktop IDE, and a real compiler do a lot more, and take a lot longer to build, than this Just For Kicks thing did.  But if this person had realized that they could just download the real DOS TurboPascal from the Embarcadero/Borland Museum, and done that, then there wouldn't be a new JavaScript pascal parser out there.  Which is inherently a cool thing. 





The Podcast at Delphi.org: Wireless Android Debugging with Delphi xE5

$
0
0

Previously I blogged about how to connect to an emulator on a remote (or the host) machine. That also works for hardware connected to remote machines. But sometimes you want to work with hardware that isn’t even connected at all. Not to worry, here is how to wirelessly connect and debug with your favorite development tool. One note though, WiFi slower than a USB connection, so you will see a little delay sometimes.

Requirements:

  • A machine (Mac or PC) you can connect the Android device to that has ADB (Android Debug Bridge) installed. This is part of the Android SDK. As well as necessary ADB USB Drivers (required on Windows). This can be your development machine, or another machine.
  • A non-segmented wireless network that both your development machine and Android device are connected. (Segmenting prevents two connected devices from connecting to each other).

These commands work with ADB (Android Debug Bridge). It is easiest if you add it to your path. By default it is found in the following location, but you can install it anywhere on your system (Select the “Use An Existing IDE” option when downloading).

C:\Users\Public\Documents\RAD Studio\12.0\PlatformSDKs\adt-bundle-windows-x86-20130522\sdk\platform-tools

First you need to connect your Android device to any computer. With USB debugging turned on, verify you have access to the device via ADB with the following command:

Command:

adb devices

Output:

List of devices attached 
8605fa72        device

If the list is empty, then you need to enable USB debugging and make sure you have the USB ADB Bridge driver for your device installed.

Once ADB is setup, you can get the IP address with the following command:

adb shell netcfg|grep wlan0

Which should give you output like:

wlan0  UP     10.20.5.88/24  0x00001043 2a:32:11:42:aa:3c

Then put the device in TCPIP mode with the command:

adb kill-server
adb tcpip 5555

Then on your machine that is running Delphi XE5 go to the command window and type (with the IP address from above):

adb connect 10.20.5.88

Then you can verify it worked from that same command prompt

Command:

adb devices

Output:

List of devices attached
10.20.5.88:5555   device

And now you can connect to that device wirelessly from Delphi. Like I mentioned before, this is slower, so expect some delays on deploy and responding to breakpoints.

There is some more information on Stack Overflow, including some different options if you have a rooted Android device.


twm’s blog: headless server fun

$
0
0

A new Ubuntu based server I have set up recently had a power failure which unexpectedly resulted in the box not booting again. There were actually two problems:

  • fsck failed on the data mount because one of the data drives apparently had failed. It took forever but eventually prompted for user input “S” to skip or “M” to fix manually.
  • The first time this happened I just tried powercycling the computer again hoping it would just come up. Unfortunately Grub detected a failure and disabled the timeout for the boot menu. So the box was sitting there in the Grub boot menu.

Unfortunately this server is supposed to be headless (and is mounted to the wall 4m above ground), so there was not even a keyboard where somebody could blindly press one of these keys or press return to select an option in the Grub menu. But sshd wasn’t started yet, so I could ping the server (the IP stack was working) but not ssh into it to fix the problem. So I got myself a really long VGA cable and an USB extension cable to connect a monitor and a keyboard to look at the actual console.

The second issue can be solved easily:

In /etc/default/grub add an the following entry:

GRUB_RECORDFAIL_TIMEOUT=5

This lets Grub show the boot menu for 5 seconds and then tries to boot normally. I used 5 seconds rather than 0 so I could actually use that menu if need arises.

The first issue is a bit more involved. I want the box to at least boot to the state where I can access it through ssh even if the data drives fail. That means I have to remove the mount point from /etc/fstab but have to put the mount command somewhere later into the boot process. One option is to mount it in /etc/rc.local like this (suggested here):


fsck -n UUID=...
if [[ $? != 0 ]]; then
logger -p user.warning "/etc/rc.local: fsck fail $?"
else mount ....
fi

I’ll not be going that way because the system is not that critical. If it doesn’t come up, we will notice and just ssh into it and fsck and mount the data volume manually.

Delphi Haven: New Delphi blog Dave Nottages Delphi Worlds

$
0
0

I’ve just realised Dave Nottage (TeamB, and now MVP) has a blog, currently focusing on Delphi for iOS – hopefully it will get syndicated by DelphiFeeds.com soon, but until then, check it out directly.


Delphi Haven: StackOverflown

$
0
0

So… I was finally broken: I created a StackOverflow account. Annoyingly, a certain individual in particular is waaaayy too fast in answering most Delphi questions (genuine expertise + quick on the button = cheating, surely?)… so I started picking off Access ones instead (easy points there – write three lines of trivial SQL, and bingo). Alas, but even for a subject area in which one would expect to find a fair few novices asking novice questions, there remains a certain… priggishness about the fact.

Cartman

(Actual picture of self-appointed SO prefect moderator.)

 

[PS: to the literal-minded, no I don't actually think David is a 'cheat' any more than I think Eric Cartman actually patrols StackOverflow ;-) ]

Firebird News: Update of .NET Provider for OLEDB. Support of schemas implemented.

$
0
0
We continue to develop our .NET Provider for OLEDB. In the new build (#1434), we have implemented the methods to obtain database metadata: OleDbConnection.GetOleDbSchemaTable OleDbConnection.GetSchema GetOleDbSchemaTable Supported schemas: SchemaGuids DbInfoKeywords DbInfoLiterals All schemas of the OLEDB Provider Distinctions compared to standard OLEDB.NET Provider: The SchemaGuids schema describes all schemas including SchemaGuids, DbInfoKeywords and DbInfoLiterals. The […]

Delphi Code Monkey: Embarcadero MVP list updates

$
0
0
Embarcadero has released a new list of MVPs. I'm very happy to be on that list, because Delphi has been my favorite language, and favorite IDE since it was first released. 

To prevent misunderstandings let me just point out that an MVP is an independent community member, not an employee of Embarcadero, I am not an employee or sub-contractor.

I believe very much in the importance of the product, and its value to the development world.   I blog about Delphi related topics, on my own time, and I don't get paid to do that.  Why?   You wouldn't see me doing that with Java or with C++, although they are good enough tools in their own ways.  

Delphi has passionate users, because it's offering something unique.  I believe in that something unique that it offers, even though there might be some tools out there that cost zero dollars.  So am I a corporate shill?  No, definitely not.  And is everything always roses around here? No.  But I've always been clearly pro Delphi, and I'm grateful for the recognition that the people who believe in and love this language, and IDE can make contributions to the future of programming, too.

How do I do that?  I think I do that by teaching, consulting, by working with other Delphi people, by building little helpers, add-ons, components, and tools that people can use.  By showing that this is a really great way to build software. 


There are some great folks on the MVP list.  Zarko Gajic, who wrote about Delphi on About.com for many years.  Francois Piette, who has built a startling and fantastic quantity and quality of components, classes, tools, and frameworks in Delphi and made them open source.    Nick Hodges, a well known Delphi Blogger,  who did a stint as Delphi Product Manager, and has had many many other fun adventures in the community, a great guy.  Ray Konopka, Delphi component book guy, owner of Raize Software, builder of my favorite logging tool (CodeSite), and the guy who taught me to write design-time component code with his Delphi component book, back in the Delphi 3 era.  I could go on and on. Primoz Gabrijelcic... Alister Christie...  you guys rock!  Lots more people on that list deserve a shout out, but I'll keep it short. 

Anyways,  all of these people, myself included, think Delphi is awesome, and that it has a bright future ahead of it.

Firebird News: Converging and Cyclic Cascades with Firebird

$
0
0
With the impending implementation of Firebird as a backend for LibreOffice Base, to replace HSQLDB, I re-ran the tests of converging and cyclic cascades that were previously carried out for other databases. These tests were carried out using Firebird 2.5 running on Ubuntu Server 12.04.2  

Firebird News: LibreOffice Embedded Firebird/HSQLDB performance comparison

$
0
0
Here are the test results between Firebird and HSQLDB

Firebird News: go-fb: A #golang package for the Firebird database updated

$
0
0
Firebird package for Go is updated . Does not currently conform to database/sql/driver interfaces. There are quite a few changes in the master branch and the author (Brent Rowlan) is quite happy with it’s progress.

Firebird News: eHealth system demo up and running (powered by Firebird)

$
0
0
Nigel Weeks created a demo for an assignment (for his Paramedic Practice degree) for a small fictional town’s health clinic, some appointment rooms, and some remote health professionals that are employed a few days a week (You can check it online also download the source code : Firebird SQL , PHP , webrtc, Ubuntu Server): […]

DelphiTools.info: MapFileStats v1.3 update

$
0
0
My small MapFileStats utility has been updated to 1.3 (last public release was four years ago…). The utility provides simple statistics about compiled size, to help you figure out what went into your executable. This version add as few minor features and improves detection of project file, which could result in missing DFM size. Previously,…

Delphi Haven: TAndroidPreferencesIniFile fix

$
0
0

Just a small note to say, if anyone has downloaded my Android SharedPreferences wrapper (more info here), I’ve just put up a small fix for the ReadBool method, so you might want to update from the trunk. Thanks goes to Orren Grushkin for reporting the bug.


Firebird News: Database Workbench 4.4.2 released, 15% autumn discount

$
0
0
Upscene Productions is proud to announce the next version of the popular multi-DBMS development tool: ” Database Workbench 4.4.2 Pro ” For more information, see here. Take advantage of our 15% autumn discount! This version includes fixes for issues as reported by our users. The free Lite Editions will be released later. Database Workbench supports: […]
Viewing all 1725 articles
Browse latest View live